一种实现先入先出队列的方法及装置制造方法及图纸

技术编号:20448178 阅读:22 留言:0更新日期:2019-02-27 02:41
一种实现异步先入先出队列(FIFO)的方法及装置,包括:确定数据的读时钟频率和写时钟频率的大小;根据读时钟频率和写时钟频率的大小,对异步FIFO进行跨时钟域FIFO处理和大容量同步缓存处理。本发明专利技术实施例降低了大容量异步FIFO设计的面积。

A Method and Device for Realizing FIFO Queue

A method and device for realizing asynchronous first in first out queue (FIFO) includes: determining the read clock frequency and write clock frequency of data; performing cross-clock FIFO processing and large-capacity synchronous cache processing for asynchronous FIFO according to the read clock frequency and write clock frequency. The embodiment of the invention reduces the design area of large capacity asynchronous FIFO.

【技术实现步骤摘要】
一种实现先入先出队列的方法及装置
本文涉及但不限于集成电路技术,尤指一种实现异步先入先出队列(FIFO)的方法及装置。
技术介绍
异步FIFO在专用集成电路(ASIC)设计中有着广泛的应用,主要解决短期读写带宽不匹配和跨时钟域的问题,用于缓存数据,将数据从一个时钟域传递到另外一个时钟域。在设计中使用寄存器(小容量)和双端口随机存取存储器(RAM)来实现,在FIFO存储的比特(bit)少时采用寄存器在面积上有优势,但当FIFO存储bit大到一定程度后,用双端口RAM来实现有面积优势。对于大容量的异步FIFO,相关技术中采用双端口RAM实现,图1为相关技术中实现大容量的异步FIFO的电路组成示意图,如图1所示,采用双端口RAM实现大容量的异步FIFO的电路,其组成包括:写控制A、读控制C、双口RAMB、二进制码转格雷码D和G、格雷码转二进制码F和I,和跨时钟域处理E和H;其中,读控制C和写控制A用于产生读写地址进行读写并产生空满信号提供给外围接口。处理过程包括:有数据输入时,写控制A根据当前FIFO的状态更新写地址并将数据写入双口RAMB;写地址通过二进制码转格雷码D、跨时钟域处理E和格雷码转二进制码F传到读控制C(包括:二进制码转格雷码D将写地址的二进制码转换为格雷码,然后通过跨时钟域处理E进行跨时钟域处理,在读时钟域又将通过格雷码转二进制码F格雷码转换为二进制码),读控制C根据读写地址产生空信号提供给FIFO读接口;同样,将输入的数据通过读控制C从双口RAM中读出时,在读时钟域将读地址由二进制码转换为格雷码,并进行跨时钟域的处理传递到写时钟域;,在写时钟域将读地址由格雷码转换为二进制码,以产生满标志信号。上述FIFO是一个异步FIFO,由于需要同时进行读写和跨时钟域处理,采用相关技术无法使用面积有优势的单口RAM实现,因此使用了双端口RAM。双端口RAM使大容量异步FIFO面积较大。
技术实现思路
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。本专利技术实施例提供一种实现异步FIFO的方法及装置,能够降低大容量异步FIFO的面积。本专利技术实施例提供了一种实现异步FIFO的方法,包括:确定数据的读时钟频率和写时钟频率的大小;根据读时钟频率和写时钟频率的大小,对异步FIFO进行跨时钟域FIFO处理和大容量同步缓存处理。可选的,所述异步FIFO为大容量异步FIFO,所述对异步FIFO进行跨时钟域FIFO处理和大容量同步缓存处理包括:当所述读时钟频率大于或等于所述写时钟频率时,对所述大容量异步FIFO进行跨时钟域FIFO处理;对跨时钟域FIFO处理后获得的数据进行大容量同步缓存处理;当所述读时钟频率小于所述写时钟频率时,对所述大容量异步FIFO进行大容量同步缓存处理,对大容量同步缓存处理后获得的数据进行跨时钟域FIFO处理。可选的,所述进行大容量的同步缓存包括:在双倍数据位宽的单口随机存取存储器RAM和预设深度的同步FIFO中,根据数据缓存量进行数据缓存。可选的,所述进行大容量的同步缓存处理包括:在所述同步FIFO未满时,将数据写入到所述同步FIFO中;在所述同步FIFO写满后,对数据进行一拍缓存,在一拍缓存后仍有数据输入时,将输入的数据存储到单口RAM中;在所述同步FIFO中的数据被读出时,以1个周期写两个数据的吞吐速率将数据从所述单口RAM中读取并写入到所述同步FIFO中;在无数据输入,而输出端需要读取数据时,以1个周期写两个数据的吞吐量将数据从所述单口RAM中读取并写入到所述同步FIFO中;在所述单口RAM中的数据被读取完毕,所述同步FIFO中的数据深度出现不满时,若有数据输入,将输入的数据写入到所述同步FIFO中。另一方面,本专利技术实施例还提供一种实现异步FIFO的装置,包括:确定单元和处理单元;其中,确定单元用于:确定数据的读时钟频率和写时钟频率的大小;处理单元用于:根据读时钟频率和写时钟频率的大小,对异步FIFO进行跨时钟域FIFO处理和大容量同步缓存处理。可选的,所述异步FIFO为大容量异步FIFO,所述处理单元具体用于:当所述读时钟频率大于或等于所述写时钟频率时,对所述大容量异步FIFO进行跨时钟域FIFO处理;对跨时钟域FIFO处理后获得的数据进行大容量同步缓存处理;当所述读时钟频率小于所述写时钟频率时,对所述大容量异步FIFO进行大容量同步缓存处理,对大容量同步缓存处理后获得的数据进行跨时钟域FIFO处理。可选的,所述处理单元用于进行大容量同步缓存处理包括:在双倍数据位宽的单口随机存取存储器RAM和预设深度的同步FIFO中,根据数据缓存量进行数据缓存。可选的,所述处理单元用于进行大容量的同步缓存处理包括:在预设深度的同步FIFO未满时,将数据写入到所述同步FIFO中;在所述同步FIFO写满后,对数据进行一拍缓存,在一拍缓存后仍有数据输入时,将输入的数据存储到单口RAM中;在所述同步FIFO中的数据被读出时,以1个周期写两个数据的吞吐速率将数据从所述单口RAM中读取并写入到所述同步FIFO中;在无数据输入,而输出端需要读取数据时,以1个周期写两个数据的吞吐量将数据从所述单口RAM中读取并写入到所述同步FIFO中;在所述单口RAM中的数据被读取完毕,所述同步FIFO中的数据深度出现不满时,若有数据输入,将输入的数据写入到所述同步FIFO中。本专利技术实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行上述实现FIFO的方法。本专利技术实施例还提供一种终端,包括:存储器和处理器;其中,处理器被配置为执行存储器中的程序指令;程序指令在处理器读取执行以下操作:确定数据的读时钟频率和写时钟频率的大小;根据读时钟频率和写时钟频率的大小,对异步FIFO进行跨时钟域FIFO处理和大容量同步缓存处理。与相关技术相比,本申请技术方案包括:确定数据的读时钟频率和写时钟频率的大小;根据读时钟频率和写时钟频率的大小,对异步FIFO进行跨时钟域FIFO处理和大容量同步缓存处理。本专利技术实施例降低了大容量异步FIFO设计的面积。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。图1为相关技术中实现大容量的异步FIFO的电路组成示意图;图2为本专利技术实施例实现异步FIFO的方法的流程图;图3为本专利技术实施例实现异步FIFO的装置的结构框图;图4为第一应用示例处理单元的结构框图;图5为第二应用示例处理单元的结构框图;图6为第三应用示例处理单元的结构框图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于本文档来自技高网
...

