CN207718357U - 一种fifo存储器 - Google Patents

一种fifo存储器 Download PDF

Info

Publication number
CN207718357U
CN207718357U CN201721612844.7U CN201721612844U CN207718357U CN 207718357 U CN207718357 U CN 207718357U CN 201721612844 U CN201721612844 U CN 201721612844U CN 207718357 U CN207718357 U CN 207718357U
Authority
CN
China
Prior art keywords
unit
cache module
data
fifo memory
twoport
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
Application number
CN201721612844.7U
Other languages
English (en)
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.)
Aisino Corp
Original Assignee
Aisino Corp
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 Aisino Corp filed Critical Aisino Corp
Priority to CN201721612844.7U priority Critical patent/CN207718357U/zh
Application granted granted Critical
Publication of CN207718357U publication Critical patent/CN207718357U/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本实用新型实施例提供一种FIFO存储器,属于数据缓存技术领域,包括:输入数据选择单元、双口缓存单元、输出数据选择单元和异步比较单元;所述双口缓存单元内设置有用于缓存数据的第一缓存模块和第二缓存模块,所述输入数据选择单元与所述双口缓存单元连接,所述双口缓存单元与所述输出数据选择单元连接,所述异步比较单元与所述双口缓存单元并联。通过将FIFO的双口缓存单元内的存储缓存模块划分为第一缓存模块和第二缓存模块,两个缓存模块中的一个在写入数据的同时,另一个缓存模块在读出数据,数据的读写同步,且缓存模块的写入状态和读出状态同时切换,保证了数据传输的连贯性和稳定性。

Description

