CN112650468A - 一种零延迟fifo电路及电子设备 - Google Patents

一种零延迟fifo电路及电子设备 Download PDF

Info

Publication number
CN112650468A
CN112650468A CN202011401340.7A CN202011401340A CN112650468A CN 112650468 A CN112650468 A CN 112650468A CN 202011401340 A CN202011401340 A CN 202011401340A CN 112650468 A CN112650468 A CN 112650468A
Authority
CN
China
Prior art keywords
fifo
ram
zero
data
circuit
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.)
Granted
Application number
CN202011401340.7A
Other languages
English (en)
Other versions
CN112650468B (zh
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.)
Beijing Boya Huishi Intelligent Technology Research Institute Co ltd
Original Assignee
Beijing Boya Huishi Intelligent Technology Research Institute 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 Beijing Boya Huishi Intelligent Technology Research Institute Co ltd filed Critical Beijing Boya Huishi Intelligent Technology Research Institute Co ltd
Priority to CN202011401340.7A priority Critical patent/CN112650468B/zh
Publication of CN112650468A publication Critical patent/CN112650468A/zh
Application granted granted Critical
Publication of CN112650468B publication Critical patent/CN112650468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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/10Methods 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 having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本申请公开了一种零延迟FIFO电路及电子设备,其中零延迟FIFO电路包括数据通道和状态机;状态机分别与数据通道中的RAM FIFO、第一多路选通、第二多路选通通信连接,状态机根据RAM FIFO、第一寄存器组、第二寄存器组中数据的状态,输出控制信号,以完成先进入所述FIFO电路的数据先被读取的操作。相较于现有技术,本申请中通过状态机的控制,用两级寄存器组加上RAM FIFO实现了零延迟FIFO电路,使得该FIFO电路兼具容量大和使用方便的优点。

Description