【技术保护点】
1.一种实现异步先入先出队列FIFO的方法,其特征在于,包括:确定数据的读时钟频率和写时钟频率的大小;根据读时钟频率和写时钟频率的大小,对异步FIFO进行跨时钟域FIFO处理和大容量同步缓存处理。

【技术特征摘要】
1.一种实现异步先入先出队列FIFO的方法,其特征在于,包括:确定数据的读时钟频率和写时钟频率的大小;根据读时钟频率和写时钟频率的大小,对异步FIFO进行跨时钟域FIFO处理和大容量同步缓存处理。2.根据权利要求1所述的方法,其特征在于,所述异步FIFO为大容量异步FIFO,所述对异步FIFO进行跨时钟域FIFO处理和大容量同步缓存处理包括:当所述读时钟频率大于或等于所述写时钟频率时,对所述大容量异步FIFO进行跨时钟域FIFO处理;对跨时钟域FIFO处理后获得的数据进行大容量同步缓存处理;当所述读时钟频率小于所述写时钟频率时,对所述大容量异步FIFO进行大容量同步缓存处理,对大容量同步缓存处理后获得的数据进行跨时钟域FIFO处理。3.根据权利要求1或2所述的方法,其特征在于,所述进行大容量的同步缓存包括:在双倍数据位宽的单口随机存取存储器RAM和预设深度的同步FIFO中,根据数据缓存量进行数据缓存。4.根据权利要求3所述的方法,其特征在于,所述根据数据缓存量进行数据缓存包括:在所述同步FIFO未满时,将数据写入到所述同步FIFO中;在所述同步FIFO写满后,对数据进行一拍缓存,在一拍缓存后仍有数据输入时,将输入的数据存储到单口RAM中;在所述同步FIFO中的数据被读出时,以1个周期写两个数据的吞吐速率将数据从所述单口RAM中读取并写入到所述同步FIFO中;在无数据输入,而输出端需要读取数据时,以1个周期写两个数据的吞吐量将数据从所述单口RAM中读取并写入到所述同步FIFO中;在所述单口RAM中的数据被读取完毕,所述同步FIFO中的数据深度出现不满时,若有数据输入,将输入的数据写入到所述同步FIFO中。5.一种实现异步FIFO的装置,其特征在于,包括:确定单元和处理单元;其中,确定单元用于:确定数据的读时钟频率和写时钟频率的大小;处理单元用于:根据读时钟频率和写时钟频率的大小,对异步FIFO进行跨时钟域FI...

【专利技术属性】
技术研发人员:代开勇黄勃徐科
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1