CN202904568U - 一种应用于usb3.0的弹性缓冲结构 - Google Patents

一种应用于usb3.0的弹性缓冲结构 Download PDF

Info

Publication number
CN202904568U
CN202904568U CN 201220211069 CN201220211069U CN202904568U CN 202904568 U CN202904568 U CN 202904568U CN 201220211069 CN201220211069 CN 201220211069 CN 201220211069 U CN201220211069 U CN 201220211069U CN 202904568 U CN202904568 U CN 202904568U
Authority
CN
China
Prior art keywords
skp
read
write
data
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CN 201220211069
Other languages
English (en)
Inventor
朱小明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WUXI HUADA GUOQI TECHNOLOGY CO LTD
Original Assignee
WUXI HUADA GUOQI TECHNOLOGY CO LTD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WUXI HUADA GUOQI TECHNOLOGY CO LTD filed Critical WUXI HUADA GUOQI TECHNOLOGY CO LTD
Priority to CN 201220211069 priority Critical patent/CN202904568U/zh
Application granted granted Critical
Publication of CN202904568U publication Critical patent/CN202904568U/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本实用新型公开了一种应用于USB3.0的弹性缓冲结构,包括输入检测模块、二进制码和格雷码读写指针产生模块、同步模块、读写控制模块、阈值监视模块和输出控制模块;通过分析弹性缓冲的作用机制,根据USB3.0的协议要求,采用具有写指针屏蔽、指针跳跃、断点保存与握手、输出控制等具有创新功能的异步FIFO来设计弹性缓冲,很好实现了时钟频率补偿的目的,本实用新型设计的弹性缓冲采用并行40位数据,读写时钟可达到125MHz的频率。

Description