一种零延迟FIFO电路及电子设备
技术领域
本申请属于电路设计技术领域,尤其涉及一种零延迟FIFO电路及电子设备。
背景技术
FIFO(First_In_First_Out),是数字电路设计中被广泛使用的一个基本器件。FIFO一般有空、满信号作为输出,时钟、复位、读、写信号作为输入,fifo的基本功能是存放数据,而且是先进来的数据先被下游逻辑取走。
FIFO存放数据必须有存储单元,通常位宽较窄、深度较浅的FIFO,采用寄存器作为存储单元,虽然寄存器的单位面积比较大(相对于RAM(Random Access Memory,随机存取存储器)的一个比特单元而言),寄存器的值通常不需要提前一拍设置地址或读使能信号就能被读出,故而用寄存器搭建的FIFO在空信号为低(即FIFO非空)的当拍,其输出数据即可被下游逻辑采样,而与当前输入的读信号状态无关,此类FIFO称之为零延迟FIFO。
使用这种零延迟FIFO设计使得下游采样逻辑可以被设计得很简单(组合逻辑即可实现),然而对于存储单元需求比较多的情况,如果FIFO仅用寄存器组来实现,其面积开销会非常大,所以不得不用面积开销小很多的同步RAM来组建存储单元,由于常见的同步RAM要求必须提前一个时钟周期设置读使能及读出地址,才能在随后的时钟周期给出有效数据,造成下游采样逻辑在检测到FIFO空信号被拉低的当拍必须同时把FIFO的读信号置位,才能保证下一拍能正确采样FIFO的输出,这就要求下游采样逻辑必须设计时序逻辑才能读FIFO,也就是增加了下游采样逻辑的复杂度。由于这种FIFO有一拍读出延迟,把它归属在非零延迟FIFO这一类。本申请中把这种存储单元由RAM组成,同时有一拍读出延时的FIFO称为RAM FIFO,由于它的设计较为常见,此处不给出其设计的具体细节。综上所述,现有的上述两种FIFO设计各有局限性。
发明内容
有鉴于此,本申请实施例提供了一种零延迟FIFO电路及电子设备,以克服现有技术中存在的问题。
本申请第一方面实施例提供一种零延迟FIFO电路,包括:
数据通道和状态机;所述数据通道的一端连接所述FIFO电路的数据输入端,另一端连接所述FIFO电路的数据输出端;所述状态机分别连接所述FIFO电路的空信号端、满信号端、读信号端和写信号端;
所述数据通道包括RAM FIFO、第一多路选通、第一寄存器组、第二多路选通和第二寄存器组;
所述状态机分别与所述RAM FIFO、所述第一多路选通、所述第二多路选通通信连接,所述状态机根据所述RAM FIFO、所述第一寄存器组、所述第二寄存器组中数据的状态,输出控制信号,以完成先进入所述FIFO电路的数据先被读取的操作。
根据本申请的一些实施方式中,所述第一多路选通分别与所述RAM FIFO、所述第一寄存器组和所述状态机通信连接;
所述第二多路选通分别与所述RAM FIFO、所述第二寄存器组和所述状态机通信连接。
根据本申请的一些实施方式中,所述FIFO电路的数据输入端分别与所述RAMFIFO、所述第一多路选通、所述第二多路选通连接;
所述FIFO电路的数据输出端分别与所述第二多路选通和所述第二寄存器组连接。
根据本申请的一些实施方式中,所述RAM FIFO包括:RAM FIFO输入端、RAM FIFO输出端、RAM FIFO空信号端、RAM FIFO满信号端、RAM FIFO读信号端和RAM FIFO写信号端。
根据本申请的一些实施方式中,所述RAM FIFO输入端与所述FIFO电路的数据输入端连接。
根据本申请的一些实施方式中,所述RAM FIFO输出端分别与所述第一多路选通和所述第二多路选通连接。
根据本申请的一些实施方式中,所述RAM FIFO空信号端、RAM FIFO满信号端、RAMFIFO读信号端和RAM FIFO写信号端均与所述状态机连接。
本申请第二方面实施例提供一种电子设备,包括如第一方面中所述的零延迟FIFO电路。
本申请提供的零延迟FIFO电路及电子设备,其中零延迟FIFO电路包括数据通道和状态机;状态机分别与数据通道中的RAM FIFO、第一多路选通、第二多路选通通信连接,状态机根据RAM FIFO、第一寄存器组、第二寄存器组中数据的状态,输出控制信号,以完成先进入所述FIFO电路的数据先被读取的操作。相较于现有技术,本申请中通过状态机的控制,用两级寄存器组加上RAM FIFO实现了零延迟FIFO电路,使得该FIFO电路兼具容量大和使用方便的优点。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
附图1示出了本申请实施例提供的一种零延迟FIFO电路的示意图;
附图2示出了本申请实施例提供的一种状态机的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
参照下面的描述和附图,将清楚本申请的实施例的这些和其他方面。在这些描述和附图中,具体公开了本申请的实施例中的一些特定实施方式,来表示实施本申请的实施例的原理的一些方式,但是应当理解,本申请的实施例的范围不受此限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
下面参照附图对本申请实施例提出的零延迟FIFO电路及电子设备进行描述。
首先对本申请实施例提出的零延迟FIFO电路进行描述。图1为根据本申请实施例提出的零延迟FIFO电路的示意图。
如图1所示,本申请实施例提出的零延迟FIFO电路(以下简称FIFO电路),包括:数据通道100和状态机(Finite State Machine,FSM)200。
数据通道100的一端连接FIFO电路的数据输入端(图中的DIN端),另一端连接FIFO电路的数据输出端(图中的DOUT端);
状态机200分别连接FIFO电路的空信号端(图中的EMPTY端)、满信号端(图中的FULL端)、读信号端(图中的RD端)和写信号端(图中的WR端);
数据通道100包括RAM FIFO110、第一多路选通120、第一寄存器组130、第二多路选通140和第二寄存器组150;状态机200分别与RAM FIFO110、第一多路选通120、第二多路选通140通信连接,状态机200用于根据RAM FIFO110、第一寄存器组130、第二寄存器组150中数据的状态,输出控制信号,以完成先进入FIFO电路的数据先被读取的操作。
第一多路选通120分别与RAM FIFO110、第一寄存器组130和状态机200通信连接,在状态机200的控制下,将来自RAM FIFO110的数据输出至第一寄存器组130。
第二多路选通140分别与RAM FIFO110、第二寄存器组150和状态机200通信连接,在状态机200的控制下,将来自RAM FIFO110、第一寄存器组130的数据输出至第二寄存器组150。
本申请中,RAM FIFO110的输入只能是该零延迟FIFO电路的数据输入。而该零延迟FIFO电路的数据输出直接由第二寄存器组150驱动。中间所有的数据流动、RAM FIFO110的读写以及该零延迟FIFO电路的状态均由状态机200控制。
本申请中通过状态机200的控制,可以有选择的是否将数据跳过RAM FIFO110,而直接存储于第一寄存器组130或第二寄存器组150中,减少了数据传输的延迟。
上述FIFO电路的数据输入端分别与RAM FIFO110、第一多路选通120、第二多路选通140连接;
上述FIFO电路的数据输出端分别与第二多路选通140和第二寄存器组150连接。
具体的,RAM FIFO110包括:RAM FIFO输入端(图中所示的din端)、RAM FIFO输出端(图中所示的dout端)、RAM FIFO空信号端(图中所示的empty端)、RAM FIFO满信号端(图中所示的full端)、RAM FIFO读信号端(图中所示的rd端)和RAM FIFO写信号端(图中所示的wr端)。
具体的,RAM FIFO输入端与FIFO电路的数据输入端连接,如图中的DIN端与din端连接。
具体的,RAM FIFO输出端(图中的dout端)分别与第一多路选通120和第二多路选通140连接。
具体的,RAM FIFO空信号端、RAM FIFO满信号端、RAM FIFO读信号端和RAM FIFO写信号端均与状态机200连接。如图中所示的empty端、full端、rd端和wr端均与状态机200连接。
如图2所示为本申请实施例给出的一种状态机的示意图。
如图2所示,本申请采用的状态机有四种状态,如图中的ST_EMPTY状态、ST_AC状态、ST_A状态和ST_AB状态,其它方式的状态机设计也是可能的,因为状态机的设计往往和用户自身有关,采用其它状态机设计或者不显式的使用状态机不应当影响本申请的覆盖效力。
图2中的A是指第二寄存器组150,B指第一寄存器组130,C是指内置于RAM FIFO110的寄存器组,需要指出的是,与A、B这两个物理寄存器组不同,C只是为了阐明设计原理而假设的一个存在于RAM_FIFO内部的一个寄存器组,因为RAM_FIFO必须延迟一拍才能读出结果,为方便分析,此处可以在功能上把RAM_FIFO等价为一个0延迟的FIFO外加一级输出寄存器,这一级输出寄存器也就是C寄存器组。
图2中方块的颜色代表A、B、C中数据的状态,白色块代表没有有效数据,黑色块代表存在有效数据。比如ST_EMPTY状态,A、B、C中都没有有效数据;比如ST_AC状态代表A、C中有有效数据,而B中没有有效数据。图2中符号说明:ST_EMPTY表示A、B及C寄存器组均为空的状态;ST_A表示A寄存器组有效,B、C寄存器组为空的状态;ST_AB表示A、B寄存器组有效,C寄存器组为空的状态;ST_AC表示A、C寄存器组有效,B寄存器组为空的状态;WR表示模块端口写信号,高有效;RD表示模块端口读信号,高有效;empty表示内部RAM FIFO(110)空信号,高表明内部RAM FIFO为空。
对于C中的数据状态,如果当前拍RAM FIFO110的empty端为低,同时rd信号端被状态机200拉高,那么下一拍RAM FIFO110的输出,即C中的数据为有效数据。
需要说明的是,本申请中可以假定上述有效数据只持续一个时钟周期,这是因为虽然相当部分的RAM在不被读的时候(即读使能置低),其输出端口可以维持原有的值,但现实中也确实存在大量RAM工作在所谓“写优先”模式,意味着即使不置位读使能,一个RAM写操作也可以改变其端口上的输出数据。考虑到正确的RAM FIFO110设计不会同一拍同时读写同一个RAM地址(即不会有读写冲突),所以可以确信在RAM FIFO110的empty端为低,rd信号端拉高后的那一个时钟周期,RAM FIFO110的dout端上一定是存在有效数据的。
需要说明的是,图2中未全部标注出每个状态下需要更新的内部信号和外部输出。
具体地,本申请的零延迟FIFO电路,通过状态机200的控制,输入数据会根据存储模块的存储状态自动切换到对应的存储模块中,从而实现了数据零延迟FIFO。
本申请提供的零延迟FIFO电路,包括数据通道和状态机;状态机分别与数据通道中的RAM FIFO、第一多路选通、第二多路选通通信连接,状态机根据RAM FIFO、第一寄存器组、第二寄存器组中数据的状态,输出控制信号,以完成先进入所述FIFO电路的数据先被读取的操作。相较于现有技术,本申请中通过状态机的控制,用两级寄存器组加上RAM FIFO实现了零延迟FIFO电路,使得该FIFO电路兼具容量大和使用方便的优点;由于相较于RAM端口直接输出,寄存器输出的时序较好,故该FIFO电路还可以运行在更高时钟频率下。
本申请实施例还提供了一种电子设备,该电子设备包括上述实施例中的零延迟FIFO电路。
以上结合附图详细描述了本申请例的可选实施方式,但是,本申请实施例并不限于上述实施方式中的具体细节,在本申请实施例的技术构思范围内,可以对本申请实施例的技术方案进行多种简单变型,这些简单变型均属于本申请实施例的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本申请实施例对各种可能的组合方式不再另行说明。
此外,本申请实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请实施例的思想,其同样应当视为本申请实施例所公开的内容。

