CN116594932A - 一种首字直通的先进先出存储设备及方法 - Google Patents

一种首字直通的先进先出存储设备及方法 Download PDF

Info

Publication number
CN116594932A
CN116594932A CN202310670314.1A CN202310670314A CN116594932A CN 116594932 A CN116594932 A CN 116594932A CN 202310670314 A CN202310670314 A CN 202310670314A CN 116594932 A CN116594932 A CN 116594932A
Authority
CN
China
Prior art keywords
read
port
clock
data
signal
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
CN202310670314.1A
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 CN202310670314.1A priority Critical patent/CN116594932A/zh
Publication of CN116594932A publication Critical patent/CN116594932A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • 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/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • 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)
  • Communication Control (AREA)

Abstract

本发明提供一种首字直通的先进先出存储设备及方法,涉及存储器技术领域,包括:标准先进先出存储器,包括双口随机存储器和读控制电路;时钟使能控制电路,分别连接标准先进先出存储器的时钟使能端口、读控制电路的空信号输出端口和外部的读时钟,用于基于读时钟的时钟信号捕获到空信号输出端口输出的空信号的下降沿时,控制时钟使能端口使能一个读时钟周期;读控制电路在读时钟周期内控制双口随机存储器将当前读地址的存储数据读取至双口随机存储器的读数据端口,以在接收到有效的外部读使能信号的同时直接读出读地址端口的存储数据。有益效果是仅增加了少量电路,对整个电路的规模影响相较于添加外部控制电路的方法更小,结构简单且稳定可靠。

Description

一种首字直通的先进先出存储设备及方法
技术领域
本发明涉及存储器技术领域,尤其涉及一种首字直通的先进先出存储设备及方法。
背景技术
在FPGA或者ASIC设计中常使用标准先进先出(FIFO,FirstIn FirstOut)存储器作为数据缓冲或者数据跨时钟同步的部件。标准先进先出存储器可以分为同步FIFO和异步FIFO,同步FIFO的读/写时钟使用同一时钟源,异步FIFO的读/写时钟为不同时钟源。在StandardFIFO中读使能信号有效时,其数据输出端口上并不能立即提供有效数据,数据会在读使能信号有效的下一个周期给出。在某些场景下,读使能信号有效时需要立即读取数据,能够实现这样功能的FIFO被称为首字直通(FWFT,FirstWordFallThrough)FIFO。
现有的FWFTFIFO有如下两种实现方式:
其中一种实现方式是将标准先进先出存储器的双口RAM的输出寄存器去除,使得数据输出端口的数据随着读地址变化而随时变化。但这样的输出数据由于没有经过触发器同步,若直接使用可能使后级电路无法满足建立保持时间要求,出现时序问题,影响电路的稳定运行。而使用FIFO电路目的之一便是为了可靠的跨时钟传输数据,使用这种方式实现的FWFTFIFO显然会无法很好的满足此目的。
另一种实现方式是在StandardFIFO外添加额外控制电路组成FWFTFIFO,实现数据的提前读取,其结构如图1所示。读使能生成电路监测StandardFIFO的空信号(empty),在空信号无效即Standard FIFO中已经被写入数据时,产生一个读使能信号脉冲。虽然此时外部电路并没有读取StandardFIFO中的数据,但StandardFIFO已经接收到一个读取脉冲,因此StandardFIFO内部读控制电路会改变读取指针值。若电路只向StandardFIFO中写入了一个数据,那从StandardFIFO读取一个数据后,空信号会重新有效。但外部电路并没有读取,因此需要保持输出的空信号仍无效,为此还需添加空指示生成电路。通常需要添加有限状态机来实现读使能生成电路和空指示生成电路,整个FIFO电路占用的资源和功耗有显著升高,且若数据读写同时进行,各状态间跳转较为频繁,设计状态机时需要考虑各种可能存在的情况,一旦缺少对某种情况的支持,便会使FIFO输出数据错误。
发明内容
针对现有技术中存在的问题,本发明提供一种首字直通的先进先出存储设备,包括:
标准先进先出存储器,所述标准先进先出存储器包括双口随机存储器和连接所述双口随机存储器的读控制电路;
时钟使能控制电路,分别连接所述标准先进先出存储器的时钟使能端口、所述读控制电路的空信号输出端口和外部的读时钟,用于基于所述读时钟的时钟信号实时监测所述空信号输出端口输出的空信号,并在捕获到所述空信号的下降沿时,控制所述时钟使能端口使能一个读时钟周期;
所述读控制电路还连接所述读时钟,用于在所述读时钟周期内控制所述双口随机存储器将当前读地址对应的存储数据读取至所述双口随机存储器的读数据端口,以在随后接收到有效的外部读使能信号的同时直接读出所述读地址端口的所述存储数据。
优选的,所述时钟使能控制电路包括:
下降沿捕获单元,用于基于所述读时钟的所述时钟信号实时捕获所述空信号的下降沿;
第一或门,所述第一或门的输出端连接所述时钟使能端口,所述第一或门的第一输入端连接所述下降沿捕获单元的第一输出端,所述第一或门的第二输入端连接第一与门的输出端;
所述第一与门的第一输入端接入所述外部读使能信号,所述空信号取非后接入所述第一与门的第二输入端。
优选的,所述下降沿捕获单元包括:
第一D触发器,所述第一D触发器的时钟输入端连接所述读时钟,所述第一D触发器的数据输入端连接所述空信号输出端口;
第二与门,所述第二与门的第一输入端连接所述第一D触发器的同相输出端,所述空信号取非后接入所述第二与门的第二输入端。
优选的,还包括第二或门,所述第二或门的第一输入端连接所述空信号输出端口,所述第二或门的第二输入端连接所述第一D触发器的同相输出端,所述第二或门的输出端作为所述先进先出存储设备的空信号输出端。
优选的,所述读控制电路包括地址设置单元,分别连接所述读时钟、所述读使能信号、所述空信号输出端口和所述双口随机存储器的读地址端口,用于在接收到有效的所述外部读使能信号时自动递增所述当前读地址;
所述读控制电路还用于控制所述双口随机存储器在接收到有效的所述外部读使能信号并读出所述读地址端口的所述存储数据后,将自动递增后的当前读地址对应的存储数据读取至所述读数据端口。
优选的,所述地址设置单元包括:
加法器,所述加法器的第一输入端口连接第三与门的输出端,所述第三与门的第一输入端接入所述外部读使能信号,所述空信号取非后接入所述第三与门的第二输入端,所述加法器的输出端口连接所述读地址端口;
第二D触发器,所述第二D触发器的时钟输入端连接所述读时钟,所述第二D触发器的数据输入端连接所述加法器的输出端口,所述第二D触发器的同相输出端连接所述加法器的第二输入端口。
优选的,所述标准先进先出存储器为同步先进先出存储器。
优选的,所述标准先进先出存储器为异步先进先出存储器。
本发明还提供一种首字直通的先进先出存储方法,应用于上述的先进先出存储设备,所述先进先出存储方法包括:
步骤S1,所述先进先出存储设备基于所述读时钟的时钟信号实时监测所述空信号输出端口输出的空信号,并在捕获到所述空信号的下降沿时,控制所述时钟使能端口使能一个读时钟周期;
步骤S2,所述先进先出存储设备在所述读时钟周期内将当前读地址对应的存储数据读取至所述双口随机存储器的读数据端口,以在随后接收到有效的外部读使能信号的同时直接读出所述读数据端口的所述存储数据。
优选的,所述步骤S2中,所述先进先出存储设备在接收到有效的外部读使能信号时还包括自动递增所述当前读地址;
则所述先进先出存储设备在接收到有效的所述外部读使能信号并读出所述读数据端口的所述存储数据后,还包括将自动递增后的当前读地址对应的存储数据读取至所述读数据端口。
上述技术方案具有如下优点或有益效果:
1)在读控制电路输出的空信号无效(即empty为低电平)时,读数据端口rdata上的存储数据已经处于可用状态,外部电路产生的读使能信号ren的同时可以从读数据端口rdata上直接读取有效数据,实现首字直通的先进先出存储;
2)本发明在标准先进先出存储器StandardFIFO的基础修改时保留了读数据端口rdata的输出寄存器,可以保证时序;
3)本发明修改时仅增加了少量电路,对整个电路的规模影响相较于添加外部控制电路的方法更小,结构简单且稳定可靠。
附图说明
图1为现有技术中,在StandardFIFO外添加额外控制电路组成FWFTFIFO的结构示意图;
图2本发明的较佳的实施例中,一种首字直通的先进先出存储设备的结构示意图;
图3为本发明的较佳的实施例中,本技术方案的仿真时序图;
图4为本发明的较佳的实施例中,地址设置单元的电路结构图;
图5为本发明的较佳的实施例中,标准FIFO(a)、使用现有的外部控制电路的方式实现的FWFTFIFO(b)、本发明的FWFTFIFO(c)的仿真资源消耗对比图;
图6为本发明的较佳的实施例中,一种首字直通的先进先出存储方法的流程示意图;
图7为本发明的一个优选的实施方式中,将本发明的首字直通的先进先出存储设备应用于串行外设接口的场景的结构示意图;
图8为本发明的另一个优选的实施方式中,将本发明的首字直通的先进先出存储设备应用于通用异步收发器接口的场景的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本发明并不限定于该实施方式,只要符合本发明的主旨,则其他实施方式也可以属于本发明的范畴。
本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种首字直通的先进先出存储设备,如图2所示,包括:
标准先进先出存储器,标准先进先出存储器包括双口随机存储器11和连接双口随机存储器11的读控制电路12;
时钟使能控制电路2,分别连接标准先进先出存储器的时钟使能端口rclken、读控制电路12的空信号输出端口empty和外部的读时钟rclk,用于基于读时钟rclk的时钟信号实时监测空信号输出端口empty输出的空信号,并在捕获到空信号的下降沿时,控制时钟使能端口rclken使能一个读时钟周期;
读控制电路12还连接读时钟rclk,用于在读时钟周期内控制双口随机存储器11将当前读地址对应的存储数据读取至双口随机存储器11的读数据端口rdata,以在随后接收到有效的外部读使能信号ren的同时直接读出读数据端口rdata的存储数据。
具体地,上述空信号输出端口empty输出的空信号为高电平时有效,此时说明双口随机存储器11为空,没有可读的存储数据,在空信号为低电平时无效,此时说明双口随机存储器11不为空,有可读的存储数据。
进一步地,标准先进先出存储器中,双口随机存储器11的时钟使能端口rclken的数据读取时钟使能信号仅在读使能信号ren有效时刻更新。为了实现首字直通FWFT模式,同时保留双口随机存储器11的读数据端口rdata的同步寄存器,需要在读使能信号ren有效之前便将存储数据置于读数据端口radta上。
为此在读使能信号ren有效之前,便需要使时钟使能端口rclken有效一个读时钟周期,以便将数据从双口随机存储器11中读取出来,并提前置于读数据端口rdata。具体地,本实施例中,通过实时检测空信号输出端口empty输出的空信号,在捕获到空信号的下降沿时,说明当前有新的数据写入双口随机存储器11,随后控制时钟使能端口rclken使能一个读时钟周期,以使得双口随机存储器11能够在时钟使能端口rclken使能时,在接收到有效的外部读使能信号ren之前能够将当前读地址对应的存储数据读取至读数据端口rdata,实现读数据端口rdata上的存储数据处于可用状态。进而在后续接收到有效的外部读使能信号ren的同时能够直接读出读数据端口rdata的存储数据,实现首字直通的先进先出存储。本实施例中,外部读使能信号ren为高电平是表示有效,为低电平时表示无效。标准先进先出存储器还对应包括写控制电路,若标准先进先出存储器为异步先进先出存储器,则还对应包括地址同步电路,具体的结构为现有技术,此处不再赘述。
其中,时钟使能控制电路2包括:
下降沿捕获单元21,用于基于读时钟rclk的时钟信号实时捕获空信号的下降沿;
第一或门or1,第一或门or1的输出端连接时钟使能端口rclken,第一或门or1的第一输入端连接下降沿捕获单元21的第一输出端,第一或门or1的第二输入端连接第一与门and1的输出端;
第一与门and1的第一输入端接入外部读使能信号ren,空信号取非后接入第一与门and1的第二输入端。
具体地,更新读数据端口rdata端口数据的最佳时刻是在双口随机存储器11中有写入数据后便产生脉冲信号使读时钟使能端口rclken有效一个读时钟周期。可以通过观测空信号(empty)是否有效来判断是否有数据写入双口随机存储器11中。当空信号无效便说明双口随机存储器11中有数据可供读取,因此在标准先进先出存储器1基础上添加下降沿捕获单元21,用于监测空信号由有效状态转为无效状态的时刻。下降沿捕获电路21的输出信号接至读时钟使能端口rclken上插入的第一或门or1输入中。如此,下降沿捕获单元21产生的脉冲信号会使读时钟使能端口rclken的读时钟使能信号保持一个读时钟周期为有效值,以此将存储数据从双口随机存储器11中读取出来并置于读数据端口rdata的同步寄存器上。之后在外部读使能信号ren的第一个有效时钟周期时,便可以完成对此数据的读取,不必等待一个读时钟周期,实现首字直通的先进先出存储。
可以看出,本发明在更新读数据端口rdata输出的同时,由于上述改动均在读控制电路12之外,这样的过程中读控制电路12并没有做任何动作,因此读地址没有发生变化。由于读地址没有变化,empty信号也不会被影响,仍旧处于无效状态,因此不需要额外添加空指示生成电路。
本发明的较佳的实施例中,下降沿捕获单元21包括:
第一D触发器D1,第一D触发器D1的时钟输入端连接读时钟rclk,第一D触发器D1的数据输入端D连接空信号输出端口empty;
第二与门and2,第二与门and2的第一输入端连接第一D触发器D1的同相输出端Q,空信号取非后接入第二与门and2的第二输入端。
具体地,本实施例中,本技术方案的仿真时序图如图3所示,可以看出,在空信号有效即empty为高电平,外部时钟使能信号ren无效即ren为低电平时,第一D触发器D1的同相输出端Q输出也为高电平,此时第二与门and2的输出为低电平,第一与门and1的输出为低电平,第一或门or1的输出为低电平,即读时钟使能端口rclken为低电平,无效。若此时双口随机存储器11有数据写入,则空信号无效,即empty在读时钟rclk的上升沿由高电平跳变至低电平,但此时第一D触发器D1中锁存的同相输出端Q输出仍为高电平,直至下一个读时钟rclk的上升沿到来,第一D触发器D1的同相输出端Q输出跳变低电平,可以看出,在捕获到空信号的下降沿后,下一个读时钟rclk到来之前的一个读时钟周期内,空信号为低电平,第一D触发器D1的同相输出端Q输出为高电平,此时第二与门and2的输出为高电平,则第一或门or1的输出为高电平,即读时钟使能端口rclken为高电平,有效,此时,双口随机存储器11将写入的数据读取出来并置于读数据端口rdata,进而在下一个读时钟rclk的上升沿到来时,能够直接读出读数据端口rdata的存储数据。
本发明的较佳的实施例中,还包括第二或门or2,第二或门or2的第一输入端连接空信号输出端口empty,第二或门or2的第二输入端连接第一D触发器D1的同相输出端Q,第二或门or2的输出端作为先进先出存储设备的空信号输出端empty_out。
具体地,本实施例中,为了让空信号同时能够指示读数据端口rdata的端口数据是否有效,将下降沿捕获单元21中的寄存器输出(即第一D触发器D1的同相输出端Q输出)与原empty信号(读控制电路12的空信号输出端口empty输出的空信号)送入第二或门or2进行或运算得到新的empty信号作为整个先进先出存储设备的空信号,即是将原empty信号的高电平延迟一个时钟周期。由于先进先出存储设备的空/满信号的作用是保证数据读取和写入的完整性,即只要空信号无效便可以读,只要满信号无效便可以写。因此,空/满信号从无效状态变为有效状态需及时变化不能有延迟,而从有效状态变为无效状态时,多保持一个时钟周期有效不会改变信号的作用。且在异步FIFO中由于存在跨时钟域同步电路,空/满信号从有效状态转为无效状态本就存在一点的延时,增加一个时钟周期的延时对电路性能影响极小。
本发明的较佳的实施例中,读控制电路12包括地址设置单元121,分别连接读时钟rclk、读使能信号ren、空信号输出端口empty和双口随机存储器11的读地址端口raddr,用于在接收到有效的外部读使能信号ren时自动递增当前读地址;
读控制电路12还用于在接收到有效的外部读使能信号ren并读出读数据端口rdata的存储数据后将自动递增后的当前读地址对应的存储数据读取至读数据端口rdata。
具体地,本实施例中,双口随机存储器11的读地址端口raddr的当前读地址与数据一样在外部读使能信号ren有效之后的一个时钟变化,由于为了实现读数据端口radta的数据自动刷新,电路在外部读使能信号ren有效之前便将地址0(地址0为第一次向FIFO中写数据的地址,若FIFO中已经被写过数据了,这个地址可以为任意值,其他情况下为空信号有效时的地址值)中的数据读出。在外部读使能信号ren有效时,需要读取出下一个地址中的数据,因此需要通过地址设置单元121在外部读使能信号ren有效时立刻自动递增。进而实现在接收到有效的外部读使能信号ren时,从读数据端口rdata读出存储数据的同时,自动递增读地址端口raddr的当前读地址,随后将自动递增后的当前读地址对应的存储数据读取至读数据端口rdata,以便接收到下一个有效的外部读使能信号ren时,也能够从读数据端口rdata读出存储数据,以此类推。
本发明的较佳的实施例中,如图4所示,地址设置单元121包括:
加法器adder,加法器adder的第一输入端口连接第三与门and3的输出端,第三与门and3的第一输入端接入外部读使能信号ren,空信号取非后接入第三与门and3的第二输入端,加法器adder的输出端口连接读地址端口raddr;
第二D触发器D2,第二D触发器D2的时钟输入端连接读时钟rclk,第二D触发器D2的数据输入端D连接加法器adder的输出端口,第二D触发器D2的同相输出端Q连接加法器adder的第二输入端口。
具体地,本实施例中,为了在外部读使能信号ren无效时能够保持当前读地址的地址值不变,需要通过寄存器(第二D触发器D2)锁存地址值。进一步具体地,读控制电路12输出的空信号为高电平时,则第三与门and3的输出端输出为低电平,加法器adder不工作,即当前读地址保持不变,此时当前读地址锁存至第二D触发器D2中。读控制电路12输出的空信号为低电平时,若外部读使能信号ren有效,则第三与门and3的输出端输出为高电平,加法器adder进行地址自增,即当前读地址加1,随后锁存至第二D触发器D2中,以此类推。
本发明的较佳的实施例中,标准先进先出存储器1为同步先进先出存储器。
本发明的较佳的实施例中,标准先进先出存储器1为异步先进先出存储器。
具体地,本实施例中,使用EDA(ElectronicDesignAutomation,电子设计自动化)工具对电路进行仿真后可以查看电路的资源消耗,以异步FIFO为例,将本发明中的FWFTFIFO与Standard异步FIFO及其他方法实现的FWFTFIFO所使用资源进行对比,对比如图5所示。可以看到使用现有的外部控制电路的方式寄存器使用数为29个,相较于标准FIFO寄存器使用数20个,增加了9个,而本发明的寄存器使用数为21个,仅增加一个寄存器。可见本发明修改时仅增加了少量电路,对整个电路的规模影响相较于添加外部控制电路的方法更小。
本发明还提供一种首字直通的先进先出存储方法,应用于上述的先进先出存储设备,如图6所示,先进先出存储方法包括:
步骤S1,先进先出存储设备基于读时钟的时钟信号实时监测空信号输出端口输出的空信号,并在捕获到空信号的下降沿时,控制时钟使能端口使能一个读时钟周期;
步骤S2,先进先出存储设备在读时钟周期内将当前读地址对应的存储数据读取至双口随机存储器的读数据端口,以在随后接收到有效的外部读使能信号的同时直接读出读数据端口的存储数据。
本发明的较佳的实施例中,步骤S2中,先进先出存储设备在接收到有效的外部读使能信号时还包括自动递增当前读地址;
则先进先出存储设备在接收到有效的外部读使能信号并读出读数据端口的存储数据后,还包括将自动递增后的当前读地址对应的存储数据读取至读数据端口。
作为本发明的一个优选的实施方式,可以将本发明的首字直通的先进先出存储设备应用于串行外设接口的场景,SPI接口(Serial PeripheralInterface,串行外设接口)模块的时钟为外部电路提供,与电路内部时钟为异步关系,需要使用两个异步FIFO来跨时钟域传输接收和发送的数据,内部数据处理模块通过数据总线读取/写入FIFO。数据总线读取数据时,地址给出的同时,响应电路需立刻给出该地址中数据,因此FIFO需要使用异步FWFTFIFO,如图7所示,可以采用两个本发明的首字直通的先进先出存储设备实现,其中,每个首字直通的先进先出存储设备中的标准先进先出存储器为异步先进先出存储器,即本发明的首字直通的先进先出存储设备为异步先进先出存储设备。其中:
一个异步先进先出存储器作为接收异步FWFTFIFO,其写使能端口wen、写数据端口wdata和写时钟wclk分别连接SPI接口模块,通过SPI接口模块与外部电路进行数据交互,其读使能端口ren、读数据端口rdata和读时钟rclk分别连接地址译码模块。
另一个异步先进先出存储器作为发送异步FWFTFIFO,其读使能端口ren、读数据端口rdata和读时钟rclk分别连接SPI接口模块,其写使能端口wen、写数据端口wdata和写时钟wclk分别连接地址译码模块。
上述地址译码模块还通过数据总线连接数据处理模块,数据写入及读取的具体步骤如下:
1)SPI接口模块接收外部电路发送的报文,并将报文写入接收异步FWFTFIFO;
2)数据处理模块通过数据总线发送指定地址以读取接收异步FWFTFIFO中数据;
3)地址译码模块根据总线地址及读写控制信号产生读使能信号,同时将接收异步FWFTFIFO的读数据端口rdata上的数据置于总线数据端口上;
4)重复步骤2)~3),直至将接收异步FWFTFIFO中数据全部读取出来并传送给数据处理模块;
5)数据处理模块处理接收的报文数据;
6)数据处理模块计算得到需要给外部电路发送的返回数据;
7)数据处理模块通过数据总线将返回数据置于数据总线上;
8)地址译码模块通过地址以及读写控制信号,产生写使能信号,将总线上的数据写入发送异步FWFTFIFO中;
9)重复7)~8)直至数据处理模块将所有数据发送至发送异步FWFTFIFO中;
10)外部电路发送读取指令,SPI接口模块解析得到读取指令;
11)SPI接口模块将发送异步FWFTFIFO的数据发送给外部电路;
12)重复步骤11)直至将发送FWFTFIFO中数据全部发送完成。
作为本发明的另一个优选的实施方式,可以将本发明的首字直通的先进先出存储设备应用于通用异步收发器接口的场景,通过UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发器)接口与外部电路进行数据交互,UART接口数据传输速度较慢,若每次接收/发送到数据均需要数据处理模块来处理的话,会过于频繁的打断数据处理模块原有的工作,为此可以先将接收/发送数据存入FIFO中。UART数据收发电路使用内部时钟,因此FIFO使用同步FIFO即可。内部数据处理电路通过数据总线读取/写入FIFO。数据总线读取数据时,地址给出的同时,响应电路需立刻给出该地址中数据,因此FIFO需要使用同步FWFTFIFO。如图8所示,可以采用两个本发明的首字直通的先进先出存储设备实现,其中,每个首字直通的先进先出存储设备中的标准先进先出存储器为同步先进先出存储器,即本发明的首字直通的先进先出存储设备为同步先进先出存储设备。其中:
一个同步先进先出存储器作为接收同步FWFTFIFO,其写使能端口wen和写数据端口wdata分别连接UART接口模块,通过UART接口模块与外部电路进行数据交互,其读使能端口ren、读数据端口rdata和读时钟rclk分别连接地址译码模块和UART接口模块。
另一个同步先进先出存储器作为发送同步FWFTFIFO,其读使能端口ren和读数据端口rdata分别连接UART接口模块,其写使能端口wen、写数据端口wdata和写时钟wclk分别连接地址译码模块和UART接口模块。
上述地址译码模块还通过数据总线连接数据处理模块,数据写入及读取的具体步骤如下:
1)UART接口模块接收外部电路发送的报文,并将报文写入接收同步FWFTFIFO;
2)接收同步FWFTFIFO深度根据报文长度设置,接收完成后,接收同步FWFTFIFO被写满;
3)数据处理模块通过数据总线发送指定地址以读取接收同步FWFTFIFO中数据;
4)地址译码模块根据总线地址及读写控制信号产生读使能信号,同时将接收同步FWFTFIFO的读数据端口rdata上的数据置于总线数据端口上;
5)重复步骤3)~4),直至将接收同步FWFTFIFO中数据全部读取出来并传送给数据处理模块;
6)数据处理模块处理接收的报文数据;
7)数据处理模块计算得到需要给外部电路发送的返回数据;
8)数据处理模块通过数据总线将返回数据置于数据总线上;
9)地址译码模块通过地址以及读写控制信号,产生写使能信号,将总线上的数据写入发送同步FWFTFIFO中;
10)重复8)~9)直至数据处理模块将所有数据发送至发送同步FWFTFIFO中;
11)发送同步FWFTFIFO深度根据报文长度设置,数据处理模块写完发送数据后,发送同步FWFTFIFO被写满;
12)UART接口模块将发送同步FWFTFIFO的数据发送给外部电路;
13)重复步骤12)直至将发送同步FWFTFIFO中数据全部发送完成。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (10)