一种应用于USB3.0的弹性缓冲结构
技术领域
本发明涉及一种应用于USB3.0的弹性缓冲结构。
背景技术
通用串行总线3.0(Universal Serial Bus 3.0,USB3.0)是由Intel、Microsoft、NEC等公司于2008年11月公布的标准。USB是近些年来应用在PC领域的新型接口技术。相对于USB2.0,USB3.0依然属于高速,串行,源同步的传输协议。在发送端采用差分对的方式发送串行数据,在接收端利用时钟和数据恢复电路(Clock and Data Recovery,CDR)从串行数据中恢复出串行数据和时钟。由于USB3.0的收发两端支持独立的参考时钟源,所以接收端恢复出的时钟频率和其本地时钟频率存在差别。为了补偿两个时钟的频率差别,需要一个弹性缓冲(Elastic buffer),将CDR恢复的时钟域数据有效的同步到本地时钟域中。
弹性缓冲由Maurice Karnaugh在电话网络中传输脉冲编码调制(Pulse CodeModulation,PCM)信号中提出来的。弹性缓冲通过插入和删除某一特殊的符号来实现时钟补偿的目的,并能够稳定的在两个时钟域间同步数据,因此,弹性缓冲在很多技术应用中被采用,例如USB、PCIE、以太网等协议中都采用了弹性缓冲技术来同步数据。然而在USB3.0协议下,尚无适用于USB3.0物理层的弹性缓冲。
发明内容
针对上述技术问题,本发明设计一种依据USB3.0协议,设计并实现了适用于USB3.0物理层的弹性缓冲结构以及其方法。
为了解决上述技术问题,本发明的技术方案如下:
一种应用于USB3.0的弹性缓冲结构,包括输入检测模块、二进制码和格雷码读写指针产生模块、同步模块、读写控制模块、阈值监视模块和输出控制模块;
所述输入检测模块负责检测输入数据中是否包含SKP,如果输入数据中包含SKP则给出指示信号,所述指示信号和所述阈值监视模块给出的删除或者插入SKP信号一起,用来控制所述读写控制模块完成SKP的删除或者插入;
所述二进制码和格雷码读写指针产生模块负责产生弹性缓冲的二进制码和格雷码读写指针;
所述同步模块利用所述二进制码和格雷码读写指针产生模块产生的格雷码来实现格雷码读写指针在读写时钟域之间的同步,所述二进制码和格雷码读写指针产生模块产生的二进制码作为存储单元的地址输入,将格雷码的读指针,经过两个写时钟控制的寄存器同步到写时钟域中,然后将写指针和同步到写时钟域的读指针做比较产生FIFO满的标志,将写指针同步到读时钟域中产生FIFO空的标志;
所述阈值监视模块将同步到写时钟域中的格雷码读指针转化为二进制码并且与二进制码的写指针比较来判断FIFO中的有效数据,当FIFO中的数据少于等于6时,添加SKP,add_skp信号有效,当FIFO中的数据大于等于10时删除SKP,dele_skp信号有效;
写指针控制模块根据dele_skp或者add_skp信号是否有效,来完成删除输入数据中的SKP或者是在FIFO中插入新的SKP的功能,所述输出控制模块和所述写指针控制模块一起完成SKP的插入功能;
读指针控制模块,根据symbol_lock信号来控制读使能信号。
进一步的,所述FIFO对SKP的删除是通过SKP删除模块实现的。
进一步的,所述FIFO对SKP的插入通过断点保存,写指针跳跃与握手和输出控制模块来实现。
一种应用于USB3.0的弹性缓冲方法,包括如下步骤:向FIFO输入数据,所述输入检测模块负责检测输入数据中是否包含SKP,如果输入数据中包含SKP给出指示信号,这个指示信号和阈值监视模块给出的删除或者插入SKP信号一起,用来控制读写控制模块完成SKP的删除或者插入;
所述同步模块利用所述二进制码和格雷码读写指针产生模块产生的格雷码来实现格雷码读写指针在读写时钟域之间的同步,所述二进制码和格雷码读写指针产生模块产生的二进制码作为存储单元的地址输入,将格雷码的读指针,经过两个写时钟控制的寄存器同步到写时钟域中,然后将写指针和同步到写时钟域的读指针做比较产生FIFO满的标志,将写指针同步到读时钟域中产生FIFO空的标志;将读写指针地址的次高位到最低位作为存储单元的地址,当读写地址相同时FIFO为空,当读写指针最高位不同而其余所有位相同时FIFO为满;
所述阈值监视模块将同步到写时钟域中的格雷码读指针转化为二进制码并且与二进制码的写指针比较来判断FIFO中的有效数据,当FIFO中的数据少于等于6时,添加SKP,add_skp信号有效,当FIFO中的数据大于等于10时删除SKP,dele_skp信号有效;
写指针控制模块根据dele_skp或者add_skp信号是否有效,来完成删除输入数据中的SKP或者是在FIFO中插入新的SKP的功能,所述输出控制模块和所述写指针控制模块一起完成SKP的插入功能;
读指针控制模块,根据symbol_lock信号来控制读使能信号;
当读时钟快于写时钟,即读出的数据多于写入的数据,通过写控制模块向FIFO添加SKP,使得FIFO维持半满状态,并且写指针向前进行跳跃间隔,并保存跳跃点的位置,当读指针读到跳跃区间时,通过输出控制模块,完成SKP添加;
当读时钟慢于写时钟,即写入的数据多于读出的数据,此时,FIFO应该删除输入数据中的SKP,使得FIFO维持半满,以此来调节时钟。
进一步的,所述删除输入数据中的SKP具体包括如下步骤;用一个保持寄存器中用来暂存输入删除SKP模块的数据,当删除SKP阈值信号dele_skp无效时,不需要删除SKP,保持寄存器的输入和输出数据比特数均与输入删除SKP模块的数据相同,所述保持寄存器高位字节的数据作为输出,为ram的写数据,输入的数据写入保持寄存器的低位字节上,同时保持寄存器的低位字节的数据移位到高位字节上作为输出;同时,通过保持寄存器中的字节的个数的计数器hr_cnt记录此时保持寄存器中存在的字节个数;
当删除SKP阈值信号dele_skp信号有效时,且输入删除SKP模块的数据中存在SKP时,输入数据经过删除SKP模块后,将SKP剔除,仅仅将有效数据写入到保持寄存器的低位字节中,此时保持寄存器中的数据变为6个,因为删除掉了输入4个数据中的2个skp。如果在下一个时钟周期时,输入的数据不包含SKP,那么保持寄存器中保持原来6个数据不变,如果一段时间后,如果输入的数据中又包含SKP,而此时dele_skp信号仍然有效,则删除SKP模块剔除数据中SKP,将有效数据写入到保持寄存器中,如果保持寄存器中存储数据为其整个容量的一半时,即4个数据,则删除SKP模块将dele_skp_en信号有效,使写使能信号无效一个时钟周期,不把保持寄存器中数据写入到ram中,这样保持寄存器中又恢复了8个有效数据。
进一步的,所述插入输入数据中的SKP具体包括如下步骤;写指针计算FIFO中的有效数据个数,根据FIFO中有效数据的个数与FIFO全满数据个数的差距,决定二进制写地址所指向的下一个指针点,在写指针模块的控制下完成写指针的跳跃,即为写指针跳跃,并且在写时钟域把当前的写指针和下一个指针点保存到当前的二进制写地址和下一个二进制写地址中;同时在写时钟域给出通知读指针信号,当读指针读到断点的起始地址时,插入skp使能信号有效,并反馈应答信号,当写时钟域检测到ack信号有效时撤销通知读指针信号,输出控制模块检测到插入skp使能信号有效后,根据此时输入的skp的RD运行差异参数的值插入新的skp,输出控制模块保证插入所有的skp均满足8B10B编码的要求;当读指针读到断点的结束地址时,插入skp使能信号变为无效,同时撤销ack信号,完成skp的插入,使FIFO维持半满状态;
所述读指针信号和ack信号是一对握手信号,保证了一次写指针跳跃在读时钟域完成一次SKP的插入,避免了在读指针域中重复插入skp。
本发明的有益效果在于:采用同步比较来判断弹性缓冲中的有效数据个数,避免了异步比较的毛刺和不稳定,采用了一种新的满空标志产生方法,采用写指针屏蔽,写指针跳跃和读写指针握手的方式实现SKP的删除和插入,通过增加了SKP序列集的删除模块,解决了在40比特的输入数据中如何删除20比特位宽的SKP序列集的问题。
附图说明
图1为USB3.0物理层接收部分结构;
图2为常半满模式中读快于写;
图3为常半满模式中写快于读;
图4为弹性缓冲的结构;
图5为SKP删除模块原理图;
图6为删除SKP模块输入输出时序图;
图7为40比特位宽的弹性缓冲对SKP的删除时序图。
具体实施方式
下面将结合附图和具体实施例对本发明做进一步说明。
弹性缓冲的作用域及其容量:
弹性缓冲的作用域
USB3.0的数据传输采用全双工(Full duplex),物理层有两个差分信号对,一对为发送差分信号对,另一对为接收差分信号对。由于弹性缓冲只用于接收端,如图1给出10比特数据位宽的物理层的接收端的框图,它包括差分接收、时钟数据恢复电路、串并转换、8B10B解码和解扰电路等。如图1所示,差分信号由差分接收端接收,经过CDR恢复出时钟和数据,然后数据经过串并转换变为40比特的数据,通过序列检测器检测出包的起始标志符K28.5,当检测到K28.5时,使符号锁定(symbol lock)信号有效,当symbol lock有效时,弹性缓冲开始写入数据。弹性缓冲的写时钟为CDR恢复的时钟,称为接收时钟,而其读时钟为接收端的系统时钟。通过弹性缓冲将接收时钟域的数据有效的同步到系统时钟域,并且经过8B10B译码和解扰器将数据传递给系统。8B10B解码器的输入数据为40比特,输出数据为32比特,相当于级联了4个输入为10比特的8B10B解码器。
弹性缓冲容量
为了补偿接收时钟和系统时钟的频率差别,在发送端平均每发送354个字节插入一个SKP序列对(SKP ordered set),一个SKP ordered set是由2个SKP(K28.1)构成,当接收端弹性缓冲检测到SKP ordered set时根据此时弹性缓冲中数据的个数来删除或插入SKP ordered set。由于USB3.0的发送和接收端采用独立的参考时钟,所以,在接收端通过CDR恢复出来的接收时钟和本地的系统时钟会有一个时钟偏差。为了匹配两端的频率差别,需要一个弹性缓冲,通过插入和删除SKP来达到速率匹配。
本发明设计的参考时钟精度-300到+300ppm(ppm单位为百万分之一),扩频时钟(Spread Spectrum Clocking)的时钟变化为-5000ppm到0,因此,发送端和接收端的时钟偏差为-5300ppm到300ppm,最大的偏差为5600ppm。不管参考时钟频率如何,两者之间的偏差为5600*0.000001=0.0056T。在USB3.0中最大数据包长度为1056字节,并且协议要求在一个数据包中不能插入SKP。最差的情况下两个时钟发送数据的最大数据偏差为:(T*1056*10-T(1-0.0056)*1056*10)/T=59比特=8字节,这里乘10是考虑了8b/10b编码,因此弹性缓冲容量最小为8字节。
弹性缓冲深度为其可以存放的数据个数,通过计算可知,弹性缓冲的深度应该为8。本文设计采用常半满(Normal half full)模式来设计弹性缓冲,其容量为16,在通常情况下弹性缓冲中有8个数据,剩下的8个为缓冲空间,故称常半满。常半满模式首先要向弹性缓冲中写入8个数据,达到半满,然后读使能有效,常半满模式只有在symbol队列中出现SKP对时,才能添加或者删除SKP对。
弹性缓冲的原理和结构:
实施例一:
下面为弹性缓冲的原理,以40比特为例,无论10比特,20比特还是40比特,其原理相同。
弹性缓冲的原理:
弹性缓冲实质上是一个异步FIFO,其写时钟为接收时钟,读时钟为系统时钟,数据位宽为40比特,FIFO深度为16,当symbol lock有效时,在接收时钟域,向FIFO中写入8个来自串并转换器的数据。当读写时钟一样快慢时,FIFO中有8个有效数据,维持在半满状态。
当读时钟快于写时钟,读出的数据多于写入的数据,经过一段时间后导致FIFO中的数据数量少于8,甚至有可能被读空。如图2所示,当输入40比特的数据中出现SKP时,FIFO中有效数据为4,比常态少了4。此时,弹性缓冲应该添加4个SKP,使得FIFO维持半满状态,以此来调节时钟。此时写指针向前跳跃4个间隔,并保存跳跃点的位置,当读指针读到跳跃区间时,通过输出控制,完成SKP添加,也就是说,并没有将新插入的SKP确实写入FIFO中,跳跃区间内的地址数据为无效的数据,并且添加的SKP必须满足运行差异参数(Running Disparity)的要求,否则会导致8B10B译码时出错。
当读时钟慢于写时钟,写入的数据多于读出的数据,经过一段时间后将导致FIFO中的数据数量多于8,甚至有可能被写满。如图3所示,在输入数据中出现SKP时,FIFO中有效数据为10,比常态多2.此时,弹性缓冲应该删除输入数据中的SKP,使得FIFO维持半满,以此来调节时钟。
在弹性缓冲读写控制的过程中,写先于读。当FIFO中数据达到8个后,读写同时有效。当写结束,即一个包接收完毕,但是读不一定结束,直至读到空,即所有数据已经同步到本地系统时钟域中,表示此次读写次任务结束。这种流程控制就保持了系统数据的完整性。
弹性缓冲的结构设计:
本发明采用同步比较来判断弹性缓冲中的有效数据个数,避免了异步比较的毛刺和不稳定,采用了一种新的满空标志产生方法,采用写指针屏蔽,写指针跳跃和读写指针握手的方式实现SKP的删除和插入。本文另外一个创新之处在于增加了SKP序列集的删除模块,解决了在40比特的输入数据中如何删除20比特位宽的SKP序列集的问题。
本文设计的常半满模式的弹性缓冲,其结构如4所示,其结构可以分为输入检测模块,SKP删除模块,二进制和格雷码读写指针产生模块,格雷码读写指针在两个时钟域间同步模块,读写控制模块,判断弹性缓冲中有效数据的阈值监测模块以及输出控制模块。
输入检测模块负责检测输入的40比特数据中是否包含SKP,如果输入数据中包含SKP给出指示信号,这个指示信号和阈值监视器模块给出的删除或者插入SKP信号一起,用来控制读写控制单元完成SKP的删除或者插入。
SKP删除模块,负责删除输入40比特中的20比特SKP,其原理将在本专利后续中介绍。
读写指针产生模块,产生的地址用来作为访问存储单元的地址,也用来产生FIFO的满空标志和判断FIFO中数据的个数。地址包含二进制和格雷码两种。
同步单元用来将读时钟域的格雷码读指针同步到写时钟域中,将写时钟域的格雷码写指针同步到读时钟域中。同步到相应时钟域的读写格雷码读写指针用来产生FIFO的满空标志。
阈值监视模块用来判断FIFO中数据的个数,当弹性缓冲中的数据少于等于6时,添加SKP,add_skp信号有效,当弹性缓冲中的数据大于等于10时删除SKP,dele_skp信号有效。
写指针控制模块根据dele_skp或者add_skp信号是否有效,来完成删除输入数据中的SKP或者是在弹性缓冲中插入新的SKP的功能。输出控制模块和写指针控制模块一起完成SKP的插入功能。
读指针控制模块,根据symbol_lock信号来控制读使能信号来控制读使能信号。
输入检测模块设计
输入检测模块的功能是检测输入数据中是否包含SKP,并根据此时弹性缓冲中有效数据个数,选择是否删除输入的SKP或插入新的SKP。为了使新插入的SKP满足8B10B编码要求,还应保存输入SKP的运行差异参数。
读写指针产生模块和同步模块设计
在判断弹性缓冲中有效数据个数和产生满空标志时,由于异步FIFO的读写是由异步时钟控制的,不能将两个时钟域的指针直接比较,这样会产生较大的亚稳态。本文设计中利用二进制码和格雷码指针产生模块,产生二进制码和格雷码,其中用二进制码作为存储单元的地址输入。将格雷码的读指针,用写时钟采样两次,即经过两个写时钟控制的寄存器同步到写时钟域中,由于格雷码每次只变化一位,故经过同步后,可将亚稳态的可能性降到最低,然后将写指针和同步到写时钟域的读指针做比较产生FIFO满的标志。同样,将写指针同步到读时钟域中产生FIFO空的标志。本文采用新的满空标志产生方法,只将读写指针地址的次高位到最低位作为存储单元的地址,当读写地址相同时弹性缓冲为空,当读写指针最高位不同而其余所有位相同时弹性缓冲为满。
阈值监测模块设计
阈值监测模块的功能是用来判断弹性缓冲的有效数据个数,直接用格雷码无法判断缓冲中的数据,因此,需将同步到写时钟域中的格雷码读指针转化为二进制码与二进制码的写指针比较来判断弹性缓冲中的有效数据。由于二进制码的读指针由同步到写时钟域中的格雷码的读指针转换而来,此时不会产生亚稳态的问题。当弹性缓冲中的数据少于等于6时,添加SKP,add_skp(add skp,添加skp,就是一个信号线,设计经过微电子工艺的加工后,就是在物理上存在的采用硅实现的导线,和软件有很大的区别,不是软件的命令)信号有效,当弹性缓冲中的数据大于等于10时删除SKP,dele_skp(delete skp,删除skp,)信号有效。
写指针控制模块、SKP删除模块和输出控制模块设计
写指针控制模块,负责写地址的控制的功能。SKP删除模块负责删除输入40比特数据中的SKP。中由于USB3.0中,SKP序列集为2个连续的SKP,SKP序列集的位宽为20比特。在本发明中,弹性缓冲的数据位宽为40比特,解决了如何删除输入的SKP序列集的问题。
本发明设计的40比特的弹性缓冲对SKP序列集的删除是通过SKP删除模块实现的。可以实现将40比特输入数据中的20比特SKP剔除掉。SKP删除模块的原理如图5所示。
SKP删除模块的输入为40比特数据,存在一个80比特的保持寄存器(holdregister)用来暂存输入的数据,当删除SKP阈值信号dele_skp无效时,不需要删除SKP,由于hold register的输入和输出数据均为40比特,因此,hold register中一直保持8个字节的输入数据,并且hold register的高4个字节的数据作为输出,为ram的写数据,输入数据不断的写入hold register的低40比特上,同时hold register的低40比特的数据移位到hold register的高40比特位上作为输出。整个hold register从低40比特的数据到高40比特的数据的移位,相当于移位寄存器。同时,还定义一个hold register中的字节的个数的计数器hr_cnt(hold registercounter,保持寄存器中数据个数)用来记录此时hold register中存在的字节个数。
当dele_skp信号有效时,需要删除输入数据中的SKP。当输入的数据中存在20比特的SKP时,输入数据经过剔除SKP的模板(mask)后,将SKP剔除,仅仅将有效的20比特数据写入到hold register中,此时hold register中的数据为60比特,如果在下一个时钟周期时,输入的数据不包含SKP,那么hold register中保持6个数据不变,Hr_cnt的值保持为6。如果过一段时间后,输入数据中又包含20比特的SKP,并且此时dele_skp信号仍然有效,那么mask模块将剔除输入数据中的SKP,将20比特的有效数据写入到hold register中,此时,hold register中剩余40比特的数据。当检测到hr_cnt的值为4时,删除SKP模块将dele_skp_en(delete skp enable,删除skp使能信号)信号有效,使写使能信号无效一个时钟周期,不把此时hold register中的高40比特数据写入到ram中,保留了hold register中的高40比特数据。如果此时输入的数据不包含SKP,那么hold register中又恢复了80比特数据。经过以上的处理,此模块成功的删除了输入40比特数据中的20比特SKP,实现了40比特弹性缓冲对20比特SKP的删除。删除SKP模块输入输出时序如图6所示。
当add_skp信号有效时,并且输入检测模块检测到输入的数据为SKP时,根据弹性缓冲的数据个数,插入新的SKP。SKP添加通过断点保存,写指针跳跃与握手和输出控制模块来实现。
在SKP窗口出现和添加阀值标志有效时,写指针此时计算FIFO中的有效数据个数,根据FIFO中有效数据的个数与8的差距,来决定write_addr_b(binarywrite address,二进制写地址)所指向的下一个指针点,在写指针模块的控制下完成写指针的跳跃,即为写指针跳跃(write pointer jump),并且在写时钟域把当前的写指针和下一个指针点保存到current_write_addr_b(current binary writeaddress,当前的二进制写地址)和next _write_addr_b(next binary write address,下一个二进制写地址)中。同时在写时钟域给出inform_rp(inform read pointer,通知读指针)信号,由于读指针总是落后于写指针,当读指针读到断点的起始地址时,inser_skp_en(insert skp enable,插入skp使能)信号有效,并反馈ack(acknowledgement,应答)信号,当写时钟域检测到ack信号有效时撤销inform_rp信号,输出控制模块检测到inser_skp_en信号有效后,根据此时输入的SKP的RD(running disparity,运行差异参数,是在8b10b编解码中定义的值)的值插入新的SKP,输出控制模块保证插入所有的SKP均满足8B10B编码的要求;当读指针读到断点的结束地址时,inser_skp_en信号变为无效,同时撤销ack信号,完成SKP的插入,使FIFO维持半满状态。
这里的inform_rp和ack信号是一对握手信号,保证了一次写指针跳跃在读时钟域完成一次SKP的插入,避免了在读指针域中重复插入skp。
读指针控制模块
读指针控制模块的功能是控制读使能信号,当symbol lock(符号锁定)信号有效时,此时写时钟开始向FIFO中写入数据,读使能需要等到FIFO写入8个数据后才能有效,当symbol lock无效后,即一个数据包已经接收完毕,写使能无效,但此时读使能不一定立刻无效,直到FIFO被读空为止,所有的数据都已经同步到本地,读使能才无效。
弹性缓冲设计的仿真
本文采用Verlog HDL设计弹性缓冲,用NC-Verlog做功能的仿真验证。
本设计采用台积电TSMC 65nm的工艺库用Design Compiler进行综合,并且给予较为保守的时序约束,读写的时钟频率均可达到125MHZ。并用Encounter进行后端的布局和布线,得到精确的时序信息,然后采用Prime Time进行静态时序分析,最终采用NC-Verlog做时序仿真,删除SKP的时序如图7所示。
仿真结果表明,本文设计的弹性缓冲可以正确的写入和读出数据,能够正确删除和插入SKP,插入的SKP满足8B10B编码的要求,能够正确的产生弹性缓冲满空标志,并可在两个时钟域间同步数据。设计完全符合USB3.0协议的要求,验证了本文设计的可靠性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。