Claims (8)

1.一种零延迟FIFO电路,其特征在于,包括:数据通道和状态机;
所述数据通道的一端连接所述FIFO电路的数据输入端,另一端连接所述FIFO电路的数据输出端;所述状态机分别连接所述FIFO电路的空信号端、满信号端、读信号端和写信号端;
所述数据通道包括RAM FIFO、第一多路选通、第一寄存器组、第二多路选通和第二寄存器组;
所述状态机分别与所述RAM FIFO、所述第一多路选通、所述第二多路选通通信连接,所述状态机根据所述RAM FIFO、所述第一寄存器组、所述第二寄存器组中数据的状态,输出控制信号,以完成先进入所述FIFO电路的数据先被读取的操作。
2.根据权利要求1所述的零延迟FIFO电路,其特征在于,所述第一多路选通分别与所述RAM FIFO、所述第一寄存器组和所述状态机通信连接;
所述第二多路选通分别与所述RAM FIFO、所述第二寄存器组和所述状态机通信连接。
3.根据权利要求2所述的零延迟FIFO电路,其特征在于,所述FIFO电路的数据输入端分别与所述RAM FIFO、所述第一多路选通、所述第二多路选通连接;
所述FIFO电路的数据输出端分别与所述第二多路选通和所述第二寄存器组连接。
4.根据权利要求3所述的零延迟FIFO电路,其特征在于,所述RAM FIFO包括:RAM FIFO输入端、RAM FIFO输出端、RAM FIFO空信号端、RAM FIFO满信号端、RAM FIFO读信号端和RAMFIFO写信号端。
5.根据权利要求4所述的零延迟FIFO电路,其特征在于,所述RAM FIFO输入端与所述FIFO电路的数据输入端连接。
6.根据权利要求4所述的零延迟FIFO电路,其特征在于,所述RAM FIFO输出端分别与所述第一多路选通和所述第二多路选通连接。
7.根据权利要求4所述的零延迟FIFO电路,其特征在于,所述RAM FIFO空信号端、RAMFIFO满信号端、RAM FIFO读信号端和RAM FIFO写信号端均与所述状态机连接。
8.一种电子设备,其特征在于,包括如权利要求1-7中任一项所述的零延迟FIFO电路。
CN202011401340.7A 2020-12-03 2020-12-03 一种零延迟fifo电路及电子设备 Active CN112650468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011401340.7A CN112650468B (zh) 2020-12-03 2020-12-03 一种零延迟fifo电路及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011401340.7A CN112650468B (zh) 2020-12-03 2020-12-03 一种零延迟fifo电路及电子设备