1.一种首字直通的先进先出存储设备,其特征在于,包括:
标准先进先出存储器,所述标准先进先出存储器包括双口随机存储器和连接所述双口随机存储器的读控制电路;
时钟使能控制电路,分别连接所述标准先进先出存储器的时钟使能端口、所述读控制电路的空信号输出端口和外部的读时钟,用于基于所述读时钟的时钟信号实时监测所述空信号输出端口输出的空信号,并在捕获到所述空信号的下降沿时,控制所述时钟使能端口使能一个读时钟周期;
所述读控制电路还连接所述读时钟,用于在所述读时钟周期内控制所述双口随机存储器将当前读地址对应的存储数据读取至所述双口随机存储器的读数据端口,以在随后接收到有效的外部读使能信号的同时直接读出所述读数据端口的所述存储数据。
2.根据权利要求1所述的先进先出存储设备,其特征在于,所述时钟使能控制电路包括:
下降沿捕获单元,用于基于所述读时钟的所述时钟信号实时捕获所述空信号的下降沿;
第一或门,所述第一或门的输出端连接所述时钟使能端口,所述第一或门的第一输入端连接所述下降沿捕获单元的第一输出端,所述第一或门的第二输入端连接第一与门的输出端;
所述第一与门的第一输入端接入所述外部读使能信号,所述空信号取非后接入所述第一与门的第二输入端。
3.根据权利要求2所述的先进先出存储设备,其特征在于,所述下降沿捕获单元包括:
第一D触发器,所述第一D触发器的时钟输入端连接所述读时钟,所述第一D触发器的数据输入端连接所述空信号输出端口;
第二与门,所述第二与门的第一输入端连接所述第一D触发器的同相输出端,所述空信号取非后接入所述第二与门的第二输入端。
4.根据权利要求3所述的先进先出存储设备,其特征在于,还包括第二或门,所述第二或门的第一输入端连接所述空信号输出端口,所述第二或门的第二输入端连接所述第一D触发器的同相输出端,所述第二或门的输出端作为所述先进先出存储设备的空信号输出端。
5.根据权利要求1所述的先进先出存储设备,其特征在于,所述读控制电路包括地址设置单元,分别连接所述读时钟、所述读使能信号、所述空信号输出端口和所述双口随机存储器的读地址端口,用于在接收到有效的所述外部读使能信号时自动递增所述当前读地址;
所述读控制电路还用于控制所述双口随机存储器在接收到有效的所述外部读使能信号并读出所述读地址端口的所述存储数据后,将自动递增后的当前读地址对应的存储数据读取至所述读数据端口。
6.根据权利要求5所述的先进先出存储设备,其特征在于,所述地址设置单元包括:
加法器,所述加法器的第一输入端口连接第三与门的输出端,所述第三与门的第一输入端接入所述外部读使能信号,所述空信号取非后接入所述第三与门的第二输入端,所述加法器的输出端口连接所述读地址端口;
第二D触发器,所述第二D触发器的时钟输入端连接所述读时钟,所述第二D触发器的数据输入端连接所述加法器的输出端口,所述第二D触发器的同相输出端连接所述加法器的第二输入端口。
7.根据权利要求1所述的先进先出存储设备,其特征在于,所述标准先进先出存储器为同步先进先出存储器。
8.根据权利要求1所述的先进先出存储设备,其特征在于,所述标准先进先出存储器为异步先进先出存储器。
9.一种首字直通的先进先出存储方法,其特征在于,应用于如权利要求1-8中任意一项所述的先进先出存储设备,所述先进先出存储方法包括:
步骤S1,所述先进先出存储设备基于所述读时钟的时钟信号实时监测所述空信号输出端口输出的空信号,并在捕获到所述空信号的下降沿时,控制所述时钟使能端口使能一个读时钟周期;
步骤S2,所述先进先出存储设备在所述读时钟周期内将当前读地址对应的存储数据读取至所述双口随机存储器的读数据端口,以在随后接收到有效的外部读使能信号的同时直接读出所述读数据端口的所述存储数据。
10.根据权利要求9所述的先进先出存储方法,其特征在于,所述步骤S2中,所述先进先出存储设备在接收到有效的外部读使能信号时还包括自动递增所述当前读地址;
则所述先进先出存储设备在接收到有效的所述外部读使能信号并读出所述读数据端口的所述存储数据后,还包括将自动递增后的当前读地址对应的存储数据读取至所述读数据端口。
CN202310670314.1A 2023-06-07 2023-06-07 一种首字直通的先进先出存储设备及方法 Pending CN116594932A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310670314.1A CN116594932A (zh) 2023-06-07 2023-06-07 一种首字直通的先进先出存储设备及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310670314.1A CN116594932A (zh) 2023-06-07 2023-06-07 一种首字直通的先进先出存储设备及方法

