CN117406954A - 一种异步fifo电路 - Google Patents
一种异步fifo电路 Download PDFInfo
- Publication number
- CN117406954A CN117406954A CN202311187921.9A CN202311187921A CN117406954A CN 117406954 A CN117406954 A CN 117406954A CN 202311187921 A CN202311187921 A CN 202311187921A CN 117406954 A CN117406954 A CN 117406954A
- Authority
- CN
- China
- Prior art keywords
- read
- gate
- register
- data
- unit
- 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.)
- Pending
Links
- 238000013500 data storage Methods 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 230000003068 static effect Effects 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 229910002056 binary alloy Inorganic materials 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract 1
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 19
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
Abstract
本发明涉及集成电路技术领域,公开了一种异步FIFO电路,该电路包括:读空信号端和读操作信号端;异步FIFO单元,用于将写时钟域的数据传递到读输出端;当拍读出单元,与该异步FIFO单元、该读空信号端和读操作信号端分别连接,用于根据异步FIFO单元的读空信号控制该异步FIFO单元的读使能,以读出数据;该当拍读出单元包括:第一与门、第一寄存器、数据选择器、第二寄存器、非门、第二与门、第二寄存器、第三与门、第四与门、第五与门、或门。上述电路,提高了写时钟域的数据向读时钟域传递的实时性和准确性。
Description
技术领域
本发明涉及集成电路技术领域,具体涉及一种异步FIFO电路。
背景技术
异步信号的处理在芯片设计中较为普遍,通常分为单bit信号和多bit信号的跨时钟域处理,其中,多bit信号跨时钟域处理通常采用异步FIFO(first-input-first-output,先进先出)。
异步FIFO可分为普通型和FWFT(First-word-Fall-through)型,普通型在读使能的下一拍才输出读数据,对非连续的读取逻辑存在额外的等待时间影响性能,而FWFT型在读使能的当拍读数据就直接输出,无需额外的等待时间,读使能只用于提前变换好读指针,对性能很友好。
异步FIFO单元的数据存储单元若使用双口SRAM,其数据读出要在下一拍才能输出;异步FIFO单元的数据存储单元若使用寄存器堆,虽为FWFT型,但读数据是以写时钟域的寄存器的方式输出的,因此是跨时钟域使用。因读时钟自身存在抖动(skew),读时钟域的后续电路要想可靠的采集到读数据,就要进行严格的时序约束,否则很有可能造成功能紊乱,又因为读时钟域的后续电路往往分散复杂,找到各个采样节点自然变得复杂,时序约束条件撰写存在困难,因此急需一种可以在读使能当拍读出数据且读时钟具有单独的寄存器的异步FIFO电路。
发明内容
有鉴于此,本发明提供了一种异步FIFO电路,以解决当拍读出数据时读时钟存在抖动导致读数据不可靠的问题。该技术方案如下:
提供了一种异步FIFO电路,包括:读空信号端和读操作信号端;异步FIFO单元,用于将写时钟域的数据传递到读输出端;当拍读出单元,与所述异步FIFO单元、所述读空信号端和读操作信号端分别连接,用于根据异步FIFO单元的读空信号控制所述异步FIFO单元的读使能,以读出数据;所述当拍读出单元包括:第一与门、第一寄存器、数据选择器、第二寄存器、非门、第二与门、第三与门、第四与门、第五与门、或门;其中,异步FIFO单元的读空信号取反并连接至第一与门的第一输入端,所述异步FIFO单元的读空信号还通过第一寄存器连接至所述第一与门的第二输入端;所述第一与门的输出端连接至数据选择器的第一输入端;所述数据选择器的输出端依次通过第二寄存器、非门连接至所述电路的读空信号端;读操作信号端连接至第二与门的第一输入端,所述第二寄存器的输出端连接至第二与门的第二输入端;所述第二与门的输出端连接至第五与门的第一输入端,所述异步FIFO单元的读空信号取反并连接至第五与门的第二输入端;所述第五与门的输出端连接至或门的第一输入端;所述第一与门的输出端连接至第四与门的第一输入端,所述第二寄存器的输出端取反并连接至第四与门的第二输入端;所述第四与门的输出端连接至或门的第二输入端;所述或门的输出端连接至所述异步FIFO单元的读使能端;所述第二与门的输出端还连接至第三与门的第一输入端,所述异步FIFO单元的读空信号还连接至所述第三与门的第二输入端,所述第二寄存器的输出端还连接至所述第三与门的第三输入端;所述第三与门的输出端连接至所述数据选择器的第二输入端。
上述方案,通过设置当拍读出单元,使得异步FIFO单元既可以在数据由读空变为非读空的当拍输出读数据,又可以在其他正常情况下输出当拍的读数据,且不存在跨时钟域采样不稳定问题,提高了写时钟域的数据向读时钟域传递的实时性和准确性。
在一种可能的实现方式中,所述异步FIFO单元包括数据存储单元;所述数据存储单元包括写指针、写输入端、写使能端、写时钟端、读指针、读使能端、读时钟端以及读输出端;所述写指针用于指向待写数据位;所述读指针用于指向待读数据位;所述写输入端用于输入待写数据位的数据;所述读输出端用于输出待读数据位的数据所述写时钟端用于输入写时钟信号;所述读时钟端用于输入读时钟信号。
上述方案,进一步限定了异步FIFO单元的数据存储单元,细化了方案,使得方案更加明确。
在一种可能的实现方式中,所述数据存储单元为双口静态读写存储器。
上述方案,进一步限定了数据存储单元具体采用了双口静态读写存储器,细化了方案,使得方案更为明确。
在一种可能的实现方式中,所述数据存储单元包括寄存器堆以及读寄存器;所述寄存器堆包括写输入端、写使能端、写时钟端以及数据输出端,所述读寄存器包括数据输入端、读输出端、读使能端以及读时钟端;
所述读寄存器的数据输入端连接至所述寄存器堆的数据输出端;所述读使能端用于在高电平时将寄存器堆中读指针指向的数据寄存到读寄存器。
上述方案,进一步限定了数据存储单元由寄存器堆和读寄存器共同组成的情况,细化了方案,使得方案更为明确。
在一种可能的实现方式中,所述异步FIFO单元还包括第一二进制寄存器和第一条件二进制值增量器;所述第一条件二进制值增量器用于在高电平时增加写计数值,所述第一二进制寄存器用于根据写计数值输出写指针地址,以使得写指针根据写指针地址指向待写数据位。
上述方案,进一步限定了异步FIFO单元的第一二进制寄存器和第一条件二进制值增量器的结构,细化了方案,使得写指针的指向转换方式更为明确。
在一种可能的实现方式中,所述异步FIFO单元还包括第二二进制寄存器和第二条件二进制值增量器;所述第二条件二进制值增量器用于在高电平时增加读计数值,所述第二二进制寄存器用于根据读计数值输出读指针地址,以使得读指针根据读指针地址指向待读数据位。
上述方案,进一步限定了异步FIFO单元的第二二进制寄存器和第二条件二进制值增量器的结构,细化了方案,使得读指针的指向转换方式更为明确。
在一种可能的实现方式中,在所述异步FIFO单元中,写操作端连接至第六与门的第一输入端;所述第六与门的输出端连接至所述第一条件二进制值增量器的第二输入端;所述第一条件二进制值增量器的输出端连接至所述第一二进制寄存器的输入端;所述第一二进制寄存器的输出端连接至写指针;所述第一二进制寄存器的输出端还连接至所述第一条件二进制值增量器的第一输入端。
上述方案,进一步限定了写操作端,细化了方案,使得第一条件二进制值增量器的工作方式更为明确。
在一种可能的实现方式中,所述或门的输出端还连接至所述第二条件二进制值增量器的第二输入端;所述第二条件二进制值增量器的输出端连接至所述第二二进制寄存器的输入端;所述第二二进制寄存器的输出端连接至读指针;所述第二二进制寄存器的输出端还连接至所述第二条件二进制值增量器的第一输入端。
上述方案,进一步限定了第二条件二进制值增量器的结构,细化了方案,使得第二条件二进制值增量器的工作方式更为明确。
在一种可能的实现方式中,所述第一条件二进制值增量器的输出端还连接至第一二进制转格雷码单元的输入端;所述第一二进制转格雷码单元的输出端连接至第一格雷码寄存器的输入端;所述第一格雷码寄存器的输出端连接至判满逻辑单元;所述判满逻辑单元输出所述异步FIFO单元的写满信号;所述异步FIFO单元的写满信号还取反并输入第六与门的第二输入端;所述第二条件二进制值增量器的输出端还连接至第二二进制转格雷码单元的输入端;所述第二二进制转格雷码单元的输出端连接至第二格雷码寄存器的输入端;所述第二格雷码寄存器的输出端连接至判空逻辑单元;所述判空逻辑单元输出所述异步FIFO单元的读空信号;所述第一格雷码寄存器的输出端还连接至第二格雷码同步单元的输入端;所述第二格雷码同步单元的输出端连接至所述判空逻辑单元;所述第二格雷码寄存器的输出端还连接至第一格雷码同步单元的输入端;所述第一格雷码同步单元的输出端连接至所述判满逻辑单元。
上述方案,进一步限定了将写地址同步至读时钟域判断读空、将读地址同步至写时钟域的结构,细化了方案,使得通过将二进制转换为格雷码进行写地址同步至读时钟域判断读空、将读地址同步至写时钟域的方式更为明确。
在一种可能的实现方式中,所述第一格雷码同步单元包括两个串联的D触发器;所述第二格雷码同步单元包括两个串联的D触发器。
上述方案,进一步限定了第一格雷码同步单元和第二格雷码同步单元的结构,细化了方案,使得方案更为明确。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的异步FIFO电路的结构示意图;
图2是根据本发明实施例的另一异步FIFO电路的结构示意图;
图3是根据本发明实施例的异步FIFO电路的时序示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
异步信号的处理在芯片设计中较为普遍,通常分为单bit信号和多bit信号的跨时钟域处理。单bit信号跨时钟域可采用结绳法,多bit信号跨时钟域可采用异步FIFO(first-input-first-output)。FIFO是一种先进先出的数据缓存器,异步FIFO是指读写时钟不一致,读写时钟互相独立。异步FIFO通常用于将数据从一个时钟域可靠地传递到另一个异步时钟域,或者将位宽不同的数据进行匹配。
异步FIFO分为两种,一种是普通型,读使能的下一拍读数据输出,优点在于读数据是以读时钟域的寄存器的方式输出的,对后续电路的时序及其约束要求较小,缺点在于数据要在读使能的下一拍才能获取到,对非连续的读取逻辑存在额外的等待时间影响性能;另一种是FWFT(First-write-Fall-through)型,只要数据写入读数据就直接输出,优点在于读使能的当拍数据即有效,读使能只用于提前变换好读指针,无需额外的等待时间,对性能要求较小,缺点在于读数据是以写时钟域的寄存器的方式输出的,由于跨时钟域输出读数据,读时钟自身存在抖动(skew),读时钟域的后续电路要想可靠地采集到读数据,就要对读数据进行严格的时序约束使其满足建立时间要求,否则很有可能造成功能紊乱,又因为读时钟域的后续电路往往分散复杂,找到各个采样节点也较为复杂,时序约束条件的撰写很困难。
因此,本发明实施例提供了一种异步FIFO电路,通过设置当拍读出单元使得读数据可以当拍读出且准确。
图1是根据本发明实施例的源跟随器电路的结构示意图。如图1所示,在该源跟随器电路中,包括:
读空信号端empty和读操作信号端ren;
异步FIFO单元,用于将写时钟域的数据传递到读输出端;
当拍读出单元,与该异步FIFO单元、该读空信号端empty和读操作信号端ren分别连接,用于根据异步FIFO单元的读空信号Mem_empty控制该异步FIFO单元的读使能,以读出数据;
该当拍读出单元包括:第一与门1、第一寄存器reg1、数据选择器、第二寄存器reg2、非门7、第二与门2、第三与门3、第四与门4、第五与门5、或门6;
其中,异步FIFO单元的读空信号Mem_empty取反并连接至第一与门1的第一输入端,该异步FIFO单元的读空信号Mem_empty还通过第一寄存器reg1连接至该第一与门1的第二输入端;该第一与门1的输出端连接至数据选择器的第一输入端;该数据选择器的输出端依次通过第二寄存器reg2、非门7连接至该电路的读空信号端empty;
读操作信号端ren连接至第二与门2的第一输入端,该第二寄存器reg2的输出端连接至第二与门2的第二输入端;该第二与门2的输出端连接至第五与门5的第一输入端,该异步FIFO单元的读空信号Mem_empty取反并连接至第五与门5的第二输入端;该第五与门5的输出端连接至或门6的第一输入端;
该第一与门1的输出端连接至第四与门4的第一输入端,该第二寄存器reg2的输出端取反并连接至第四与门4的第二输入端;该第四与门4的输出端连接至或门6的第二输入端;该或门6的输出端连接至该异步FIFO单元的读使能端;
该第二与门2的输出端还连接至第三与门3的第一输入端,该异步FIFO单元的读空信号Mem_empty还连接至该第三与门3的第二输入端,该第二寄存器reg2的输出端还连接至该第三与门3的第三输入端;该第三与门3的输出端连接至该数据选择器的第二输入端。
图1示出的异步FIFO电路的工作原理如下:
该异步FIFO单元用于将写时钟域的数据传递到读输出端。在异步FIFO单元中,包括存储数据单元,并包含读指针和写指针。写指针指向存储数据单元中写数据要写入的位置,读指针指向存储数据单元中要读出的读数据的位置,写指针和读指针通过二进制寻址,并设置有写二进制计数器和读二进制计数器,计数器的计数值加一,指针指向下一地址。由于异步FIFO单元在写数据位写满或者读数据位读空时,无法写入新数据或读出新数据,因此需要将写地址同步至读时钟域判断读空、将读地址同步至写时钟域判断写满,因此异步FIFO单元中还分别有用于将写地址同步至读时钟域、将读地址同步至写时钟域的同步器和判断写满的逻辑单元、判断读空的逻辑单元。由于采用二进制计数器进行计数,计数值的所有位可能同时发生变化,从而产生亚稳态问题,因此可采用格雷码进行同步,异步FIFO单元中设置有二进制计数值转格雷码的单元。
异步FIFO单元中,判断读空的逻辑单元输出读空信号Mem_empty。本申请的核心思想为只要异步FIFO单元中的存储数据单元被写入数据,读空信号Mem_empty变为非空时就要先将异步FIFO单元中存储数据单元的读指针当拍指向的数据从读输出端输出,然后再告知外部逻辑该异步FIFO电路非空,即读空信号端empty输出的信号变为低电平无效。外部逻辑在获知异步FIFO电路非空后,产生读操作信号输入到读操作信号端ren,进而后续的数据也可在对应的当拍获取。外部逻辑是与异步FIFO电路配合,依赖异步FIFO电路实现将写时钟域的数据传递到读输出端作用的外部逻辑电路。
具体的,读空信号Mem_empty高电平代表异步FIFO单元中读空,低电平代表异步FIFO单元中非读空。当读空信号Mem_empty由高电平跳变为低电平时,第一与门1的第一输入端为高电平,第一寄存器reg1的输出Mem_empty_d在当拍不变,仍为高电平,第一与门1的输出nedge为高电平。此时,第二寄存器reg2的输出valid仍为低电平,在第一与门1的输出nedge为高电平且第二寄存器reg2的输出valid为低电平时,即第四与门4的第一输入端和第二输入端均为高电平,第四与门4输出高电平,或门6输出高电平,异步FIFO单元的读使能端输入高电平,读输出端输出这一拍的读数据。
接着,当第一与门1的输出nedge为高电平,则数据选择器的第一输入端输入高电平,数据选择器输出高电平,最终第二寄存器reg2的输出valid在第一与门1的输出nedge变为高电平的下一拍变为高电平。应说明的是,数据选择器与第二寄存器reg2配合使用,用于表示第二寄存器何时输出高电平,何时输出低电平,何时保持不变。当数据选择器的第一输入端输入高电平时,数据选择器输出高电平,第二寄存器reg2输出高电平;数据选择器的第二输入端输入高电平即第三与门3输出为高电平时,数据选择器输出低电平,第二寄存器reg2输出低电平;其他情况下数据选择器输出的电平保持不变,即第二寄存器reg2输出的电平保持不变。
由于读出了一个读数据,异步FIFO单元中可能读空,也可能非读空,此时需要通过第三与门3对异步FIFO单元是否读空进行判断。
当第二寄存器reg2的输出valid为高电平,非门7输出低电平,读空信号端empty输出的信号变为低电平。外部逻辑在检测到读空信号端empty输出的信号为低电平时,即异步FIFO单元非读空,在读操作信号端ren输入高电平,此时,第二寄存器reg2的输出valid为高电平且读操作信号端ren输入高电平,即第二与门2的第一输入端和第二输入端均为高电平,第二与门2输出高电平,即第三与门3的第一输入端为高电平。第二寄存器reg2的输出valid仍为高电平,即第三与门3的第三输入端为高电平。此时,若异步FIFO单元读空,即读空信号Mem_empty为高电平,第三与门3输出高电平,数据选择器的第二输入端为高电平,数据选择器输出低电平,第二寄存器reg2的输出valid为低电平,读空信号端empty输出的信号变为高电平,外部逻辑向读操作信号端ren输入低电平,以停止异步FIFO电路的读数操作;若异步FIFO单元非读空,即读空信号Mem_empty为低电平,第三与门3输出低电平,数据选择器保持高电平,第二寄存器reg2的输出valid维持之前的高电平,读空信号端empty输出的信号为低电平,读操作信号端维持高电平,异步FIFO电路的读数操作继续进行。
当读空信号Mem_empty为低电平且第二与门2输出高电平,即第五与门5的第一输入端和第二输入端均为高电平,第五与门输出高电平,或门输出高电平,异步FIFO单元的读使能端输入高电平,读输出端输出读数据。
也就是说,第四与门4负责在读空信号Mem_empty由高电平跳为低电平而valid无效时读出读数据(第二寄存器reg2的输出valid在第一与门1的输出nedge跳变的后一拍才跳变,所以此时valid无效),第五与门5负责在外部逻辑检测到异步FIFO电路非读空(empty为低电平),向读操作信号端输入高电平时读出读数据。即使第一与门1的输出nedge在下一拍再次跳变为低电平,第四与门4无法为读操作提供信号,由于数据选择器的作用,第二寄存器reg2的输出valid维持之前的状态,异步FIFO电路仍能通过第五与门5正常为读操作提供信号。
在一种可能的实现方式中,该异步FIFO单元包括数据存储单元;该数据存储单元包括写指针、写输入端、写使能端、写时钟端、读指针、读使能端、读时钟端以及读输出端;该写指针用于指向待写数据位;该读指针用于指向待读数据位;该写输入端用于输入待写数据位的数据;该读输出端用于输出待读数据位的数据该写时钟端用于输入写时钟信号;该读时钟端用于输入读时钟信号。
在一种可能的实现方式中,该数据存储单元为双口静态读写存储器(双口SRAM)。如图1所示,该双口静态读写存储器包括写指针wr_ptr、写输入端D1、写使能端Wen、写时钟端wclk、读指针rd_ptr、读使能端Ren、读时钟端rclk以及读输出端Q1。当数据存储单元为双口静态读写存储器时,一旦双口静态读写存储器被写入数据,读空信号Mem_empty变为非空时就要先将读指针指向的数据从读输出端输出,然后再告知外部逻辑该异步FIFO电路非空,外部逻辑在获知异步FIFO电路非空后,产生读操作信号输入到读操作信号端ren,进而后续的数据也可当拍获取。
图2是根据本发明实施例的另一异步FIFO电路的结构示意图。在一种可能的实现方式中,该数据存储单元包括寄存器堆以及读寄存器;该寄存器堆包括写输入端D1、写使能端Wen、写时钟端wclk以及数据输出端Q1’,该读寄存器包括数据输入端D2、读输出端Q2、读使能端Ren以及读时钟端;该读寄存器的数据输入端D2连接至该寄存器堆的数据输出端Q1’;该读使能端Ren用于在高电平时将寄存器堆中读指针指向的数据寄存到读寄存器。当数据存储单元为寄存器堆时,一旦寄存器堆被写入数据,读空信号Mem_empty变为非空时就要先将读指针指向的数据寄存到读寄存器中并从读输出端输出,然后再告知外部逻辑该异步FIFO电路非空,外部逻辑在获知异步FIFO电路非空后,产生读操作信号输入到读操作信号端ren,进而后续的数据也可当拍获取。
应说明的是,Data_in为写入数据,Data_out为读出数据。
在一种可能的实现方式中,该异步FIFO单元还包括第一二进制寄存器和第一条件二进制值增量器;该第一条件二进制值增量器用于在高电平时增加写计数值,该第一二进制寄存器用于根据写计数值输出写指针地址,以使得写指针根据写指针地址指向待写数据位。
该第一二进制寄存器和第一条件二进制值增量器可以采用相关技术中的能够实现其功能的器件。
在一种可能的实现方式中,该异步FIFO单元还包括第二二进制寄存器和第二条件二进制值增量器;该第二条件二进制值增量器用于在高电平时增加读计数值,该第二二进制寄存器用于根据读计数值输出读指针地址,以使得读指针根据读指针地址指向待读数据位。
该第二二进制寄存器和第二条件二进制值增量器可以采用相关技术中的能够实现其功能的器件。
在一种可能的实现方式中,在该异步FIFO单元中,写操作端连接至第六与门的第一输入端;该第六与门的输出端连接至该第一条件二进制值增量器的第二输入端;该第一条件二进制值增量器的输出端连接至该第一二进制寄存器的输入端;该第一二进制寄存器的输出端连接至写指针;该第一二进制寄存器的输出端还连接至该第一条件二进制值增量器的第一输入端。
在一种可能的实现方式中,该或门的输出端还连接至该第二条件二进制值增量器的第二输入端;该第二条件二进制值增量器的输出端连接至该第二二进制寄存器的输入端;该第二二进制寄存器的输出端连接至读指针;该第二二进制寄存器的输出端还连接至该第二条件二进制值增量器的第一输入端。
在一种可能的实现方式中,该第一条件二进制值增量器的输出端还连接至第一二进制转格雷码单元的输入端;该第一二进制转格雷码单元的输出端连接至第一格雷码寄存器的输入端;该第一格雷码寄存器的输出端连接至判满逻辑单元;该判满逻辑单元输出该异步FIFO单元的写满信号full;该异步FIFO单元的写满信号还取反并输入第六与门的第二输入端;该第二条件二进制值增量器的输出端还连接至第二二进制转格雷码单元的输入端;该第二二进制转格雷码单元的输出端连接至第二格雷码寄存器的输入端;该第二格雷码寄存器的输出端连接至判空逻辑单元;该判空逻辑单元输出该异步FIFO单元的读空信号;该第一格雷码寄存器的输出端还连接至第二格雷码同步单元的输入端;该第二格雷码同步单元的输出端连接至该判空逻辑单元;该第二格雷码寄存器的输出端还连接至第一格雷码同步单元的输入端;该第一格雷码同步单元的输出端连接至该判满逻辑单元。
写满信号full为高电平代表写满,低电平代表未写满。在写使能端输入高电平且判满逻辑单元输出低电平时,第六与门输出高电平,第一条件二进制值增量器的第二输入端输入高电平。第一二进制寄存器和第一条件二进制值增量器形成循环结构,即第一二进制寄存器输出高电平时,第一条件二进制值增量器的第一输入端输入高电平,第一条件二进制值增量器输出高电平,第一二进制寄存器输出高电平,写指针指向下一个写数据位。第一条件二进制值增量器输出高电平时,第一二进制转格雷码单元将写地址由二进制转为格雷码并输入第一格雷码寄存器,第一格雷码寄存器将写地址的格雷码输入判满逻辑单元进行写满判断,第一格雷码寄存器还将写地址的格雷码输入第二格雷码同步单元用于与读时钟域同步。
在或门6输出高电平时,第二条件二进制值增量器的第二输入端输入高电平。第二二进制寄存器和第二条件二进制值增量器形成循环结构,即第二二进制寄存器输出高电平时,第二条件二进制值增量器的第一输入端输入高电平,第二条件二进制值增量器输出高电平,第二二进制寄存器输出高电平,读指针指向下一个读数据位。第二条件二进制值增量器输出高电平时,第二二进制转格雷码单元将读地址由二进制转为格雷码并输入第二格雷码寄存器,第二格雷码寄存器将读地址的格雷码输入判空逻辑单元进行读空判断,第二格雷码寄存器还将读地址的格雷码输入第一格雷码同步单元用于与写时钟域同步。
在一种可能的实现方式中,该第一格雷码同步单元包括两个串联的D触发器。
该D触发器可采用相关技术中的具有D触发器功能的器件实现。
在一种可能的实现方式中,该第二格雷码同步单元包括两个串联的D触发器。
示例性的,图3是根据本发明实施例的异步FIFO电路的时序示意图。如图3所示,其示出了异步FIFO电路中各个电信号的电平变化情况,其中W为写时钟域的电信号,R为读时钟域的电信号,data_in同Data_in,data_out同Data_out,w_ptr同wr_ptr,r_ptr同rd_ptr,wen同Wen,en同Ren,w_ptr_sync为第一格雷码同步单元的信号。
综上所述,本申请提供的异步FIFO电路,通过设置当拍读出单元,使得异步FIFO单元既可以在数据由读空变为非读空的当拍输出读数据,又可以在其他正常情况下输出当拍的读数据,且读时钟域不存在抖动,提高了写时钟域的数据向读时钟域传递的实时性和准确性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种异步FIFO电路,其特征在于,包括:
读空信号端和读操作信号端;
异步FIFO单元,用于将写时钟域的数据传递到读输出端;
当拍读出单元,与所述异步FIFO单元、所述读空信号端和读操作信号端分别连接,用于根据异步FIFO单元的读空信号控制所述异步FIFO单元的读使能,以读出数据;
所述当拍读出单元包括:第一与门、第一寄存器、数据选择器、第二寄存器、非门、第二与门、第三与门、第四与门、第五与门、或门;
其中,异步FIFO单元的读空信号取反并连接至第一与门的第一输入端,所述异步FIFO单元的读空信号还通过第一寄存器连接至所述第一与门的第二输入端;所述第一与门的输出端连接至数据选择器的第一输入端;所述数据选择器的输出端依次通过第二寄存器、非门连接至所述电路的读空信号端;
读操作信号端连接至第二与门的第一输入端,所述第二寄存器的输出端连接至第二与门的第二输入端;所述第二与门的输出端连接至第五与门的第一输入端,所述异步FIFO单元的读空信号取反并连接至第五与门的第二输入端;所述第五与门的输出端连接至或门的第一输入端;
所述第一与门的输出端连接至第四与门的第一输入端,所述第二寄存器的输出端取反并连接至第四与门的第二输入端;所述第四与门的输出端连接至或门的第二输入端;所述或门的输出端连接至所述异步FIFO单元的读使能端;
所述第二与门的输出端还连接至第三与门的第一输入端,所述异步FIFO单元的读空信号还连接至所述第三与门的第二输入端,所述第二寄存器的输出端还连接至所述第三与门的第三输入端;所述第三与门的输出端连接至所述数据选择器的第二输入端。
2.根据权利要求1所述的电路,其特征在于,所述异步FIFO单元包括数据存储单元;所述数据存储单元包括写指针、写输入端、写使能端、写时钟端、读指针、读使能端、读时钟端以及读输出端;
所述写指针用于指向待写数据位;所述读指针用于指向待读数据位;所述写输入端用于输入待写数据位的数据;所述读输出端用于输出待读数据位的数据;所述写时钟端用于输入写时钟信号;所述读时钟端用于输入读时钟信号。
3.根据权利要求2所述的电路,其特征在于,所述数据存储单元为双口静态读写存储器。
4.根据权利要求2所述的电路,其特征在于,所述数据存储单元包括寄存器堆以及读寄存器;所述寄存器堆包括写输入端、写使能端、写时钟端以及数据输出端,所述读寄存器包括数据输入端、读输出端、读使能端以及读时钟端;
所述读寄存器的数据输入端连接至所述寄存器堆的数据输出端;所述读使能端用于在高电平时将寄存器堆中读指针指向的数据寄存到读寄存器。
5.根据权利要求3或4所述的电路,其特征在于,所述异步FIFO单元还包括第一二进制寄存器和第一条件二进制值增量器;
所述第一条件二进制值增量器用于在高电平时增加写计数值,所述第一二进制寄存器用于根据写计数值输出写指针地址,以使得写指针根据写指针地址指向待写数据位。
6.根据权利要求5所述的电路,其特征在于,所述异步FIFO单元还包括第二二进制寄存器和第二条件二进制值增量器;
所述第二条件二进制值增量器用于在高电平时增加读计数值,所述第二二进制寄存器用于根据读计数值输出读指针地址,以使得读指针根据读指针地址指向待读数据位。
7.根据权利要求6所述的电路,其特征在于,在所述异步FIFO单元中,写操作端连接至第六与门的第一输入端;所述第六与门的输出端连接至所述第一条件二进制值增量器的第二输入端;所述第一条件二进制值增量器的输出端连接至所述第一二进制寄存器的输入端;所述第一二进制寄存器的输出端连接至写指针;所述第一二进制寄存器的输出端还连接至所述第一条件二进制值增量器的第一输入端。
8.根据权利要求7所述的电路,其特征在于,所述或门的输出端还连接至所述第二条件二进制值增量器的第二输入端;所述第二条件二进制值增量器的输出端连接至所述第二二进制寄存器的输入端;所述第二二进制寄存器的输出端连接至读指针;所述第二二进制寄存器的输出端还连接至所述第二条件二进制值增量器的第一输入端。
9.根据权利要求8所述的电路,其特征在于,所述第一条件二进制值增量器的输出端还连接至第一二进制转格雷码单元的输入端;所述第一二进制转格雷码单元的输出端连接至第一格雷码寄存器的输入端;所述第一格雷码寄存器的输出端连接至判满逻辑单元;所述判满逻辑单元输出所述异步FIFO单元的写满信号;所述异步FIFO单元的写满信号还取反并输入第六与门的第二输入端;
所述第二条件二进制值增量器的输出端还连接至第二二进制转格雷码单元的输入端;所述第二二进制转格雷码单元的输出端连接至第二格雷码寄存器的输入端;所述第二格雷码寄存器的输出端连接至判空逻辑单元;所述判空逻辑单元输出所述异步FIFO单元的读空信号;
所述第一格雷码寄存器的输出端还连接至第二格雷码同步单元的输入端;所述第二格雷码同步单元的输出端连接至所述判空逻辑单元;所述第二格雷码寄存器的输出端还连接至第一格雷码同步单元的输入端;所述第一格雷码同步单元的输出端连接至所述判满逻辑单元。
10.根据权利要求9所述的电路,其特征在于,所述第一格雷码同步单元包括两个串联的D触发器;所述第二格雷码同步单元包括两个串联的D触发器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311187921.9A CN117406954A (zh) | 2023-09-14 | 2023-09-14 | 一种异步fifo电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311187921.9A CN117406954A (zh) | 2023-09-14 | 2023-09-14 | 一种异步fifo电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117406954A true CN117406954A (zh) | 2024-01-16 |
Family
ID=89496954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311187921.9A Pending CN117406954A (zh) | 2023-09-14 | 2023-09-14 | 一种异步fifo电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117406954A (zh) |
-
2023
- 2023-09-14 CN CN202311187921.9A patent/CN117406954A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367495B (zh) | 一种异步先入先出的数据缓存控制器 | |
US5905766A (en) | Synchronizer, method and system for transferring data | |
US6263410B1 (en) | Apparatus and method for asynchronous dual port FIFO | |
JP3645584B2 (ja) | データ転送同期装置 | |
JP3712471B2 (ja) | コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路 | |
US5555524A (en) | Semi-synchronous dual port FIFO | |
US5524270A (en) | System for transferring data between asynchronous data buses with a data buffer interposed in between the buses for synchronization of devices timed by different clocks | |
US7310396B1 (en) | Asynchronous FIFO buffer for synchronizing data transfers between clock domains | |
EP3249543A1 (en) | Interface signal remapping method based on fpga | |
US8001409B2 (en) | Synchronization device and methods thereof | |
US6845414B2 (en) | Apparatus and method of asynchronous FIFO control | |
US5331669A (en) | Asynchronous pulse converter | |
US8356203B2 (en) | Asynchronous interface circuit and data transfer method | |
CN111832240B (zh) | Fifo数据传输方法及fifo存储装置 | |
US20030007394A1 (en) | System for data transfer between different clock domains, and for obtaining status of memory device during transfer | |
US9218860B2 (en) | Multiple data rate memory with read timing information | |
US5357613A (en) | Time-domain boundary buffer method and apparatus | |
US6226698B1 (en) | Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO | |
TW569087B (en) | Efficient clock start and stop apparatus for clock forwarded system I/O | |
US6208703B1 (en) | First-in-first-out synchronizer | |
JP2004062630A (ja) | Fifoメモリ及び半導体装置 | |
CN110825344A (zh) | 一种异步数据传输方法和结构 | |
US6286072B1 (en) | System and method for synchronizing data communication between asynchronous buses | |
US6098139A (en) | Frequency independent asynchronous clock crossing FIFO | |
CN117406954A (zh) | 一种异步fifo电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |