CN116400882A - 一种深度可拓展的先进先出存储装置 - Google Patents

一种深度可拓展的先进先出存储装置 Download PDF

Info

Publication number
CN116400882A
CN116400882A CN202310415612.6A CN202310415612A CN116400882A CN 116400882 A CN116400882 A CN 116400882A CN 202310415612 A CN202310415612 A CN 202310415612A CN 116400882 A CN116400882 A CN 116400882A
Authority
CN
China
Prior art keywords
write
data
read
internal
port
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
Application number
CN202310415612.6A
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.)
Shanghai Panchip Microelectronics Co ltd
Original Assignee
Shanghai Panchip Microelectronics 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 Shanghai Panchip Microelectronics Co ltd filed Critical Shanghai Panchip Microelectronics Co ltd
Priority to CN202310415612.6A priority Critical patent/CN116400882A/zh
Publication of CN116400882A publication Critical patent/CN116400882A/zh
Pending legal-status Critical Current

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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)

Abstract

本发明提供一种深度可拓展的先进先出存储装置,涉及存储器技术领域,包括:标准先进先出存储器,具有内部写使能端口、内部写数据端口和内部写满信号端口;写深度拓展模块,具有预设的拓展深度的数据存储空间,写深度拓展模块外部写使能信号有效且内部写满信号端口输出的内部写满信号无效时,控制内部写使能端口有效,以使得外部写入电路直接向内部写数据端口写入数据,以及在外部写使能信号有效且内部写满信号有效时,控制内部写使能端口无效,以缓存外部写入电路写入的具有拓展深度的数据,随后在内部写满信号无效时,控制内部写使能端口有效,以将缓存的数据写入标准先进先出存储器。有益效果是可以调整FIFO深度为任意值。

Description