Claims (3)

1.一种应用于USB3.0的弹性缓冲结构,其特征在于,包括输入检测模块、二进制码和格雷码读写指针产生模块、同步模块、读写控制模块、阈值监视模块和输出控制模块;
所述输入检测模块负责检测输入数据中是否包含SKP,如果输入数据中包含SKP则给出指示信号,所述指示信号和所述阈值监视模块给出的删除或者插入SKP信号一起,用来控制所述读写控制模块完成SKP的删除或者插入;
所述二进制码和格雷码读写指针产生模块负责产生FIFO的二进制码和格雷码读写指针;
所述同步模块利用所述二进制码和格雷码读写指针产生模块产生的格雷码来实现格雷码读写指针在读写时钟域之间的同步,所述二进制码和格雷码读写指针产生模块产生的二进制码作为存储单元的地址输入,将格雷码的读指针,经过两个写时钟控制的寄存器同步到写时钟域中,然后将写指针和同步到写时钟域的读指针做比较产生FIFO满的标志,将写指针同步到读时钟域中产生FIFO空的标志;
所述阈值监视模块将同步到写时钟域中的格雷码读指针转化为二进制码并且与二进制码的写指针比较来判断FIFO中的有效数据,当FIFO中的数据少于等于6时,添加SKP,add_skp信号有效,当FIFO中的数据大于等于10时删除SKP,dele_skp信号有效;
写指针控制模块根据dele_skp或者add_skp信号是否有效,来完成删除输入数据中的SKP或者是在FIFO中插入新的SKP的功能,所述输出控制模块和所述写指针控制模块一起完成SKP的插入功能;
读指针控制模块,根据symbol_lock信号来控制读使能信号。
2.根据权利要求1所述的一种应用于USB3.0的弹性缓冲结构,其特征在于,所述FIFO对SKP的删除是通过SKP删除模块实现的。
3.根据权利要求1所述的一种应用于USB3.0的弹性缓冲结构,其特征在于,所述FIFO对SKP的插入通过断点保存,写指针跳跃与握手和输出控制模块来实现。
CN 201220211069 2012-05-10 2012-05-10 一种应用于usb3.0的弹性缓冲结构 Expired - Lifetime CN202904568U (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201220211069 CN202904568U (zh) 2012-05-10 2012-05-10 一种应用于usb3.0的弹性缓冲结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201220211069 CN202904568U (zh) 2012-05-10 2012-05-10 一种应用于usb3.0的弹性缓冲结构

Publications (1)

Publication Number Publication Date
CN202904568U true CN202904568U (zh) 2013-04-24

Family

ID=48125209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201220211069 Expired - Lifetime CN202904568U (zh) 2012-05-10 2012-05-10 一种应用于usb3.0的弹性缓冲结构

Country Status (1)

Country Link
CN (1) CN202904568U (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708086A (zh) * 2012-05-10 2012-10-03 无锡华大国奇科技有限公司 一种应用于usb3.0的弹性缓冲结构及方法
CN106484631A (zh) * 2015-08-25 2017-03-08 安徽大学 一种新弹性缓冲器结构及skp添加方法
CN111324564A (zh) * 2020-02-28 2020-06-23 西安微电子技术研究所 一种弹性缓存方法
EP3719659A1 (en) * 2013-10-30 2020-10-07 INTEL Corporation A method, apparatus and system for measuring latency in a physical unit of a circuit

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708086A (zh) * 2012-05-10 2012-10-03 无锡华大国奇科技有限公司 一种应用于usb3.0的弹性缓冲结构及方法
CN102708086B (zh) * 2012-05-10 2015-05-20 无锡华大国奇科技有限公司 一种应用于usb3.0的弹性缓冲结构及方法
EP3719659A1 (en) * 2013-10-30 2020-10-07 INTEL Corporation A method, apparatus and system for measuring latency in a physical unit of a circuit
EP4254209A3 (en) * 2013-10-30 2023-11-22 INTEL Corporation A method, apparatus and system for measuring latency in a physical unit of a circuit
CN106484631A (zh) * 2015-08-25 2017-03-08 安徽大学 一种新弹性缓冲器结构及skp添加方法
CN111324564A (zh) * 2020-02-28 2020-06-23 西安微电子技术研究所 一种弹性缓存方法
CN111324564B (zh) * 2020-02-28 2021-08-24 西安微电子技术研究所 一种弹性缓存方法

Similar Documents

Publication Publication Date Title
CN102708086B (zh) 一种应用于usb3.0的弹性缓冲结构及方法
US6757348B1 (en) High-speed coordinated multi-channel elastic buffer
CN103907297B (zh) 多协议串并转换物理层单元装置
EP1442550B1 (en) Clock domain crossing fifo
CN101312387B (zh) 数据传输设备、数据发送和接收装置以及数据传输系统
CN104954096B (zh) 一种一主多从的高速同步串行通信数据传输方法
CN101540158B (zh) 用于发送和接收数据位的装置和方法
CN202904568U (zh) 一种应用于usb3.0的弹性缓冲结构
CN103885527A (zh) 一种基于rrc编码的时钟偏差补偿装置
CN104639410A (zh) 一种现场总线光纤通信接口的设计方法
CN101834715B (zh) 一种数据处理方法及数据处理系统以及数据处理装置
US20080147916A1 (en) Data synchronization method of data buffer device
CN109918332B (zh) Spi从设备及spi设备
CN103164314B (zh) 基于异步物理层接口的PCIe接口芯片硬件验证方法
CN107171728B (zh) 1b4b与曼彻斯特编码的正向、反向传输方法及装置、系统
JP4917901B2 (ja) 受信装置
US20230239256A1 (en) Wide Elastic Buffer
CN106484631A (zh) 一种新弹性缓冲器结构及skp添加方法
EP0396669B1 (en) Method and apparatus for detecting impending overflow and/or underrun of elasticity buffer
CN204143430U (zh) 弹性先进先出存储器
US20060098770A1 (en) Synchronizer for passing data from a first system to a second system
CN116185924A (zh) 波特率时钟产生方法和电子装置
CN103051440B (zh) 一种16:66路信号变换及并行同步检测方法
CN104267925A (zh) 弹性先进先出存储器及存储方法
CN101228733B (zh) 在两个异步系统之间传递数据的方法及异步数据缓冲器

Legal Events

Date Code Title Description
C14 Grant of patent or utility model
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of utility model: Elastic buffer structure and method applied to universal serial bus 3.0 (USB 3.0)

Effective date of registration: 20140825

Granted publication date: 20130424

Pledgee: Agricultural Bank of China Limited by Share Ltd Wuxi science and Technology Branch

Pledgor: Wuxi Huada Guoqi Technology Co.,Ltd.

Registration number: 2014990000698

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20160810

Granted publication date: 20130424

Pledgee: Agricultural Bank of China Limited by Share Ltd Wuxi science and Technology Branch

Pledgor: Wuxi Huada Guoqi Technology Co.,Ltd.

Registration number: 2014990000698

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20130424