一种FIFO存储器
技术领域
本实用新型实施例涉及数据缓存技术领域,尤其涉及一种FIFO存储器。
背景技术
FIFO(first in first out)存储器,是一个先入先出的双口缓冲器,它有两个端口,一个是写端口即输入端口,一个是读端口即输出端口,FIFO 通常用作数据缓冲器,FIFO一般用于不同时钟域之间的数据传输,不同宽度的数据接口也可以用FIFO实现。有很大一部分的FIFO读写器读写不能同时操作,读的时候FIFO存储器不能进行写操作,写的时候FIFO存储器不能进行读操作,只有当FIFO存储器写满之后才能对其进行读操作,只有当FIFO 存储器读空之后才能对其进行写操作。
当利用FIFO存储器缓存数据时,输入的数据流和输出的数据流是间断的,一方面使得数据传输的效率低下,另一方面使得数据传输的稳定性差。
实用新型内容
有鉴于此,本实用新型实施例所解决的技术问题之一在于提供一种FIFO 存储器,用以克服现有技术中FIFO存储器缓存数据时,输入的数据流和输出的数据流是间断的,造成的数据传输的效率低下,数据传输的稳定性差的缺陷,达到使数据传输效率高,数据传输稳定性强的效果。
本实用新型实施例提供一种FIFO存储器包括:双口缓存单元、输入数据选择单元、输出数据选择单元和异步比较单元,所述输入数据选择单元与所述双口缓存单元连接,所述双口缓存单元与所述输出数据选择单元连接,所述异步比较单元与所述双口缓存单元并联;
所述双口缓存单元内设置有第一缓存模块和第二缓存模块,所述输入数据选择单元用于为接收到的数据从第一缓存模块和第二缓存模块中选择缓存模块,所述双口缓存单元用于将接收到的数据缓存到选定的缓存模块上,所述输出数据选择单元用于从第一缓存模块和第二缓存模块中选择需要输出数据的缓存模块,所述异步比较单元用于检测并控制第一缓存模块和第二缓存模块的读写状态。
进一步地,在本实用新型的一些具体实施例中,所述第一缓存模块和第二缓存模块上都设置有输入接口和输出接口,所述输入接口与所述输入数据选择单元连接,所述输出接口与所述输出数据选择单元连接。
进一步地,在本实用新型的一些具体实施例中,所述输入数据选择单元等时长的将接收到的数据流分配到双口缓存单元的缓存模块中。
进一步地,在本实用新型的一些具体实施例中,在第一周期内,所述输入数据选择单元将接收到的数据分配到所述第一缓存模块中缓存,在第二周期内,所述输入数据选择单元将接收到的数据分配到所述第二缓存模块中缓存。
进一步地,在本实用新型的一些具体实施例中,所述输出数据选择单元等时长的从所述双口缓存单元的缓存模块中读取数据。
进一步地,在本实用新型的一些具体实施例中,在第三周期内,所述输出数据选择单元从所述第一缓存模块中读取数据,在第四周期内,所述输出数据选择单元从所述第二缓存模块中读取数据。
进一步地,在本实用新型的一些具体实施例中,所述第一缓存模块处于写入和/或读出状态与所述第二缓存模块处于读出和/或写入状态同步进行,且同步切换写入和/或读出的状态。
进一步地,在本实用新型的一些具体实施例中,还包括输出数据处理单元,所述输出数据处理单元与所述输出数据选择单元连接,所述输出数据处理单元用于对所述输出数据选择单元输出的数据进行处理。
进一步地,在本实用新型的一些具体实施例中,所述异步比较单包括空信号同步电路和满信号同步电路,所述空信号同步电路用于产生空标志位,所述满信号同步电路用于产生满信号标志位。
进一步地,在本实用新型的一些具体实施例中,所述空信号同步电路包括两个同步到写时钟域的第一触发器,所述两个同步到写时钟域的第一触发器级联,所述满信号同步电路包括两个同步到写时钟域的第二触发器,包括两个同步到写时钟域的第二触发器级联。
由以上技术方案可见,本实用新型实施例提供的FIFO存储器,通过将 FIFO的双口缓存单元内的存储缓存模块划分为第一缓存模块和第二缓存模块,两个缓存模块中的一个在写入数据的同时,另一个缓存模块在读出数据,数据的读写同步,且缓存模块的写入状态和读出状态同时切换,保证了数据传输的连贯性和稳定性。
附图说明
为了更清楚地说明本实用新型实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实用新型实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本实用新型实施例一的FIFO存储器的电路结构原理图;
图2为本实用新型实施例的FIFO存储器的异步比较单元的空信号同步电路的原理图;
图3为本实用新型实施例的FIFO存储器的异步比较单元的满信号同步电路的原理图。
具体实施方式
本实用新型的实施例提供一种FIFO存储器,包括:输入数据选择单元、双口缓存单元、输出数据选择单元和异步比较单元;
所述双口缓存单元内设置有用于缓存数据的第一缓存模块和第二缓存模块,所述输入数据选择单元用于为接收到的数据选择缓存模块,所述双口缓存单元用于对接收到的数据进行缓存,所述输出数据选择单元用于从所述双口缓存单元中选择需要输出数据的缓存模块,所述异步比较单元用于检测并控制缓存模块的读写状态;
所述输入数据选择单元与所述双口缓存单元连接,所述双口缓存单元与所述输出数据选择单元连接,所述异步比较单元与所述双口缓存单元并联。
本实施例的FIFO存储器,通过将FIFO的双口缓存单元内的存储缓存模块划分为第一缓存模块和第二缓存模块,两个缓存模块中的一个在写入数据的同时,另一个缓存模块在读出数据,数据的读写同步,且两个缓存模块的写入状态和读出状态同时切换,保证了数据传输的连贯性和稳定性。
当然,实施本实用新型实施例的任一技术方案必不一定需要同时达到以上的所有优点。
为了使本领域的人员更好地理解本实用新型实施例中的技术方案,下面将结合本实用新型实施例中的附图,对本实用新型实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本实用新型实施例一部分实施例,而不是全部的实施例。基于本实用新型实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本实用新型实施例保护的范围。
下面结合本实用新型实施例附图进一步说明本实用新型实施例具体实现。
如图1所示,为本实用新型实施例一的FIFO存储器的电路结构原理图。本实施例的FIFO存储器包括输入数据选择单元101、双口缓存单元102和输出数据选择单元103,以及与所述双口缓存单元102并联的异步比较单元104,所述输入数据选择单元101、双口缓存单元102和输出数据选择单元103级联,其中,所述双口缓存单元102内设置有第一数据缓存模块1021和第二数据缓存模块1022,所述第一数据缓存模块1021和第二数据缓存模块1022分别设置有输入接口和输出接口,所述第一数据缓存模块1021和第二数据缓存模块1022的输入接口与所述输入数据选择单元101连通,所述输入数据选择单元101通过所述输入接口往所述第一数据缓存模块1021和第二数据缓存模块1022内写入数据,所述第一数据缓存模块1021和第二数据缓存模块1022 的输出接口与所述输出数据选择单元103连通,所述输出数据选择单元103 通过所述输出接口读出所述第一数据缓存模块1021和第二数据缓存模块1022内的缓存数据。所述异步比较单元104用于检测并控制缓存模块的读写状态。此外,还包括输出数据处理单元,所述输出数据处理单元用于对输出的数据进行处理。
具体地,所述输入数据选择单元101将数据流等时长分配到所述双口缓存单元102的两个缓存模块中,所述缓存模块可以为任意的存储模块,比如双端口RAM即DPRAM,单口RAM即SPRAM,FIFO等。比如,在第一个缓冲周期,所述输入数据选择单元101将输入的数据缓存到第一数据缓存模块1021 内;在第二个缓冲周期,通过输入数据选择单元101的切换,将输入的数据缓冲到第二数据缓存模块1022内。同时,所述输出数据选择单元103切换,将第一数据缓存模块1021缓存的第一个缓冲周期的输入数据送到输出数据处理单元进行运算处理;在第三个缓冲周期,通过输入数据选择单元101的再次切换,将输入的数据缓存到第一数据缓存模块1021内,同时将第二数据缓存模块1022内缓存的第二个缓冲周期的输入数据通过输出数据选择单元 103的再次切换送到输出数据处理单元进行运算处理,如此循环下去。
通过输入数据选择单元和输出数据选择单元按时序相互配合进行切换,将数据没有时间停顿的不断地送到运算处理单元进行数据处理。输入数据流和输出数据流都是连续不断的,没有任何停顿,实现了处理数据的无缝缓冲和处理。
在上述实施例中,输入数据选择单元和输出数据选择单元的时序切换是由异步比较模块来控制的,所述异步比较模块通过对比输入数据的两个时钟域的地址信息,根据所述地址信息产生对应的空和满的标志位。由于读和写分别属于两个时钟域,所以需要对跨时钟域的读和写地址进行比较。当一个信号从一个时钟域传递到另外一个时钟域时,就难以避免地遇到亚稳态的问题。目前解决这个问题的主要手段是采样同步器,使得在另外一个时钟域的采样信号足够稳定。但是将一个n位宽的数据使用同步器进行同步,还是容易出现亚稳态的问题。作为一种实施例,可以选择地址指针使用格雷码,其数据的变化只会有一位发生变化,不会出现其他情况。
当读指针ReadPtr到了双口RAM2的底部时,说明下一个读时钟到来时双口RAM2就要被读空了,此时使用一个信号direction=0,表示双口RAM2 就要读空了。下一个时钟周期如果读指针ReadPtr继续累加,则ReadPtr就会清零,且ReadPtr的最高位MSB就会发生变化。当direction=0,如果读指针 ReadPtr的MSB发生变化,且写操作仍然在对双口RAM1进行操作,则异步比较模块应立刻产生empty空信号。当写操作开始对双口RAM2进行操作,则异步比较模块不产生empty空信号。
类似的满信号FULL也是如此产生的。当写指针WritePtr到了双口RAM2 的底部时,说明下一个写时钟到来时双口RAM2就要被写满了,此时使用信号direction=0,表示双口RAM2就要写满了。下一个时钟周期如果写指针 WritePtr继续累加,则WritePtr就会清零,且WritePtr的最高位MSB就会发生变化。当direction=0,如果写指针WritePtr的MSB发生变化,且读操作仍然在对双口RAM1进行操作,则异步别计较模块应立刻产生full满信号。当读操作开始对双口RAM2进行操作,则异步比较模块不产生FULL空信号。
空信号empty需要同步到写时钟域,而满信号full也需要同步到读时钟域。空信号empty的同步电路如附图2所示,空信号在读时钟域产生,此信号连到写时钟域的两个触发器后,输出的同步空信号empty_sync同步于写时钟域;满信号full的同步电路如附图3所示,满信号在写时钟域产生,此信号连到读时钟域的两个触发器后,输出的同步满信号full_sync同步于读时钟域。
最后应说明的是:以上实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种FIFO存储器,其特征在于,包括:双口缓存单元、输入数据选择单元、输出数据选择单元和异步比较单元,所述输入数据选择单元与所述双口缓存单元连接,所述双口缓存单元与所述输出数据选择单元连接,所述异步比较单元与所述双口缓存单元并联;
所述双口缓存单元内设置有第一缓存模块和第二缓存模块,所述输入数据选择单元用于为接收到的数据从第一缓存模块和第二缓存模块中选择缓存模块,所述双口缓存单元用于将接收到的数据缓存到选定的缓存模块上,所述输出数据选择单元用于从第一缓存模块和第二缓存模块中选择需要输出数据的缓存模块,所述异步比较单元用于检测并控制第一缓存模块和第二缓存模块的读写状态。
2.根据权利要求1所述的FIFO存储器,其特征在于,所述第一缓存模块和第二缓存模块上都设置有输入接口和输出接口,所述输入接口与所述输入数据选择单元连接,所述输出接口与所述输出数据选择单元连接。
3.根据权利要求1所述的FIFO存储器,其特征在于,所述输入数据选择单元等时长的将接收到的数据流分配到双口缓存单元的缓存模块中。
4.根据权利要求3所述的FIFO存储器,其特征在于,在第一周期内,所述输入数据选择单元将接收到的数据分配到所述第一缓存模块中缓存,在第二周期内,所述输入数据选择单元将接收到的数据分配到所述第二缓存模块中缓存。
5.根据权利要求1所述的FIFO存储器,其特征在于,所述输出数据选择单元等时长的从所述双口缓存单元的缓存模块中读取数据。
6.根据权利要求5所述的FIFO存储器,其特征在于,在第三周期内,所述输出数据选择单元从所述第一缓存模块中读取数据,在第四周期内,所述输出数据选择单元从所述第二缓存模块中读取数据。
7.根据权利要求4或6所述的FIFO存储器,其特征在于,所述第一缓存模块处于写入和/或读出状态与所述第二缓存模块处于读出和/或写入状态同步进行,且同步切换写入和/或读出的状态。
8.根据权利要求1所述的FIFO存储器,其特征在于,还包括输出数据处理单元,所述输出数据处理单元与所述输出数据选择单元连接,所述输出数据处理单元用于对所述输出数据选择单元输出的数据进行处理。
9.根据权利要求1所述的FIFO存储器,其特征在于,所述异步比较单元包括空信号同步电路和满信号同步电路,所述空信号同步电路用于产生空标志位,所述满信号同步电路用于产生满信号标志位。
10.根据权利要求9所述的FIFO存储器,其特征在于,所述空信号同步电路包括两个同步到写时钟域的第一触发器,所述两个同步到写时钟域的第一触发器级联,所述满信号同步电路包括两个同步到写时钟域的第二触发器,包括两个同步到写时钟域的第二触发器级联。
CN201721612844.7U 2017-11-27 2017-11-27 一种fifo存储器 Active CN207718357U (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201721612844.7U CN207718357U (zh) 2017-11-27 2017-11-27 一种fifo存储器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201721612844.7U CN207718357U (zh) 2017-11-27 2017-11-27 一种fifo存储器

Publications (1)

Publication Number Publication Date
CN207718357U true CN207718357U (zh) 2018-08-10

Family

ID=63057438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201721612844.7U Active CN207718357U (zh) 2017-11-27 2017-11-27 一种fifo存储器

Country Status (1)

Country Link
CN (1) CN207718357U (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445753A (zh) * 2018-10-17 2019-03-08 中国运载火箭技术研究院 一种基于交互缓存技术的数据采集和主动同步组帧系统
CN110825344A (zh) * 2019-11-12 2020-02-21 天津飞腾信息技术有限公司 一种异步数据传输方法和结构
CN111699468A (zh) * 2019-06-21 2020-09-22 深圳市大疆创新科技有限公司 先入先出存储器的数据存储方法、设备及存储介质
WO2024017337A1 (zh) * 2022-07-22 2024-01-25 芯海科技(深圳)股份有限公司 一种fifo存储控制电路、方法、芯片及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445753A (zh) * 2018-10-17 2019-03-08 中国运载火箭技术研究院 一种基于交互缓存技术的数据采集和主动同步组帧系统
CN111699468A (zh) * 2019-06-21 2020-09-22 深圳市大疆创新科技有限公司 先入先出存储器的数据存储方法、设备及存储介质
CN110825344A (zh) * 2019-11-12 2020-02-21 天津飞腾信息技术有限公司 一种异步数据传输方法和结构
WO2024017337A1 (zh) * 2022-07-22 2024-01-25 芯海科技(深圳)股份有限公司 一种fifo存储控制电路、方法、芯片及电子设备

Similar Documents

Publication Publication Date Title
CN207718357U (zh) 一种fifo存储器
KR100337052B1 (ko) 동기화된 독출 포인터 및 기록 포인터를 갖는 2 중 포트 fifo
US4785415A (en) Digital data buffer and variable shift register
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
JP4976537B2 (ja) 待ち時間に無感覚なfifoシグナリングプロトコル
US6865241B1 (en) Method and apparatus for sampling digital data at a virtually constant rate, and transferring that data into a non-constant sampling rate device
US20060277329A1 (en) Method for reducing latency
JPH09222988A (ja) コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路
US8898503B2 (en) Low latency data transfer between clock domains operated in various synchronization modes
CN101403962A (zh) 基于fpga的异步双fifo的数据缓存方法
US7461186B2 (en) Data handover unit for transferring data between different clock domains by parallelly reading out data bits from a plurality of storage elements
US20230367361A1 (en) Asynchronous asic
US9880961B2 (en) Asynchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry
US10621122B1 (en) Systems and methods for transferring data with a dual-line first-in-first-out (FIFO) memory array
CN113794849B (zh) 用于图像数据同步的装置、方法及图像采集系统
CN115579036A (zh) 一种基于fpga的ddr连续存储电路及其实现方法
US7248663B2 (en) Apparatus and method for transforming data transmission speed
KR100321981B1 (ko) 클럭지연 보상장치
CN118197385B (zh) 一种快速切换频点和Die的ONFI PHY训练装置及方法
US6744833B1 (en) Data resynchronization between modules sharing a common clock
KR102226284B1 (ko) 시스템온칩 및 이의 구동 방법
CN109144889A (zh) 基于fpga的超声检测数据存储模块及fpga电路
RU95939U1 (ru) Устройство синхронизации для систем параллельной пространственной коммутации
JPH06164641A (ja) Fifoメモリ・パケットスイッチ

Legal Events

Date Code Title Description
GR01 Patent grant
GR01 Patent grant