一种异步fifo实现系统及实现方法

文档序号:7612510阅读:146来源:国知局
专利名称:一种异步fifo实现系统及实现方法
技术领域
本发明涉及FIFO系统,特别是一种用于通信领域中可适应多种应用场合的多功能异步FIFO实现系统及实现方法。
背景技术
FIFO(First Input First Out,先进先出)是一种在通信系统中应用非常广泛的技术,它可以缓存暂时来不及处理的数据。FIFO除了数据线外,输入端有写、满等控制信号,输出端有读、空等控制信号。
FIFO还可以在2个不同时钟域之间进行无差错通讯,当FIFO两侧的读写时钟频率、相位相同时,该FIFO称为同步FIFO,否则为异步FIFO。
同步FIFO由于时钟域相同,读写两方的信息可以直接传送到对方,同步FIFO可以非常方便按各种策略需求进行控制,如对其进行定长/非定长操作,产生满/空、几乎满/几乎空、半满/半空信号等等。
而对于异步FIFO,由于其是跨时钟域,一个时钟域的信息必须转换为Gray码(格雷码)或类似方式才可以到达对方时钟域,在对方时钟域进行相关逻辑运算,因此要对异步FIFO进行类似同步FIFO般的多功能控制是困难的,即使能做到也需耗费大量硬件资源。

发明内容
为了解决上述问题,本发明的目的在于提供一种异步FIFO实现系统及实现方法,能产生功能丰富的控制信息并具备多种操作手段,实现数据位宽转换,同时还可适应外部输入时钟较大范围的抖动。
为了实现上述目的,本发明提供了一种异步FIFO实现系统,其中,包括通过数据线依次连接的一数据总线宽度转换子系统、一第一异步FIFO子系统、一同步FIFO子系统和一第二异步FIFO子系统,所述同步FIFO子系统产生第一控制信号传输到外部,所述同步FIFO子系统与前后两个异步FIFO子系统之间有第二控制信号传输。
上述的多功能异步FIFO实现系统,其中,所述第一异步FIFO子系统的输入端时钟频率抖动时,所述第一异步FIFO子系统的输出端时钟频率与所述第一异步FIFO子系统输出数据位宽的乘积应大于所述第一异步FIFO子系统的输入端最大时钟频率与所述数据总线宽度转换子系统前的输入数据位宽的乘积。
上述的多功能异步FIFO实现系统,其中,所述同步FIFO子系统存储一定长度数据后允许外部逻辑读取,数据通过所述第二异步FIFO子系统输出。
上述的多功能异步FIFO实现系统,其中,相邻的FIFO之间通过基本控制信息进行信息握手。
为了更好的实现上述目的,本发明提供了一种多功能异步FIFO实现方法,其中,包括以下步骤步骤1,数据通过一数据总线宽度转换子系统将输入数据的位宽展宽;步骤2,数据通过一第一异步FIFO子系统,从第一时钟频率转换到第二时钟频率;步骤3,数据通过一同步FIFO子系统;步骤4,数据通过一第二异步FIFO子系统,从第二时钟频率转换到第三时钟频率后输出;所述同步FIFO子系统产生第一控制信号传输到外部,所述同步FIFO子系统与所述异步FIFO子系统之间有第二控制信号传输。
上述的多功能异步FIFO实现方法,其中,所述第一时钟频率抖动时,所述第二时钟频率与所述第一异步FIFO子系统输出数据位宽的乘积大于所述第一时钟频率的最大值与所述数据总线宽度转换子系统前的输入数据位宽的乘积。
上述的多功能异步FIFO实现方法,其中,所述步骤4中,同步FIFO子系统存储一定长度数据后允许外部逻辑读取,数据通过所述第二异步FIFO子系统,从第二时钟频率转换到第三时钟频率后输出。
上述的多功能异步FIFO实现方法,其中,相邻的FIFO之间通过“读、写、空、满”等基本控制信息进行信息握手。
本发明的异步FIFO实现系统和实现方法实现的异步FIFO系统功能丰富,可用在传统异步FIFO不能适用的许多场合,通过异步FIFO子系统与同步FIFO子系统结合能产生功能丰富的控制信息并具备多种操作手段,通过前置的数据总线宽度转换子系统实现数据位宽转换,同时通过调整第一异步FIFO子系统的输出时钟还可适应外部输入时钟较大范围的抖动。