Publications (1)

Publication Number Publication Date
CN116594932A true CN116594932A (zh) 2023-08-15

Family

ID=87595554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310670314.1A Pending CN116594932A (zh) 2023-06-07 2023-06-07 一种首字直通的先进先出存储设备及方法

Country Status (1)

Country Link
CN (1) CN116594932A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117095719A (zh) * 2023-08-25 2023-11-21 广州市粤港澳大湾区前沿创新技术研究院 一种控制电路及存储器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117095719A (zh) * 2023-08-25 2023-11-21 广州市粤港澳大湾区前沿创新技术研究院 一种控制电路及存储器

Similar Documents

Publication Publication Date Title
US10318468B2 (en) FPGA-based interface signal remapping method
US8260982B2 (en) Method for reducing latency
US5931926A (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO
CN100489824C (zh) 用于检测通信信道上时域的方法和装置
JP2007525766A (ja) マルチポートメモリシステムにおける衝突検出
US8356203B2 (en) Asynchronous interface circuit and data transfer method
US7180332B2 (en) Clock synchronization circuit
US10025343B2 (en) Data transfer between asynchronous clock domains
EP2062147B1 (en) Method and apparatus for conditional broadcast of barrier operations
JPH08255475A (ja) ページイン、バーストアウトfifo
US6226698B1 (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO
CN116594932A (zh) 一种首字直通的先进先出存储设备及方法
US4853847A (en) Data processor with wait control allowing high speed access
US5898895A (en) System and method for controlling data transmission rates between circuits in different clock domains via selectable acknowledge signal timing
CN112712829A (zh) 一种跨时钟域的寄存器读写电路及方法
US7302508B2 (en) Apparatus and method for high speed data transfer
CN110618950B (zh) 一种异步fifo读写控制电路及方法、可读存储介质及终端
CN114089946B (zh) 一种fifo装置和数据处理系统
CN117311662A (zh) 一种数据清除系统及方法
CN110941461B (zh) 一种业务处理软件的参数配置终端
CN109144889B (zh) 基于fpga的超声检测数据存储模块及fpga电路
CN117234456A (zh) 同步fifo缓存方法、装置和电子设备
Wijlens Building a framework in Clash to create deterministic sensor and actuator interfaces for FPGAs
CN117762829A (zh) 数据读取装置、方法、设备和存储介质
JP2994906B2 (ja) データ受信回路

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