一种深度可拓展的先进先出存储装置
技术领域
本发明涉及存储器技术领域,尤其涉及一种深度可拓展的先进先出存储装置。
背景技术
在FPGA或者ASIC设计中常使用FIFO(FirstInFirstOut,先进先出)存储器作为数据缓冲或者数据跨时钟同步的部件。FIFO存储器可以分为同步FIFO存储器和异步FIFO存储器,同步FIFO存储器的读/写时钟使用同一时钟源,异步FIFO存储器的读/写时钟为不同时钟源。
标准FIFO存储器中使用双口RAM作为存储器件,双口RAM的存储空间由其地址决定。而标准FIFO存储器的深度通过改变双口RAM的地址位宽来调整,这就使得标准FIFO存储器的深度只能为2的整数次幂。若采用标准FIFO存储器暂存数据,且数据量是两个2的整数次幂值的中间数,则标准FIFO存储器的深度必须向上取整,以保证有足够空间存储数据。如:需要使用标准FIFO存储器暂存6个数据,则标准FIFO存储器的深度只能设置为8,这样会有两个数据深度被浪费。且异步FIFO存储器中使用的双口RAM占用面积较大,这样会浪费芯片内部的空间。
为了能够拓展FIFO深度,可以在标准FIFO存储器外部接入多级寄存器充当数据存储原件,但这样的方式通常需要使用状态机来控制寄存器数据的写入与读出,若需要修改深度,需要修改整个状态机,存在一定的不便。
发明内容
针对现有技术中存在的问题,本发明提供一种深度可拓展的先进先出存储装置,包括:
标准先进先出存储器,具有内部写使能端口、内部写数据端口和内部写满信号端口;
写深度拓展模块,具有预设的拓展深度的数据存储空间,所述写深度拓展模块分别连接外部写入电路和所述标准先进先出存储器,用于在所述外部写入电路输出的外部写使能信号有效且所述内部写满信号端口输出的内部写满信号无效时,控制所述内部写使能端口有效,以使得所述外部写入电路直接向所述内部写数据端口写入数据,
以及在所述外部写使能信号有效且所述内部写满信号有效时,控制所述内部写使能端口无效,以缓存所述外部写入电路写入的具有所述拓展深度的数据,随后在所述内部写满信号无效时,控制所述内部写使能端口有效,以将缓存的数据写入所述标准先进先出存储器。
优选的,所述写深度拓展模块包括:
写寄存单元,所述写寄存单元的数据输入端通过外部写数据端口连接所述外部写入电路,所述写寄存单元具有所述拓展深度的数据存储空间;
写选择器,所述写选择器的第一输入端连接所述外部写数据端口,所述写选择器的第二输入端连接所述写寄存单元的数据输出端,所述写选择器的输出端连接所述内部写数据端口;
写拓展控制单元,分别连接所述写寄存单元、所述写选择器的选择控制端、所述内部写使能端口、所述内部写数据端口和所述内部写满信号端口,用于在所述外部写使能信号有效且所述内部写满信号无效时,控制所述写选择器将所述外部写入电路接入所述内部写数据端口直接写入数据,
以及在所述外部写使能信号有效且所述内部写满信号有效时,控制所述写选择器将所述外部写入电路接入所述写寄存单元,以向所述写寄存单元写入所述拓展深度的数据进行缓存,随后在所述内部写满信号无效时,控制所述写寄存单元向所述内部写数据端口写入缓存的数据。
优选的,所述写寄存单元包括多个依次级联的写寄存器,其中,级联的第一个所述写寄存器的数据输入端作为所述写寄存单元的数据输入端接入所述外部写入电路的所述外部写使能信号,级联的最后一个所述写寄存器的数据输出端作为所述写寄存单元的数据输出端连接所述写选择器的第二输入端;
各所述写寄存器的时钟端连接所述外部写入电路的时钟信号;
所述写拓展控制单元还连接各所述写寄存器的使能端,用于在所述外部写使能信号有效且所述内部写满信号有效时,控制各所述使能端有效,以向所述写寄存单元写入所述拓展深度的数据进行缓存。
优选的,所述写深度拓展模块还包括:
循环移位寄存器,包括依次级联的多个移位寄存器,其中,最低位的所述移位寄存器的数据输入端连接最高位的所述移位寄存器的同相输出端;
各所述移位寄存器的时钟端连接所述外部写入电路的时钟信号;
所述写拓展控制单元还连接各所述移位寄存器的同相输出端和使能端,用于在所述外部写使能信号有效且所述内部写满信号有效时,控制各所述使能端有效,以在向所述写寄存单元写入所述拓展深度的数据的同时,控制各所述移位寄存器进行循环移位,指示各所述写寄存器的缓存状态。
优选的,所述写拓展控制单元还通过外部写满信号端口连接所述外部写入电路,所述写拓展控制单元还用于在所述缓存状态表示各所述写寄存器均缓存有数据且所述内部写满信号有效时,生成有效的外部写满信号作为所述先进先出存储装置的写满信号并发送至所述外部写满信号端口。
本发明还提供一种深度可拓展的先进先出存储装置,包括:
标准先进先出存储器,具有内部读使能端口、内部读数据端口和内部空信号端口;
读深度拓展模块,具有预设的拓展深度的数据存储空间,所述读深度拓展模块分别连接外部读出电路和所述标准先进先出存储器,用于在检测到所述内部空信号端口输出的内部空信号由有效跳变到无效时,控制所述内部读使能端口有效,以由所述内部读使能端口读出所述标准先进先出存储器中的数据进行缓存,直至所述数据存储空间存满时,控制所述内部读使能端口无效,
随后在所述外部读出电路输出的外部读使能信号有效时,控制将所述数据存储空间缓存的数据全部读出后,控制所述内部读使能端口有效,以由所述内部读数据端口读出所述标准先进先出存储器中的数据。
优选的,所述读深度拓展模块包括:
读寄存单元,所述读寄存单元的数据输入端连接所述内部读数据端口,所述读寄存单元具有所述拓展深度的数据存储空间;
读选择器,所述读选择器的第一输入端连接所述内部读数据端口,所述读选择器的第二输入端连接所述读寄存单元的数据输出端,所述读选择器的输出端连接所述外部读出电路;
读拓展控制单元,分别连接所述读寄存单元、所述读选择器的选择控制端、所述内部读使能端口、所述内部读数据端口和所述内部空信号端口,用于在检测到所述内部空信号由有效跳变到无效时,控制所述内部读使能端口有效,以由所述内部读使能端口读出所述标准先进先出存储器中的数据进行缓存,直至所述数据存储空间存满时,控制所述内部读使能端口无效,
随后在所述外部读使能信号有效时,控制所述读选择器将所述数据输出端接入所述外部读出电路,以将所述数据存储空间缓存的数据全部读出后,控制所述内部读使能端口有效,同时控制所述读选择器将所述内部读数据端口接入所述外部读出电路,以读出所述标准先进先出存储器中的数据。
优选的,所述读寄存单元包括多个依次级联的读寄存器,其中,级联的第一个所述读寄存器的数据输入端作为所述读寄存单元的数据输入端接入所述内部读数据端口,级联的最后一个所述读寄存器的数据输出端作为所述读寄存单元的数据输出端连接所述读选择器的第二输入端;
各所述读寄存器的时钟端连接所述外部读出电路的时钟信号;
所述读拓展控制单元还连接各所述读寄存器的使能端,用于在内部空信号由有效跳变到无效时,控制各所述使能端有效,以由所述内部读使能端口读出所述标准先进先出存储器中的数据并缓存至各所述读寄存器中,直至各所述读寄存器存满。
优选的,所述读深度拓展模块还包括:
循环移位寄存器,包括依次级联的多个移位寄存器,其中,最低位的所述移位寄存器的数据输入端连接最高位的所述移位寄存器的同相输出端;
各所述移位寄存器的时钟端连接所述外部读出电路的时钟信号;
所述读拓展控制单元还连接各所述移位寄存器的同相输出端和使能端,用于在所述内部空信号由有效跳变到无效时,控制各所述使能端有效,以在由所述内部读使能端口读出所述标准先进先出存储器中的数据并缓存至各所述读寄存器中的同时,控制各所述移位寄存器进行循环移位,指示各所述读寄存器的缓存状态。
优选的,所述读拓展控制单元还通过外部空信号端口连接所述外部读出电路,所述读拓展控制单元还用于在所述缓存状态表示各所述读寄存器均未缓存有数据且所述内部空信号有效时,生成有效的外部空信号作为所述先进先出存储装置的空信号并发送至所述外部空信号端口。
上述技术方案具有如下优点或有益效果:
1)本发明的深度可拓展的先进先出存储装置,通过在标准先进先出存储器的基础上添加外部电路实现对标准先进先出存储器深度的扩展,使得先进先出存储设备的深度摆脱只能设置为2的整数次幂的限制;
2)外部电路可以是设置在写时钟域的写深度拓展模块,也可以是设置在读时钟域的读深度拓展模块,其结构具有很高的灵活性,可以调整FIFO深度为任意值,且调整拓展深度时极为简便。
附图说明
图1为本发明的实施例1中,一种深度可拓展的先进先出存储装置的结构示意图;
图2为本发明的实施例1中,设置三个写寄存器对应的读写过程的读写时序图;
图3为本发明的实施例2中,一种深度可拓展的先进先出存储装置的结构示意图;
图4为本发明的实施例3中,将本发明的先进先出存储装置应用于包含双通道24bitADC电路的整体组成结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本发明并不限定于该实施方式,只要符合本发明的主旨,则其他实施方式也可以属于本发明的范畴。
实施例1
本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种深度可拓展的先进先出存储装置,如图1所示,包括:
标准先进先出存储器1,具有内部写使能端口wen、内部写数据端口wdata和内部写满信号端口full;
写深度拓展模块,具有预设的拓展深度的数据存储空间,写深度拓展模块分别连接外部写入电路2和标准先进先出存储器1,用于在外部写入电路2输出的外部写使能信号有效且内部写满信号端口full输出的内部写满信号无效时,控制内部写使能端口wen有效,以使得外部写入电路2直接向内部写数据端口wdata写入数据,
以及在外部写使能信号ewen有效且内部写满信号有效时,控制内部写使能端口wen无效,以缓存外部写入电路2写入的具有拓展深度的数据,随后在内部写满信号无效时,控制内部写使能端口wen有效,以将缓存的数据写入标准先进先出存储器1。
具体地,本实施例中,通过在标准先进先出存储器1的写时钟域配置写深度拓展模块,使得本发明的先进先出存储装置的深度为标准先进先出存储器1的深度与拓展深度之和。在外部写入电路2向本发明的先进先出存储装置写入数据时,首先基于内部写满信号端口full输出的内部写满信号确认标准先进先出存储器1中的存储状态,若存储状态表示尚未存满,则控制外部写入电路2直接向标准先进先出存储器1写入数据,在标准先进先出存储器1存满后,则控制缓存外部写入电路2写入的具有拓展深度的数据,随后在标准先进先出存储器1有数据读出时,按照写入顺序将缓存数据依次写入标准先进先出存储器1,实现将本发明的先进先出存储装置的深度拓展至标准先进先出存储器1的深度与拓展深度之和。
本发明的较佳的实施例中,写深度拓展模块包括:
写寄存单元3,写寄存单元3的数据输入端通过外部写数据端口WDATA连接外部写入电路2,写寄存单元3具有拓展深度的数据存储空间;
写选择器4,写选择器4的第一输入端连接外部写数据端口WDATA,写选择器4的第二输入端连接写寄存单元3的数据输出端,写选择器4的输出端连接内部写数据端口wdata;
写拓展控制单元5,分别连接写寄存单元3、写选择器4的选择控制端、内部写使能端口wen、内部写数据端口wdata和内部写满信号端口full,用于在外部写使能信号有效且内部写满信号无效时,控制写选择器4将外部写入电路2接入内部写数据端口WDATA直接写入数据,
以及在外部写使能信号有效且内部写满信号有效时,控制写选择器4将外部写入电路2接入写寄存单元3,以向写寄存单元3写入拓展深度的数据进行缓存,随后在内部写满信号无效时,控制写寄存单元3向内部写数据端口wdata写入缓存的数据。
具体地,本实施例中,将本发明的先进先出存储装置的各端口分别定义为外部端口,以区分标准先进先出存储器1的各内部端口。如图1所示,可以看出,本发明的先进先出存储装置的外部写时钟端口WCLK、外部读时钟端口RCLK、外部读使能端口REN、外部读数据端口RDATA、外部空信号端口EMPTY和外部复位端口RSTN分别为标准先进先出存储器1的内部写时钟端口wclk、内部读时钟端口rclk、内部读使能端口ren、内部读数据端口rdata、内部空信号端口empty和内部复位端口rstn。
本发明的先进先出存储装置的外部写数据端口WDATA一路连接写选择器4的第一输入端,另一路通过写寄存单元3连接写选择器4的第二输入端,实现外部写入电路2写入数据的不同暂存路径。
本发明的先进先出存储装置的外部写使能端口WEN连接写拓展控制单元5,写拓展控制单元5在通过外部写使能端口WEN接收到有效的外部写使能信号(高电平有效),同时在内部写满信号无效(高电平有效)时,控制内部写使能端口wen有效,写寄存单元3无效,以及向写选择器4的选择控制端发送相应的控制信号,以选择连通第一输入端与内部写数据端口wdata,实现外部写入电路2通过外部写数据端口WDATA和写选择器4的第一输入端向内部写数据端口wdata直接写入数据,直至标准先进先出存储器1写满,以标准先进先出存储器1的深度为4,拓展深度为3为例,则本发明的先进先出存储装置可以完成7个数据的有效暂存,即标准先进先出存储器1写入了4个数据。此时,内部写满信号有效,由于仍有3个数据未写入,外部写使能信号仍有效,写拓展控制单元5随后控制内部写使能端口wen无效,写寄存单元3有效,以及向写选择器4的选择控制端发送相应的控制信号,以关闭写选择器4,实现向写寄存单元3写入3个数据,以写满写寄存单元3的存储空间。进一步地,在标准先进先出存储器1有数据读出时,内部写满信号无效,写拓展控制单元5控制内部写使能端口wen有效,以及向写选择器4的选择控制端发送相应的控制信号,以选择连通第二输入端与内部写数据端口wdata,使得写寄存单元3中的3个数据依次写入内部写数据端口wdata。
优选的,写寄存单元3还通过外部写时钟端口WCLK接入外部时钟信号,以基于外部时钟信号进行数据写入和读出。
本发明的较佳的实施例中,写寄存单元3包括多个依次级联的写寄存器31,其中,级联的第一个写寄存器31的数据输入端D作为写寄存单元3的数据输入端接入外部写入电路2的外部写使能信号,级联的最后一个写寄存器31的数据输出端Q作为写寄存单元3的数据输出端连接写选择器4的第二输入端;
各写寄存器31的时钟端连接外部写入电路2的时钟信号;
写拓展控制单元5还连接各写寄存器31的使能端EN,用于在外部写使能信号有效且内部写满信号有效时,控制各使能端EN有效,以向写寄存单元3写入拓展深度的数据进行缓存。
具体地,本实施例中,上述一个写寄存器31优选提供一个数据的缓存,若拓展深度为3,则对应设置三个写寄存器31即可,以此类推,实现深度范围的灵活设置,使得本发明的先进先出存储装置的深度摆脱只能设置为2的整数次幂的限制。
仍以标准先进先出存储器1的深度为4,拓展深度为3为例,设置三个写寄存器31对应的读写过程的读写时序图如图2所示,其中,内部FIFO即为标准先进先出存储器1,可以看出,本发明的先进先出存储装置可以完成7个数据的有效暂存,空满信号输出正常。循环移位寄存器的输出信号能够表明当前写寄存器状态,且写拓展控制单元5能够根据内部写满信号以及循环移位寄存器输出信号状态,产生寄存器使能信号完成数据暂存,在标准先进先出存储器1中有空间写入寄存器中数据时,能够产生响应信号将写寄存器数据写入标准先进先出存储器1中。写寄存器中数据全部写入标准先进先出存储器1中后,移位寄存器能够回到初始状态,证明本发明中使用循环移位寄存器指示电路状态的设计的有效性。外部电路写入数据和读取数据一致,证明本发明使用寄存器暂存数据,再将其写入标准先进先出存储器的方法可以保证数据完整。
本发明中的先进先出存储装置可应用于FPGA或者ASIC设计中需要FIFO缓存一定数量的数据时,并且数据数量不是2的整数次幂,同时读操作在写操作完成后进行即FIFO被写满后进行读操作。
本发明的较佳的实施例中,写深度拓展模块还包括:
循环移位寄存器6,包括依次级联的多个移位寄存器61,其中,最低位的移位寄存器61的数据输入端D连接最高位的移位寄存器61的同相输出端Q;
各移位寄存器61的时钟端连接外部写入电路2的时钟信号;
写拓展控制单元5还连接各移位寄存器61的同相输出端Q和使能端EN,用于在外部写使能信号有效且内部写满信号有效时,控制各使能端EN有效,以在向写寄存单元3写入拓展深度的数据的同时,控制各移位寄存器61进行循环移位,指示各写寄存器31的缓存状态。
具体地,本实施例中,在本发明的先进先出存储装置的拓展深度为K时,对应需要设置K个写寄存器,进一步需要对应设置2K个移位寄存器61实现2K位循环移位寄存器6,以指示各写寄存器31的缓存状态,写拓展控制单元5通过读取各移位寄存器61的同相输出端Q的数据,即可获取当前各寄存器31的缓存状态。
优选的,定义循环移位寄存器6的初始值为{1,(2k-1)0}(即初始状态下,循环移位寄存器6的最高位为1,其余位均为0)。这个循环移位寄存器6的输出中只有一位为1,写拓展控制单元5可以根据这个1所在为判断寄存器状态。
进一步具体地,初始状态下,定义第2K位的移位寄存器61输出为1,其他移位寄存器61输出均为0
初始状态下,定义第2K位移位寄存器61输出为1,其他移位寄存器61输出均为0。则在级联的第一个写寄存器31(如图1所示的1号写寄存器,以下统称为1号寄存器)有数据写入时,循环移位寄存器6进行从左往右的循环移位,即第1位移位寄存器61输出为1,其他移位寄存器61输出均为0,以指示1号写寄存器中有数据缓存。第一个写寄存器31再次有数据写入时,先将上次写入的数据缓存至2号写寄存器,再写入数据,此时,循环移位寄存器6执行一次循环移位,即第2位移位寄存器61输出为1,其他移位寄存器61输出均为0,以指示1号写寄存器和2号移位寄存器61中均有数据缓存,直至K号移位寄存器61也有数据缓存,此时,第K位移位寄存器61输出为1,其他移位寄存器61输出均为0,用于表征写寄存单元3被存满。
在需要向标准先进先出存储器1写入数据时,首先将K号写寄存器中的数据通过写选择器4写入内部写数据端口wdata,剩余的各写寄存器均向下一个写寄存器写入数据,同时,循环移位寄存器6执行一次循环移位,即第K+1位移位寄存器61输出为1其他移位寄存器61输出均为0,以指示1号寄存器为空,依次类推,直至第2K位移位寄存器61输出为1,其他移位寄存器61输出均为0,即回归初始状态,以指示K号写寄存器为空,即所有写寄存器均为空,全部缓存数据均已写入先进先出存储器1中。
本发明的较佳的实施例中,循环移位寄存器6的复位端连接标准先进先出存储器1的内部复位端rstn,用于在接收到标准先进先出存储器1输出的复位信号时同步复位,实现将循环移位寄存器6配置为初始状态,可以看出,本实施例中,循环移位寄存器6为低电平复位使能。
可以看出,由于将写寄存器中数据写入标准先进先出存储器1的同时,移位寄存器也在同步循环移位。通过循环移位寄存器中输出为1所在的位置判断电路状态,使得写拓展控制单元5的结构极为简单,仅需要少数门电路即可实现。且通过循环移位寄存器的方式,在调整扩展深度时极为简便,可有效减少电路修改工作量和电路复杂度。
优选的,写拓展控制单元5对应的门电路可以包含一个与门,该与门的两个输入分别连接外部写使能端口和内部写满信号端口,该与门的输出取非后连接内部写使能端口,该与门的输出连接各写寄存器和各移位寄存器的使能端,实现外部写使能信号有效(高电平)且内部写满信号无效(低电平)时,与门输出取非后为高电平,即拉高内部写使能端口,使得内部写使能端口使能,随后在内部写满信号有效(高电平)时,与门输出为高电平,拉高各使能端,使得写寄存单元3和循环移位寄存器6有效。
同样地,写拓展控制单元5可以通过门电路获取各移位寄存器的同相输出端的输出,实现各写寄存器的状态获取,此处不再赘述。
本发明的较佳的实施例中,写拓展控制单元5还通过外部写满信号端口FULL连接外部写入电路2,写拓展控制单元5还用于在缓存状态表示各写寄存器31均缓存有数据且内部写满信号有效时,生成有效的外部写满信号作为先进先出存储装置的写满信号并发送至外部写满信号端口FULL。
具体地,本实施例中,写拓展控制单元5优选可以采用一个与门实现上述先进先出存储装置的写满信号的指示,只有在写满信号有效且第K位移位寄存器为1时,外部写满信号端口FULL对应的写满信号有效。
实施例2
本发明还提供一种深度可拓展的先进先出存储装置,如图3所示,包括:
标准先进先出存储器1,具有内部读使能端口ren、内部读数据端口rdata和内部空信号端口empty;
读深度拓展模块,具有预设的拓展深度的数据存储空间,读深度拓展模块分别连接外部读出电路7和标准先进先出存储器1,用于在检测到内部空信号端口empty输出的内部空信号由有效跳变到无效时,控制内部读使能端口ren有效,以由内部读数据端口rdata读出标准先进先出存储器1中的数据进行缓存,直至数据存储空间存满时,控制内部读使能端口ren无效,
随后在外部读出电路7输出的外部读使能信号有效时,控制将数据存储空间缓存的数据全部读出后,控制内部读使能端口ren有效,以由内部读数据端口rdata读出标准先进先出存储器1中的数据。
具体地,本实施例中,通过在标准先进先出存储器1的读时钟域配置读深度拓展模块,使得本发明的先进先出存储装置的深度为标准先进先出存储器1的深度与拓展深度之和。首先基于内部空信号端口empty输出的内部空信号确认标准先进先出存储器1中的是否有数据写入,若内部空信号由有效跳变到无效表示有数据写入,则控制先将写入的数据读出进行缓存,直至缓存达到拓展深度,随后在外部读出电路7需要读出数据时,先将缓存的具有拓展深度的数据读出,随后再读出标准先进先出存储器1中的数据,实现将本发明的先进先出存储装置的深度拓展至标准先进先出存储器1的深度与拓展深度之和。
本发明的较佳的实施例中,读深度拓展模块包括:
读寄存单元8,读寄存单元8的数据输入端连接内部读数据端口rdata,读寄存单元8具有拓展深度的数据存储空间;
读选择器9,读选择器9的第一输入端连接内部读数据端口rdata,读选择器9的第二输入端连接读寄存单元8的数据输出端,读选择器9的输出端连接外部读出电路7;
读拓展控制单元10,分别连接读寄存单元8、读选择器9的选择控制端、内部读使能端口ren、内部读数据端口rdata和内部空信号端口empty,用于在检测到内部空信号由有效跳变到无效时,控制内部读使能端口ren有效,以由内部读使能端口ren读出标准先进先出存储器1中的数据进行缓存,直至数据存储空间存满时,控制内部读使能端口ren无效,
随后在外部读使能信号有效时,控制读选择器9将数据输出端接入外部读出电路7,以将数据存储空间缓存的数据全部读出后,控制内部读使能端口ren有效,同时控制读选择器9将内部读数据端口rdata接入外部读出电路7,以读出标准先进先出存储器1中的数据。
具体地,本实施例中,将本发明的先进先出存储装置的各端口分别定义为外部端口,以区分标准先进先出存储器1的各内部端口。如图3所示,可以看出,本发明的先进先出存储装置的外部写时钟端口WCLK、外部读时钟端口RCLK、外部写使能端口WEN、外部写数据端口WDATA、外部写满信号端口FULL和外部复位端口RSTN分别为标准先进先出存储器1的内部写时钟端口wclk、内部读时钟端口rclk、内部写使能端口wen、内部写数据端口wdata、内部写满端口full和内部复位端口rstn。
本发明的先进先出存储装置的内部读数据端口rdata一路连接读选择器9的第一输入端,另一路通过读寄存单元8连接读选择器9的第二输入端,实现外部读出电路7读出数据的不同暂存路径。
本发明的先进先出存储装置在检测到内部空信号由有效跳变至有效时(即由高电平跳变至低电平),说明标准先进先出存储器1有数据写入,此时,读拓展控制单元10控制内部读使能端口ren有效,以及读寄存单元8有效,以将写入标准先进先出存储器1中的数据读出缓存,直至读寄存单元8被存满,随后,控制内部读使能端口ren无效。在外部读出电路7通过外部读使能端口REN发送有效的外部读使能信号时,读拓展控制单元10向读选择器9的选择控制端发送相应的控制信号,以选择连通第二输入端与外部读数据端口RDATA,实现外部读出电路7通过外部读数据端口RDATA和读选择器9的第二输入端从读寄存单元8中读出数据,直至读寄存单元8中的数据读完,以标准先进先出存储器1的深度为4,拓展深度为3为例,则本发明的先进先出存储装置可以完成7个数据的有效暂存,即外部读出电路7先由读寄存单元8中读出了3个数据。此时,由于仍有3个数据未读入,外部读使能信号仍有效,读拓展控制单元10随后控制内部读使能端口ren有效,读寄存单元8无效,以及向读选择器9的选择控制端发送相应的控制信号,以关闭读选择器9,实现由标准先进先出存储器1中读出4个数据。
优选的,读寄存单元8还通过外部读时钟端口RCLK接入外部时钟信号,以基于外部时钟信号进行数据写入和读出。
本发明的较佳的实施例中,读寄存单元8包括多个依次级联的读寄存器81,其中,级联的第一个读寄存器81的数据输入端D作为读寄存单元8的数据输入端接入内部读数据端口rdata,级联的最后一个读寄存器81的数据输出端Q作为读寄存单元8的数据输出端连接读选择器9的第二输入端;
各读寄存器81的时钟端连接外部读出电路7的时钟信号;
读拓展控制单元10还连接各读寄存器81的使能端EN,用于在内部空信号由有效跳变到无效时,控制各使能端EN有效,以由内部读数据端口rdata读出标准先进先出存储器1中的数据并缓存至各读寄存器81中,直至各读寄存器81存满。
具体地,本实施例中,上述一个读寄存器81优选提供一个数据的缓存,若拓展深度为3,则对应设置三个读寄存器81即可,以此类推,实现深度范围的灵活设置,使得本发明的先进先出存储装置的深度摆脱只能设置为2的整数次幂的限制。
本发明的较佳的实施例中,读深度拓展模块还包括:
循环移位寄存器11,包括依次级联的多个移位寄存器111,其中,最低位的移位寄存器111的数据输入端D连接最高位的移位寄存器111的同相输出端Q;
各移位寄存器111的时钟端连接外部读出电路7的时钟信号;
读拓展控制单元10还连接各移位寄存器111的同相输出端Q和使能端EN,用于在内部空信号由有效跳变到无效时,控制各使能端EN有效,以在由内部读数据端口rdata读出标准先进先出存储器1中的数据并缓存至各读寄存器81中的同时,控制各移位寄存器111进行循环移位,指示各读寄存器81的缓存状态。
具体地,本实施例中,在本发明的先进先出存储装置的拓展深度为K时,对应需要设置K个读寄存器,进一步需要对应设置2K个移位寄存器实现2K位循环移位寄存器,以指示各写读存器的缓存状态,读拓展控制单元10通过读取各移位寄存器的同相输出端Q的数据,即可获取当前各读寄存器的缓存状态。
循环移位寄存器11的工作原理同实施例1,此处不再赘述,同样地,读拓展控制单元10可以采用相应的门电路实现数据写入写出控制,具体可以根据各信号的控制逻辑设计,但并不以此进行限定。
本发明的较佳的实施例中,读拓展控制单元10还通过外部空信号端口EMPTY连接外部读出电路7,读拓展控制单元10还用于在缓存状态表示各读寄存器81均未缓存有数据且内部空信号有效时,生成有效的外部空信号作为先进先出存储装置的空信号并发送至外部空信号端口EMPTY。
具体地,本实施例中,读拓展控制单元10优选可以采用一个与门实现上述先进先出存储装置的空信号的指示,只有在内部空信号有效且第2K位移位寄存器为1时,外部空信号端口EMPTY对应的写满信号有效。
综上,本发明中的先进先出存储装置的深度可以微调,且可调整深度范围可以灵活设置,使FIFO深度摆脱只能设置为2的整数次幂的限制。本发明中的先进先出存储装置可应用于FPGA或者ASIC设计中需要FIFO缓存一定数量的数据时,并且数据数量不是2的整数次幂,同时读操作在写操作完成后进行即FIFO被写满后进行读操作。应用时可以根据需求在写时钟域配置写深度拓展模块,或者在读时钟域配置读深度拓展模块。
可以理解的是,当拓展深度为1时,拓展后的先进先出存储装置的使用与标准先进先出存储器无任何差异,读写顺序无先后要求,可直接替换标准先进先出存储器使用。同时拓展深度为1时,由于循环移位寄存器仅有两位,循环移位寄存器输出只有两种状态,而两种状态使用1bit即可表示,因此可以使用一个反相器和1bit寄存器代替节约电路中寄存器使用。
可以应用本发明中的电路通过使用寄存器和循环移位寄存器构建出指定深度的FIFO,避免使用多余的RAM资源。
本发明中的标准先进先出存储器可以是同步先进先出存储器,也可以是异步先进先出存储器,此处不作限定。
实施例3
可以将本发明的先进先出存储装置应用于包含双通道24bitADC电路,通过SPI(SerialPeripheralInterface,串行外设接口)接口模块与外部电路进行数据交互,SPI接口模块的时钟为外部电路提供,与电路内部时钟为异步关系。每次采样完成后,ADC需要将两个通道的数据共6字节数据传输给外部电路,同时为了保证数据传输的可靠,添加了一个字节的校验数据,每次共计7个字节数据需要传输。
基于此,需要采用深度为7的FIFO模块、寄存器模块、内部数据处理模块。整体组成结构如图4所示。
具体数据读写步骤如下:
1)外部电路通过SPI接口模块写内部寄存器,以实现对芯片的配置;
2)SPI接口模块接收外部电路发送的报文,并将相应数据写入寄存器并同步给数据处理模块;
3)外部电路发送开始采样指令,芯片开始完成电压信号采样;
4)采样得到两个通道的数据,通过数据处理模块计算得到校验值;
5)数据处理模块将采样数据及校验值写入FIFO中;
6)外部电路发送一个字节的读指令,以开始数据读取;
7)SPI接口模块将FIFO中数据依次读取出来,并依次发送给外部电路。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (10)

