CN209765494U - 一种异步fifo装置 - Google Patents
一种异步fifo装置 Download PDFInfo
- Publication number
- CN209765494U CN209765494U CN201921090981.8U CN201921090981U CN209765494U CN 209765494 U CN209765494 U CN 209765494U CN 201921090981 U CN201921090981 U CN 201921090981U CN 209765494 U CN209765494 U CN 209765494U
- Authority
- CN
- China
- Prior art keywords
- read
- pointer
- write
- asynchronous fifo
- gray code
- 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.)
- Active
Links
Landscapes
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本实用新型提供了一种深度为任意偶数的异步FIFO装置,其中的读(写)指针采用一种特殊的格雷码编码。该异步FIFO中的读(写)指针信号,既直接连接到跨时钟域同步模块,也直接连接到RAM作为读(写)地址信号。该异步FIFO不再需要另外计算或存储自然二进制编码的RAM地址。
Description
技术领域
本实用新型涉及集成电路领域,尤其涉及异步FIFO领域。
背景技术
异步先进先出缓冲区(Asynchronous FIFO),通常称为异步FIFO,常用于跨时钟域的数据传输。异步FIFO有一个写端口和一个读端口,两个端口工作于不同的时钟域,数据从写端口写入到内部RAM的与写指针对应的地址,从读端口读出内部RAM中与读指针对应的地址对应的数据。当上下游模块对异步FIFO进行读写操作时,异步FIFO更新读写指针,并根据两指针的位置关系产生空满信号。
通常,异步FIFO的读写指针采用自然二进制编码。但是,多比特的自然二进制码无法直接做跨时钟域同步。因此一般会将自然二进制码指针转化为其格雷码编码的形式用于跨时钟域同步。这就对所采用的格雷码序列的长度有一定的要求。在一些技术方案中,格雷码的序列长度须等于异步FIFO的深度。在另一些技术方案中,格雷码的序列长度为异步FIFO深度的2倍。常用的二进制反射格雷码的序列长度为2的整数次幂。当异步FIFO的深度不是2的整数次幂时,二进制反射格雷码不适用。如果采用现有技术方案中的序列长度为非2的整数次幂的格雷码,由于其值域与对应的自然二进制码不一致,无法直接作为内部RAM的地址。因此,在深度为任意偶数的情况下,异步FIFO电路通常同时使用自然二进制码编码的指针及其格雷码编码的形式,其中自然二进制码编码的指针用作内部RAM的读写地址,其格雷码编码的形式用于跨时钟域同步。但是这种设计增加了异步FIFO电路的复杂度。
实用新型内容
针对现有技术中存在的问题,本实用新型提供了一种深度为任意偶数的异步FIFO,所述异步FIFO只需要格雷码编码的指针,同时把格雷码编码的指针用于内部RAM的读写地址和跨时钟域同步。
本实用新型采用如下技术方案:一种使用格雷码作为内部RAM地址的深度为任意偶数的异步FIFO,包括双端口RAM,读指针生成器,写指针生成器,空信号生成器,满信号生成器,读时钟域同步模块,写时钟域同步模块。其中双端口RAM的读端口,读指针生成器,空信号生成器,读时钟域同步模块工作在读时钟域;双端口RAM的写端口,写指针生成器,满信号生成器,写时钟域同步模块工作在写时钟域。
上述的异步FIFO,所述读指针生成器由读指针的寄存器和格雷码的加一电路构成,用于生成格雷码编码的读指针。所述格雷码编码的读指针连接至双端口RAM的读地址端口,空信号生成器和写时钟域同步模块。
上述的异步FIFO,所述读时钟域同步模块将写时钟域的写指针同步到读时钟域。同步到读时钟域的写指针连接至空信号生成器。
上述的异步FIFO,所述空信号生成器通过判断读时钟域的读指针和写指针的某种逻辑关系来生成空信号。
上述的异步FIFO,所述写指针生成器由写指针的寄存器和格雷码的加一电路构成,用于生成格雷码编码的写指针。所述格雷码编码的写指针连接至双端口RAM的写地址端口,满信号生成器和读时钟域同步模块。
上述的异步FIFO,所述写时钟域同步模块将读时钟域的读指针同步到写时钟域。同步到写时钟域的读指针连接至满信号生成器。
上述的异步FIFO,所述满信号生成器通过判断写时钟域的读指针和写指针的某种逻辑关系来生成满信号。
上述的异步FIFO,所述的格雷码具有以下特征。该格雷码的序列长度等于FIFO深度,该格雷码的值域与对应的自然二进制码的值域相同。
本实用新型的有益效果是,本实用新型异步FIFO,采用格雷码编码的读写指针,同时将格雷码编码的读写指针用于内部双端口RAM的读写地址和跨时钟域同步,有效地简化了电路,降低了面积和功耗。
附图说明
图1为异步FIFO的电路图。
图2为指针生成器的电路图。
图3为深度等于14的异步FIFO所需要的格雷码示意图。
具体实施方式
以下结合附图对本实用新型的原理和特征进行描述。
根据本实用新型一实施例,图1为一种深度为任意偶数的以格雷码编码的指针作为双端口RAM地址的异步FIFO的示例图,包括双端口RAM(100),读指针生成器(120),写指针生成器(110),满信号生成器(111),空信号生成器(121),写时钟域同步模块(112),读时钟域同步模块(122)。对异步FIFO,输入信号包括写时钟(130),写时钟域复位信号(131),写入数据(136),读时钟(140),读时钟域复位信号(141);输出信号包括空信号(143),满信号(133),读取数据(146)。
本实用新型实施例中异步FIFO各个模块与各个信号间的关系如表1所示。
在本实用新型实施例中,写指针生成器(110)和读指针生成器(120)分别生成以格雷码编码的写时钟域写指针(134)和读时钟域读指针(144),并将格雷码编码的指针同时用于跨时钟域同步和双端口RAM的地址。本实用新型实施例中所述指针生成器如图2。包括指针寄存器(200),格雷码加一电路(201)。在时钟(210)的上升沿,若读信号或写信号(212)为高电平,则更新指针寄存器(200)的值。格雷码加一电路(201)为对格雷码进行加一的组合逻辑电路。现行的技术方案中,指针生成器通常由格雷码寄存器,自然二进制码寄存器,自然二进制码加一电路,自然二进制码到格雷码的转换电路构成。显然,本实用新型实施例中的写指针生成器(110)和读指针生成器(120)的电路比现行的技术方案更精简。
以格雷码作为双端口RAM的地址还会带来额外的优势。相邻的两个格雷码码字间仅有一个比特不同,相邻的两个自然二进制码码字间可能有多个比特不同。以格雷码编码的指针作为双端口RAM的地址有助于减少信号反转的次数,进而降低异步FIFO的功耗。
对于上述深度为任意偶数的异步FIFO,其地址生成器中所用的格雷码须符合一定要求。记异步FIFO的深度为N。我们需要具备如下性质的格雷码:格雷码的序列长度为N,格雷码的码字的值域为从0到N-1的整数。此时,格雷码指针可以直接用于跨时钟域同步和双端口RAM的地址。
图3为深度等于14的异步FIFO的读写指针所采用的格雷码编码的一个示例。显然,该编码为格雷码,具备码字唯一性、单步特性和循环特性,而且其值域为0到13,与大小为14的RAM的地址的值域一致。因此,采用该编码的读写指针,既可以做跨时钟域同步,也可以直接用作RAM的读写地址。
关于符合上述要求的格雷码的一般性构造方法,我们将在另一发明专利申请中做出详细说明。
本实用新型实施例工作时的行为如下。若复位信号为低电平,初始化读指针与写指针,双口双端口RAM中可能存在的数据被视为无效数据,满信号为低电平,空信号为高电平;若复位信号为高电平,在写时钟的上升沿,当写信号为高电平时,写入数据被写入双口双端口RAM中写指针对应位置,同时写指针更新为新的值,比较写时钟域两指针生成满信号;若复位信号为高电平,在读时钟的上升沿,当读信号为高电平时,将双口双端口RAM中读指针对应位置的数据读出,同时读指针更新为新的值,比较读时钟域两指针生成空信号。读指针与写指针的初始值和变化方式均一致,这使得先被写入双口双端口RAM的数据先被读出。通过空满信号控制读写操作避免错误读取数据和数据丢失。
本实用新型实施例对上下游模块的要求为:当满信号为高电平时,写信号必为低电平;当空信号为高电平时,读信号必为低电平。
本实用新型实施例中,异步FIFO的深度为任意偶数,无需自然二进制码指针的有关计算和存储,使用格雷码编码的指针作为双端口RAM的地址。与现行的主流技术方案相比,适用范围更广,功耗更低,面积更小。
对于本领域的技术人员而言,阅读上述说明后,各种变化和修正无疑将显而易见。因此,所附的权利要求书应看作是涵盖本实用新型的真实意图和范围的全部变化和修正。在权利要求书范围内任何和所有等价的范围与内容,都应认为仍属本实用新型的意图和范围内。
表1:异步FIFO各个模块与各个信号间的关系
Claims (4)
1.一种异步FIFO,包括RAM、写指针生成器、满信号生成器、写时钟域同步模块、读指针生成器、空信号生成器和读时钟域同步模块,其特征在于使用格雷码编码的指针同时用于RAM地址和跨时钟域同步。
2.根据权利要求1所述的异步FIFO,其特征在于,其深度为任意偶数。
3.根据权利要求1所述的异步FIFO,其特征在于,所述的写指针生成器和读指针生成器仅需计算,存储和输出使用格雷码编码的指针。
4.根据根据权利要求1所述的异步FIFO,其特征在于,所述的写指针生成器或读指针生成器包括储存格雷码指针的寄存器和对格雷码指针加一的组合逻辑电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201921090981.8U CN209765494U (zh) | 2019-07-12 | 2019-07-12 | 一种异步fifo装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201921090981.8U CN209765494U (zh) | 2019-07-12 | 2019-07-12 | 一种异步fifo装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN209765494U true CN209765494U (zh) | 2019-12-10 |
Family
ID=68746225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201921090981.8U Active CN209765494U (zh) | 2019-07-12 | 2019-07-12 | 一种异步fifo装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN209765494U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324562A (zh) * | 2020-02-16 | 2020-06-23 | 苏州浪潮智能科技有限公司 | 一种ahb总线跨时钟域的系统及工作方法 |
-
2019
- 2019-07-12 CN CN201921090981.8U patent/CN209765494U/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324562A (zh) * | 2020-02-16 | 2020-06-23 | 苏州浪潮智能科技有限公司 | 一种ahb总线跨时钟域的系统及工作方法 |
CN111324562B (zh) * | 2020-02-16 | 2021-08-06 | 苏州浪潮智能科技有限公司 | 一种ahb总线跨时钟域的系统及工作方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367495B (zh) | 一种异步先入先出的数据缓存控制器 | |
CN101681249B (zh) | 先进先出缓冲器 | |
US5267191A (en) | FIFO memory system | |
CN101261575B (zh) | 一种实现不等宽数据传输的异步先进先出存储器及方法 | |
US8001409B2 (en) | Synchronization device and methods thereof | |
JP3645584B2 (ja) | データ転送同期装置 | |
US9330740B1 (en) | First-in first-out circuits and methods | |
CN101930350A (zh) | 深度不是2的幂的异步fifo存储器设计 | |
US6801143B2 (en) | Method and apparatus for generating gray code for any even count value to enable efficient pointer exchange mechanisms in asynchronous FIFO'S | |
CN101226767A (zh) | 双端口ram的读写控制电路、方法及装置 | |
CN115361012A (zh) | 一种低功耗异步先入先出缓存器电路及芯片 | |
CN209765494U (zh) | 一种异步fifo装置 | |
US20040255188A1 (en) | Method and apparatus for determining a status of an asynchronous memory | |
Xie et al. | Analysis and comparison of asynchronous fifo and synchronous fifo | |
CN103377029A (zh) | 参数化的通用fifo控制方法 | |
CN110427168B (zh) | 一种实现任意深度低传输延时的异步fifo的方法及装置 | |
CN110618950A (zh) | 一种异步fifo读写控制电路及方法、可读存储介质及终端 | |
CN110187918B (zh) | 二进制至格雷转换电路、相关的fifo存储器、集成电路和方法 | |
CN111694767B (zh) | 累加缓存装置 | |
US20050091429A1 (en) | System and method for designing data structures | |
US20130100757A1 (en) | Dual-Port Memory and a Method Thereof | |
Hsiao et al. | Asynchronous AHB bus interface designs in a multiple-clock-domain graphics system | |
CN114840458B (zh) | 读写模块、片上系统和电子设备 | |
CN113760795B (zh) | 一种异步fifo存储器读写控制方法、装置及设备 | |
CN202394542U (zh) | 一种钟控异步先入先出fifo存储器的写字线控制电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211213 Address after: 215000, floor 3, room 101, building 1, No. 19, Yong'an Road, high tech Zone, Suzhou, Jiangsu Patentee after: Benzheng information technology (Suzhou) Co.,Ltd. Address before: 201203 room 206, building 2, no.1690, Cailun Road, Pudong New Area, Shanghai Patentee before: Intrinsic Information Technology (Shanghai) Co.,Ltd. |