Publications (2)

Publication Number Publication Date
CN112650468A true CN112650468A (zh) 2021-04-13
CN112650468B CN112650468B (zh) 2022-02-22

Family

ID=75350281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011401340.7A Active CN112650468B (zh) 2020-12-03 2020-12-03 一种零延迟fifo电路及电子设备

Country Status (1)

Country Link
CN (1) CN112650468B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557733A (en) * 1993-04-02 1996-09-17 Vlsi Technology, Inc. Caching FIFO and method therefor
US20040160845A1 (en) * 2002-10-31 2004-08-19 Stmicoelectronics Pvt. Ltd. Method and apparatus to reduce access time in synchronous FIFOS with zero latency overhead
CN201878182U (zh) * 2010-11-22 2011-06-22 四川九洲电器集团有限责任公司 一种基于fpga的总线型通信***
CN102117193A (zh) * 2010-01-04 2011-07-06 杭州华三通信技术有限公司 一种实现预读式fifo的方法和预读式fifo
CN102707919A (zh) * 2012-05-28 2012-10-03 上海海事大学 一种使用有限状态机控制fifo之间读写的装置及方法
CN110442321A (zh) * 2019-07-19 2019-11-12 南京芯驰半导体科技有限公司 一种预取fifo电路及方法
CN111078609A (zh) * 2019-11-13 2020-04-28 南京航空航天大学 一种基于FPGA的PCIe转三总线接口及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557733A (en) * 1993-04-02 1996-09-17 Vlsi Technology, Inc. Caching FIFO and method therefor
US20040160845A1 (en) * 2002-10-31 2004-08-19 Stmicoelectronics Pvt. Ltd. Method and apparatus to reduce access time in synchronous FIFOS with zero latency overhead
CN102117193A (zh) * 2010-01-04 2011-07-06 杭州华三通信技术有限公司 一种实现预读式fifo的方法和预读式fifo
CN201878182U (zh) * 2010-11-22 2011-06-22 四川九洲电器集团有限责任公司 一种基于fpga的总线型通信***
CN102707919A (zh) * 2012-05-28 2012-10-03 上海海事大学 一种使用有限状态机控制fifo之间读写的装置及方法
CN110442321A (zh) * 2019-07-19 2019-11-12 南京芯驰半导体科技有限公司 一种预取fifo电路及方法
CN111078609A (zh) * 2019-11-13 2020-04-28 南京航空航天大学 一种基于FPGA的PCIe转三总线接口及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
毛峡等: ""尖叫声识别装置的研制"", 《复旦学报(自然科学版)》 *