图1为本发明的异步FIFO实现系统结构示意图;图2为本发明的异步FIFO实现系统应用于高速接口芯片接收端实施示意图;图3为图2中异步FIFO实现系统的数据传输示意图。
具体实施例方式
下面结合附图和实施例对本发明进行详细说明。
本发明综合传统意义上的异步FIFO和同步FIFO的特点,采用多FIFO级联的方式以实现一个异步FIFO实现系统10。
本发明的异步FIFO实现系统结构如图1所示。异步FIFO实现系统10包括2个小容量传统意义上的异步FIFO子系统第一异步FIFO子系统2和第二异步FIFO子系统4,1个大容量的,相邻FIFO子系统之间通过“读、写、空、满”等基本控制信号进行信息握手。另外,在数据的最初输入端,有一。第一异步FIFO子系统2和第二异步FIFO子系统4按数据行读写,可分别产生空/满信号。数据总线宽度转换子系统1、第一异步FIFO子系统2、同步FIFO子系统3和第二异步FIFO子系统4通过数据线和控制线依次连接。
当异步FIFO实现系统10向外部逻辑表明其非“半满”,此时“满/几乎满”信号也为“假”,即异步FIFO实现系统10有较大空间允许外部逻辑发送数据时,外部逻辑发送数据先通过数据总线宽度转换子系统1进行总线宽度转换,接着外部逻辑通过“写”命令将数据写入第一异步FIFO子系统2;进而第一异步FIFO子系统2向同步FIFO子系统3显示其非“空”,同步FIFO子系统3发出“读”命令读出第一异步FIFO子系统2中的数据;当同步FIFO3存储到一定长度数据后,其向外部发出非“半空”信号,此时“空/几乎空”信号也为“假”,外部逻辑发出“读”命令,同步FIFO子系统3中的数据通过第二异步FIFO子系统4发送出去。
如图1所示,该异步FIFO实现系统10的时钟分布为数据总线宽度转换子系统1和第一异步FIFO子系统2的输入端的时钟为外部时钟clk0;第一异步FIFO子系统2的输出端和第二异步FIFO子系统4的输入端,即同步FIFO子系统3输入端、输出端的时钟为clk1;
第二异步FIFO子系统4的输出端时钟为内部时钟clk2。
在此,clk1乘上第一异步FIFO子系统2输出位宽应大于clk0乘上数据总线宽度转换子系统1之前的数据输入位宽。同时由于clk0频率在某些情况下可能在一定范围内抖动,因此clk1频率选取要适应clk0抖动的最高限度,这样第一异步FIFO子系统2就不会溢出,数据不会在第一异步FIFO子系统2处丢失。
其中,数据总线宽度转换子系统1将输入数据总线宽度展宽至原先的N倍(N为自然数),这使后续模块的处理时钟得以降低;第一异步FIFO子系统2容量较小,是一个实现时钟转换的接口;同步FIFO子系统3容量较大,可以吸收数据流的突发。由于同步FIFO子系统3易操作,因此可方便的产生各种信号并对其进行各种复杂操作;第二异步FIFO子系统4容量较小,是一个实现时钟转换的接口。第二异步FIFO子系统4的输入端时钟为clk1,输出端时钟为clk2,clk2频率根据功能需求具体确定,一般为芯片内部时钟,clk2频率可以小于clkl。
异步FIFO实现系统10的一些关键信号,如“空/几乎空/半空”、“满/几乎满/半满”等主要由同步FIFO子系统3产生。如同步FIFO子系统3可产生“半满”信号使外部相关逻辑发送PAUSE控制帧反压数据输入流量;又如同步FIFO子系统3在接收一非定长以太网整帧,或者是一定长ATM帧后发出可读信号以向外部逻辑表示可进行数据读取等。
外部逻辑对异步FIFO实现系统10的“读”、“写”信号在作用同步FIFO子系统3的同时,也作用到第一异步FIFO子系统2和第二异步FIFO子系统4,这样使第一异步FIFO子系统2、同步FIFO子系统3和第二异步FIFO子系统4进行有序动作。
结合图1,以下为数据流经过该异步FIFO实现系统10的过程,包括以下步骤步骤1,输入数据通过数据总线宽度转换子系统1,使数据位宽展宽到N倍(N为自然数);步骤2,数据通过第一异步FIFO子系统2,其输出端时钟clk1乘上其输出总线宽度应大于clk0乘上未展宽之前的输入总线宽度,并且clk1频率选取要适应clk0抖动的最高限度,第一异步FIFO子系统2和同步FIFO子系统3之间除了数据线外,还有“读、写、空、满”等第二控制信号;步骤3,数据通过同步FIFO子系统3,同步FIFO子系统3产生该异步FIFO实现系统10所需的控制信号,同步FIFO子系统3和第二异步FIFO子系统4之间除了数据线外,还有“读、写、空、满”等第二控制信号;
步骤4,数据通过异步FIFO子系统4输出。
图2和图3所示为该异步FIFO实现系统10应用于高速接口芯片接收端的实施例。
异步FIFO实现系统10将125MHz的外部时钟触发的8位数据流,转换为62.5MHz的内部时钟触发的16位数据流。异步FIFO实现系统10向输入端产生“满/几乎满/半满”等第一控制信号;向输出端产生“空/几乎空/半空”等第一控制信号,读操作为整帧读取。如图2所示,虚框内为数据处理芯片。
图2中PHY芯片20提供的接收时钟clk0应为125MHz,实际上其在124MHz与126MHz之间抖动;clk1为66MHz;芯片核心时钟clk2为62.5MHz。
当利用本发明的异步FIFO实现系统10时,FIFO实现系统的数据变化示意图如图3所示1:2数据总线宽度转换子系统1’将8bits数据流转换为16bits数据流;第一异步FIFO子系统2’深度为4,位宽为16bits,将125MHz数据流转换为66MHz数据流;同步FIFO子系统3’深度为2K,位宽为16bits,可容纳2个以太网最长帧;第二异步FIFO子系统4’深度为4,位宽为16bits,将66MHz数据流转换为62.5MHz数据流。
结合图2和图3,通过以上结构,该异步FIFO实现系统实现了以下功能输入数据通过1:2数据总线宽度转换子系统1’,使数据位宽展宽到16位;尽管PHY芯片20提供的clk0在124MHz与126MHz之间抖动,但由于clk1为66MHz,等效于8bits位宽下的132MHz,因此数据不会在第一异步FIFO子系统2’处丢失;同步FIFO子系统3’的容量较大,可以吸收由于时钟抖动所造成的数据突发,抗丢包能力得到加强;由于采用同步FIFO子系统3’,系统可以容易产生各种控制策略,在输入端,异步FIFO实现系统10’中的同步FIFO子系统3’产生“满/几乎满/半满”信号,当信号为非“半满”时,允许外部逻辑发送数据进入异步FIFO实现系统10’;在输出端,异步FIFO实现系统10’中的同步FIFO子系统3’产生“空/几乎空/半空”信号,当同步FIFO子系统3’存储一整帧数据后,其向外部发出非“半空”信号允许外部逻辑读取;当同步FIFO子系统3’存储一整帧后允许外部逻辑读取,数据流经过第二异步FIFO子系统4’进行时钟域转换。
对于一般异步FIFO,以上异步FIFO实现系统的许多功能都是难以实现的,相比较而言,本发明中的异步FIFO实现系统10’可较容易实现。
当然,上述的异步/同步FIFO子系统也可以是分别由多个异步/同步FIFO串联而成,组成异步/同步FIFO子系统。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种用于通信系统的异步FIFO实现系统,其特征在于,包括通过数据线和控制线依次连接的一第一异步FIFO子系统、一同步FIFO子系统和一第二异步FIFO子系统,所述同步FIFO子系统产生第一控制信号传输到外部,所述同步FIFO子系统与相邻异步FIFO子系统之间有第二控制信号传输。
2.根据权利要求1所述的多功能异步FIFO实现系统,其特征在于,还包括一与所述第一异步FIFO子系统相连的数据总线转换模块,用于展宽输入数据的总线宽度。
3.根据权利要求2所述的多功能异步FIFO实现系统,其特征在于,所述第一异步FIFO子系统的输入端时钟频率抖动时,所述第一异步FIFO子系统的输出端时钟频率与所述第一异步FIFO子系统输出数据位宽的乘积应大于所述第一异步FIFO子系统的输入端最大时钟频率与所述数据总线宽度转换子系统前的输入数据位宽的乘积。
4.根据权利要求1、2或3所述的多功能异步FIFO实现系统,其特征在于,所述同步FIFO子系统存储一定长度数据后允许外部逻辑读取,数据通过所述第二异步FIFO子系统输出。
5.根据权利要求1、2或3所述的多功能异步FIFO实现系统,其特征在于,相邻的FIFO子系统之间通过读、写、空、满信息进行信息握手。
6.一种多功能异步FIFO实现方法,其特征在于,包括以下步骤步骤1,输入数据通过一第一异步FIFO子系统,从第一一时钟频率转换到第二时钟频率;步骤2,数据通过一同步FIFO子系统;步骤3,数据通过一第二异步FIFO子系统,从第二时钟频率转换到第三时钟频率后输出;所述同步FIFO子系统产生第一控制信号传输到外部,所述同步FIFO子系统与所述异步FIFO子系统之间有第二控制信号传输。
7.根据权利要求6所述的多功能异步FIFO实现方法,其特征在于,所述步骤1之前还包括步骤一数据总线转换模块将输入数据的位宽展宽。
8.根据权利要求7所述的多功能异步FIFO实现方法,其特征在于,所述第一时钟频率抖动时,所述第二时钟频率与所述第一异步FIFO子系统输出数据位宽的乘积大于所述第一时钟频率的最大值与所述数据总线宽度转换子系统前的输入数据位宽的乘积
9.根据权利要求6、7或8所述的多功能异步FIFO实现方法,其特征在于,所述步骤4中,同步FIFO子系统存储一定数据长度后允许外部逻辑读取,数据通过所述第二异步FIFO子系统,从第二时钟频率转换到第三时钟频率后输出。
10.根据权利要求6、7或8所述的多功能异步FIFO实现方法,其特征在于,相邻的FIFO子系统之间通过读、写、空、满信息进行信息握手。
全文摘要
本发明公开了一种异步FIFO实现系统及实现方法,其中该异步FIFO实现系统包括通过数据线、控制线依次连接的一数据总线宽度转换子系统、第一异步FIFO子系统、一同步FIFO子系统和一第二异步FIFO子系统,同步FIFO子系统产生第一控制信号传输到外部,同步FIFO子系统与前后两个异步FIFO子系统之间有第二控制信号传输。本发明的异步FIFO实现系统和实现方法实现的异步FIFO系统功能丰富,可用在传统异步FIFO不能适用的许多场合,通过传统异步FIFO子系统与同步FIFO子系统结合能产生功能丰富的控制信息并具备多种操作手段,通过前置的数据总线宽度转换子系统实现数据位宽转换,同时通过调整第一异步FIFO子系统的输出时钟还可适应外部输入时钟较大范围的抖动。
文档编号H04L7/00GK1893388SQ20051001208
公开日2007年1月10日 申请日期2005年7月1日 优先权日2005年7月1日
发明者童进, 吕永良, 朱清峰 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1