1.一种深度可拓展的先进先出存储装置,其特征在于,包括:
标准先进先出存储器,具有内部写使能端口、内部写数据端口和内部写满信号端口;
写深度拓展模块,具有预设的拓展深度的数据存储空间,所述写深度拓展模块分别连接外部写入电路和所述标准先进先出存储器,用于在所述外部写入电路输出的外部写使能信号有效且所述内部写满信号端口输出的内部写满信号无效时,控制所述内部写使能端口有效,以使得所述外部写入电路直接向所述内部写数据端口写入数据,
以及在所述外部写使能信号有效且所述内部写满信号有效时,控制所述内部写使能端口无效,以缓存所述外部写入电路写入的具有所述拓展深度的数据,随后在所述内部写满信号无效时,控制所述内部写使能端口有效,以将缓存的数据写入所述标准先进先出存储器。
2.根据权利要求1所述的先进先出存储装置,其特征在于,所述写深度拓展模块包括:
写寄存单元,所述写寄存单元的数据输入端连接所述外部写入电路,所述写寄存单元具有所述拓展深度的数据存储空间;
写选择器,所述写选择器的第一输入端通过外部写数据端口连接所述外部写入电路,所述写选择器的第二输入端连接所述写寄存单元的数据输出端,所述写选择器的输出端连接所述内部写数据端口;
写拓展控制单元,分别连接所述写寄存单元、所述写选择器的选择控制端、所述内部写使能端口、所述内部写数据端口和所述内部写满信号端口,用于在所述外部写使能信号有效且所述内部写满信号无效时,控制所述写选择器将所述外部写入电路接入所述内部写数据端口直接写入数据,
以及在所述外部写使能信号有效且所述内部写满信号有效时,控制所述写选择器将所述外部写入电路接入所述写寄存单元,以向所述写寄存单元写入所述拓展深度的数据进行缓存,随后在所述内部写满信号无效时,控制所述写寄存单元向所述内部写数据端口写入缓存的数据。
3.根据权利要求2所述的先进先出存储装置,其特征在于,所述写寄存单元包括多个依次级联的写寄存器,其中,级联的第一个所述写寄存器的数据输入端作为所述写寄存单元的数据输入端接入所述外部写入电路的所述外部写使能信号,级联的最后一个所述写寄存器的数据输出端作为所述写寄存单元的数据输出端连接所述写选择器的第二输入端;
各所述写寄存器的时钟端连接所述外部写入电路的时钟信号;
所述写拓展控制单元还连接各所述写寄存器的使能端,用于在所述外部写使能信号有效且所述内部写满信号有效时,控制各所述使能端有效,以向所述写寄存单元写入所述拓展深度的数据进行缓存。
4.根据权利要求3所述的先进先出存储装置,其特征在于,所述写深度拓展模块还包括:
循环移位寄存器,包括依次级联的多个移位寄存器,其中,最低位的所述移位寄存器的数据输入端连接最高位的所述移位寄存器的同相输出端;
各所述移位寄存器的时钟端连接所述外部写入电路的时钟信号;
所述写拓展控制单元还连接各所述移位寄存器的同相输出端和使能端,用于在所述外部写使能信号有效且所述内部写满信号有效时,控制各所述使能端有效,以在向所述写寄存单元写入所述拓展深度的数据的同时,控制各所述移位寄存器进行循环移位,指示各所述写寄存器的缓存状态。
5.根据权利要求4所述的先进先出存储装置,其特征在于,所述写拓展控制单元还通过外部写满信号端口连接所述外部写入电路,所述写拓展控制单元还用于在所述缓存状态表示各所述写寄存器均缓存有数据且所述内部写满信号有效时,生成有效的外部写满信号作为所述先进先出存储装置的写满信号并发送至所述外部写满信号端口。
6.一种深度可拓展的先进先出存储装置,其特征在于,包括:
标准先进先出存储器,具有内部读使能端口、内部读数据端口和内部空信号端口;
读深度拓展模块,具有预设的拓展深度的数据存储空间,所述读深度拓展模块分别连接外部读出电路和所述标准先进先出存储器,用于在检测到所述内部空信号端口输出的内部空信号由有效跳变到无效时,控制所述内部读使能端口有效,以由所述内部读使能端口读出所述标准先进先出存储器中的数据进行缓存,直至所述数据存储空间存满时,控制所述内部读使能端口无效,
随后在所述外部读出电路输出的外部读使能信号有效时,控制将所述数据存储空间缓存的数据全部读出后,控制所述内部读使能端口有效,以由所述内部读数据端口读出所述标准先进先出存储器中的数据。
7.根据权利要求6所述的先进先出存储装置,其特征在于,所述读深度拓展模块包括:
读寄存单元,所述读寄存单元的数据输入端连接所述内部读数据端口,所述读寄存单元具有所述拓展深度的数据存储空间;
读选择器,所述读选择器的第一输入端连接所述内部读数据端口,所述读选择器的第二输入端连接所述读寄存单元的数据输出端,所述读选择器的输出端连接所述外部读出电路;
读拓展控制单元,分别连接所述读寄存单元、所述读选择器的选择控制端、所述内部读使能端口、所述内部读数据端口和所述内部空信号端口,用于在检测到所述内部空信号由有效跳变到无效时,控制所述内部读使能端口有效,以由所述内部读使能端口读出所述标准先进先出存储器中的数据进行缓存,直至所述数据存储空间存满时,控制所述内部读使能端口无效,
随后在所述外部读使能信号有效时,控制所述读选择器将所述数据输出端接入所述外部读出电路,以将所述数据存储空间缓存的数据全部读出后,控制所述内部读使能端口有效,同时控制所述读选择器将所述内部读数据端口接入所述外部读出电路,以读出所述标准先进先出存储器中的数据。
8.根据权利要求7所述的先进先出存储装置,其特征在于,所述读寄存单元包括多个依次级联的读寄存器,其中,级联的第一个所述读寄存器的数据输入端作为所述读寄存单元的数据输入端接入所述内部读数据端口,级联的最后一个所述读寄存器的数据输出端作为所述读寄存单元的数据输出端连接所述读选择器的第二输入端;
各所述读寄存器的时钟端连接所述外部读出电路的时钟信号;
所述读拓展控制单元还连接各所述读寄存器的使能端,用于在内部空信号由有效跳变到无效时,控制各所述使能端有效,以由所述内部读使能端口读出所述标准先进先出存储器中的数据并缓存至各所述读寄存器中,直至各所述读寄存器存满。
9.根据权利要求8所述的先进先出存储装置,其特征在于,所述读深度拓展模块还包括:
循环移位寄存器,包括依次级联的多个移位寄存器,其中,最低位的所述移位寄存器的数据输入端连接最高位的所述移位寄存器的同相输出端;
各所述移位寄存器的时钟端连接所述外部读出电路的时钟信号;
所述读拓展控制单元还连接各所述移位寄存器的同相输出端和使能端,用于在所述内部空信号由有效跳变到无效时,控制各所述使能端有效,以在由所述内部读使能端口读出所述标准先进先出存储器中的数据并缓存至各所述读寄存器中的同时,控制各所述移位寄存器进行循环移位,指示各所述读寄存器的缓存状态。
10.根据权利要求9所述的先进先出存储装置,其特征在于,所述读拓展控制单元还通过外部空信号端口连接所述外部读出电路,所述读拓展控制单元还用于在所述缓存状态表示各所述读寄存器均未缓存有数据且所述内部空信号有效时,生成有效的外部空信号作为所述先进先出存储装置的空信号并发送至所述外部空信号端口。
CN202310415612.6A 2023-04-18 2023-04-18 一种深度可拓展的先进先出存储装置 Pending CN116400882A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310415612.6A CN116400882A (zh) 2023-04-18 2023-04-18 一种深度可拓展的先进先出存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310415612.6A CN116400882A (zh) 2023-04-18 2023-04-18 一种深度可拓展的先进先出存储装置