Also Published As

Publication number Publication date
CN112650468B (zh) 2022-02-22

Similar Documents

Publication Publication Date Title
KR100783049B1 (ko) 반도체기억장치
US7239576B2 (en) Memory device and method of controlling the same
US6134155A (en) Synchronized circuit for coordinating address pointers across clock domains
US20040196732A1 (en) Multi-stage output multiplexing circuits and methods for double data rate synchronous memory devices
US7710789B2 (en) Synchronous address and data multiplexed mode for SRAM
US7586337B2 (en) Circuit for switching between two clock signals independently of the frequency of the clock signals
US20070260778A1 (en) Memory controller with bi-directional buffer for achieving high speed capability and related method thereof
US6563747B2 (en) Integrated data input sorting and timing circuit for double data rate (DDR) dynamic random access memory (DRAM) devices
KR19990014312A (ko) 반도체 기억장치
KR100712508B1 (ko) 메모리 장치의 구조
CN106158012B (zh) Fpga片内sram的时序处理方法、片内sram及fpga
US7392354B1 (en) Multi-queue FIFO memory devices that support a backed-off standard mode of operation and methods of operating same
CN112650468B (zh) 一种零延迟fifo电路及电子设备
CN110097902B (zh) 针对同一端口的读写控制模块及方法、双端口存储器
US6141274A (en) Semiconductor integrated circuit having a pre-charged operation and a data latch function
US6718429B1 (en) Configurable register file with multi-range shift register support
US5831930A (en) Semiconductor memory device with address signal transition detection
KR101404844B1 (ko) 듀얼 포트 메모리 및 그 방법
CN212990690U (zh) 一种双串口总线Nand型存储器
US20020136063A1 (en) High speed latch/register
KR100211770B1 (ko) 버스트 어드레스 레지스터
US20040057321A1 (en) Device for storage of multiport data, particularly for an arithmetic and logic unit of a digital signal processing processor
CN117724600A (zh) 读写控制电路及读写控制方法
KR200211287Y1 (ko) 고속 선입선출 메모리
KR100353816B1 (ko) 통신용 수신 장치

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
GR01 Patent grant
GR01 Patent grant