Publications (1)

Publication Number Publication Date
CN116400882A true CN116400882A (zh) 2023-07-07

Family

ID=87010303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310415612.6A Pending CN116400882A (zh) 2023-04-18 2023-04-18 一种深度可拓展的先进先出存储装置

Country Status (1)

Country Link
CN (1) CN116400882A (zh)

Similar Documents

Publication Publication Date Title
US6778454B2 (en) FIFO memory devices that support all combinations of DDR and SDR read and write modes
US5596540A (en) Serial to parallel and parallel to serial architecture for a RAM based FIFO memory
KR100694440B1 (ko) 반도체기억장치
US20020154548A1 (en) Fully synchronous pipelined RAM
US9641464B2 (en) FIFO buffer system providing same clock cycle response to pop commands
US7099231B2 (en) Interleaving memory blocks to relieve timing bottleneck in a multi-queue first-in first-out memory system
WO2003079662A9 (en) System and method for translation of sdram and ddr signals
US6880056B2 (en) Memory array and method with simultaneous read/write capability
US7870310B2 (en) Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system
US6507899B1 (en) Interface for a memory unit
US7523232B2 (en) Mark/re-read and mark/re-write operations in a multi-queue first-in first-out memory system
CN101825997A (zh) 一种异步先入先出存储器
JP2004062630A (ja) Fifoメモリ及び半導体装置
US7392354B1 (en) Multi-queue FIFO memory devices that support a backed-off standard mode of operation and methods of operating same
US8806118B2 (en) Adaptive FIFO
CN116400882A (zh) 一种深度可拓展的先进先出存储装置
US5732011A (en) Digital system having high speed buffering
KR20050119688A (ko) 가상 이중-포트 동기 램 아키텍처
JP3765452B2 (ja) 半導体記憶装置
EP1585024B1 (en) An improved on-chip storage memory for storing variable data bits
US11562775B2 (en) Semiconductor device
US20140250252A1 (en) First-in First-Out (FIFO) Modular Memory Structure
JP3305975B2 (ja) アドレスカウンタ回路及び半導体メモリ装置
US6421280B1 (en) Method and circuit for loading data and reading data
CN113312282A (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