CN111367495A - 一种异步先入先出的数据缓存控制器 - Google Patents

一种异步先入先出的数据缓存控制器 Download PDF

Info

Publication number
CN111367495A
CN111367495A CN202010150189.8A CN202010150189A CN111367495A CN 111367495 A CN111367495 A CN 111367495A CN 202010150189 A CN202010150189 A CN 202010150189A CN 111367495 A CN111367495 A CN 111367495A
Authority
CN
China
Prior art keywords
signal
write
read
pointer
module
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
CN202010150189.8A
Other languages
English (en)
Other versions
CN111367495B (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.)
University of Electronic Science and Technology of China
Shanghai Huali Microelectronics Corp
Original Assignee
University of Electronic Science and Technology of China
Shanghai Huali Microelectronics 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 University of Electronic Science and Technology of China, Shanghai Huali Microelectronics Corp filed Critical University of Electronic Science and Technology of China
Priority to CN202010150189.8A priority Critical patent/CN111367495B/zh
Publication of CN111367495A publication Critical patent/CN111367495A/zh
Application granted granted Critical
Publication of CN111367495B publication Critical patent/CN111367495B/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
    • 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

Abstract

一种异步先入先出的数据缓存控制器,利用写地址产生逻辑模块在写时钟域对写地址信号、写指针信号自加1,利用读地址产生逻辑模块在读时钟域对读地址信号、读指针信号自加1,设置计数模块对写指针信号和读指针信号进行计数,设置写指针同步模块将写指针信号同步到读时钟域与读指针信号进行比较判断读空,设置读指针同步模块将读指针信号同步到写时钟域与写指针信号进行比较判断写满,根据计数结果和判断结果控制读、写地址产生逻辑模块,双端口RAM存储模块在写时钟域下写入数据,在读时钟域下读出数据。本发明能够在不增加RAM深度且不影响系统整体运行速度的情况下,使数据正常的写入和读出,解决了跨时钟域数据传输中数据缓存溢出的问题。

Description

一种异步先入先出的数据缓存控制器
技术领域
本发明属于数字集成电路设计领域,特别涉及一种异步先入先出(FIFO,FirstInput First Output)的数据缓存控制器。
背景技术
在现场可编程逻辑门阵列(FPGA,Field Programmable Gate Array)系统中,如果数据传输中不满足触发器的建立时间和保持时间,或者复位过程中复位信号的释放相对于有效时钟沿的恢复时间不满足,就可能产生亚稳态,此时触发器输出端在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间内输出端在0和1之间处于振荡状态,而不是等于输入端的值。只要系统中有异步元件,亚稳态就无法避免。亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。由于产生亚稳态后,寄存器输出端输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值。在信号传输中产生亚稳态就会导致与其相连其他数字部件将其作出不同的判断,有的判断到“1”有的判断到“0”,有的也进入了亚稳态,数字部件就会逻辑混乱。在复位电路中产生亚稳态可能会导致复位失败。在跨时钟域的数据传输中产生亚稳态的现象尤为明显。
在大规模集成电路设计中,多时钟系统往往是不可避免的,这样就产生了跨时钟域的数据传输问题,时钟域的时钟频率不同是导致亚稳态问题的一个重要原因,即跨时钟域的数据传输会导致亚稳态问题的产生。然而系统的运作和功能体现则需要所有模块的相互合作,这样,设计工作过程中必然就存在着不同模块之间的数据传输跨时钟域就是一条路径穿过不同的时钟域,由于不同时钟域的时钟频率不同,就会难以确定信号传输的正确性,解决跨时钟域路径的信号传输问题就是异步FIFO设计的目的之一。其中一个比较好的解决方案就是使用异步FIFO来作不同时钟域数据传输的缓冲区,这样既可以使相异时钟域数据传输的时序要求变得宽松,也提高了它们之间的传输效率。FIFO存储器依靠合理的价格、使用的方便性和灵活性以及对速度进行匹配这些特点而成为解决这类问题的理想方法。异步FIFO一般可作为速率匹配数据缓冲器,能在快速处理器和较慢的外设之间实现速率匹配,且它在远程通信、数字信号处理、大容量存储系统、图像处理以及打印系统这些领域非常有用。
在多种解决跨时钟域问题的方法中,异步FIFO较为简便、快捷。异步FIFO是一种先进先出的逻辑电路,本质上可以看做是一种缓存单元,但区别在于它的另一个作用是确保两个不同时钟域之间的数据正确传输。功能实现过程中,写时钟域的数据通过写操作进入异步FIFO缓存,读时钟域则通过读操作从异步FIFO的缓存中读走数据,进而达到跨时域路径的数据稳定、有效传输。
在异步FIFO的结构中,由于时钟频率不同的影响,为了确保通信的正常,需要建立严格的握手机制,但当时钟频率差距过大时,握手机制有可能失效,此时为了确保系统的正常运行,通常是对缓存深度进行增加,但是在数据位宽较大的系统中,如果加深缓存深度就会带来巨大的资源浪费。
发明内容
针对上述异步FIFO在两个时钟域下数据缓存溢出的问题,本发明提出了一种异步先入先出FIFO的数据缓存控制器,能够在两个时钟域中握手机制失效的情况下,不通过无限制的增加RAM(随机存取存储器random access memory,RAM)深度,而是通过本发明提出的异步FIFO数据缓存控制器结构来达到防止数据溢出的目的。
本发明的技术方案为:
一种异步先入先出的数据缓存控制器,包括双端口RAM存储模块、写地址产生逻辑模块、读地址产生逻辑模块、写满判断模块、读空判断模块、读指针同步模块、写指针同步模块、写指针计数模块和读指针计数模块,
所述写地址产生逻辑模块的时钟端连接写时钟信号,其复位端连接写复位信号,其使能端连接写使能信号,其控制端连接写控制信号,其地址输出端输出写地址信号,其指针输出端连接写指针信号;
当所述写控制信号为低电平时,所述写地址产生逻辑模块在所述写时钟信号的每个周期将写地址信号和写指针信号的编码自加1后输出;当所述写控制信号为高电平时,所述写地址产生逻辑模块输出的写地址信号和写指针信号的编码停止自加1保持不变;
所述读地址产生逻辑模块的时钟端连接读时钟信号,其复位端连接读复位信号,其使能端连接读使能信号,其控制端连接读控制信号,其地址输出端输出读地址信号,其指针输出端连接读指针信号;
当所述读控制信号为低电平时,所述读地址产生逻辑模块在所述读时钟信号的每个周期将读地址信号和读指针信号的编码自加1后输出;当所述读控制信号为高电平时,所述读地址产生逻辑模块输出的读地址信号和读指针信号的编码停止自加1保持不变;
所述双端口RAM存储模块包括写控制单元、读控制单元和存储单元,
所述存储单元的数据输入端连接写入数据信号,其数据输出端连接读出数据信号;
所述写控制单元的时钟端连接所述写时钟信号,其复位端连接所述写复位信号,其使能端连接所述写使能信号,其地址输入端连接所述写地址信号,所述写控制单元用于控制所述写入数据信号在写时钟域下存入到所述存储单元中对应地址;
所述读控制单元的时钟端连接所述读时钟信号,其复位端连接所述读复位信号,其使能端连接所述读使能信号,其地址输入端连接所述读地址信号,所述读控制单元用于在读时钟域下将所述存储单元中对应地址的数据读出获得所述读出数据信号;
所述写指针计数模块用于对所述写指针信号进行计数,当计数结果达到设定值时产生高电平的写指针计数控制信号;
所述读指针计数模块用于对所述读指针信号进行计数,当计数结果达到设定值时产生高电平的读指针计数控制信号;
所述读指针同步模块用于将所述读指针信号同步到写时钟域;
所述写指针同步模块用于将所述写指针信号同步到读时钟域;
所述写满判断模块的时钟端连接所述写时钟信号,其复位端连接所述写复位信号,所述写满判断模块用于比较所述写地址产生逻辑模块输出的写指针信号和所述读指针信号经所述读指针同步模块同步后的信号,当两者只有最高位和次高位不同时输出高电平的写满判断信号;
所述读空判断模块的时钟端连接所述读时钟信号,其复位端连接所述读复位信号,所述读空判断模块用于比较所述读地址产生逻辑模块输出的读指针信号和所述写指针信号经所述写指针同步模块同步后的信号,当两者完全相同时输出高电平的读空判断信号;
所述写指针计数控制信号和所述写满判断信号相或后产生所述写控制信号;
所述读指针计数控制信号和所述读空判断信号相或后产生所述读控制信号。
具体的,所述读地址信号为二进制编码形式输出,所述读指针信号为二进制转格雷码形式输出;所述写地址信号为二进制编码形式输出,所述写指针信号为二进制转格雷码形式输出;
具体的,所述读指针同步模块包括两个D触发器,所述读指针信号经过两个D触发器延时两次后输出到所述写满判断模块与所述写指针信号进行比较;所述写指针同步模块包括两个D触发器,所述写指针信号经过两个D触发器延时两次后输出到所述读空判断模块与所述读指针信号进行比较。
具体的,所述写指针计数模块的判断逻辑为,对所述写指针信号进行计数,当计数到所述双端口RAM存储模块地址深度的前两个数时,输出高电平的写指针计数控制信号,否则输出低电平的写指针计数控制信号;
所述读指针计数模块的判断逻辑为,对所述读指针信号进行计数,当计数到所述双端口RAM存储模块地址深度的前两个数时,输出高电平的读指针计数控制信号,否则输出低电平的读指针计数控制信号。
具体的,所述写指针计数模块输出高电平的写指针计数控制信号后,所述写指针计数模块经过所述写时钟信号的五个周期后复位;
所述读指针计数模块输出高电平的读指针计数控制信号后,所述读指针计数模块经过所述读时钟信号的五个周期后复位。
本发明的有益效果为:本发明能够在不增加RAM深度且不影响系统整体运行速度的情况下,使数据正常的写入和读出,能够解决跨时钟域数据传输中两个时钟域下数据缓存溢出的问题。
附图说明
图1为本发明提出的一种异步先入先出的数据缓存控制器的系统框图。
具体实施方式
下面结合附图和具体实施例详细说明本发明的技术方案。
如图1所示,本发明提出的一种异步先入先出的数据缓存控制器包括双端口RAM存储模块201、写地址产生逻辑模块202、读地址产生逻辑模块203、写满判断模块204、读空判断模块205、读指针同步模块206、写指针同步模块207、写指针计数模块208和读指针计输模块209。
其中双端口RAM存储模块201有九个输入端口和一个输出端口,写时钟端口、写复位端口、写使能端口、写地址端口设置在双端口RAM存储模块201的写控制单元内;读时钟端口、读复位端口、读使能端口、读地址端口设置在双端口RAM存储模块201的读控制单元内;双端口RAM存储模块201的存储单元的输入端口是写数据端口,输出端口是读数据端口。写时钟端口连接写时钟信号Wrclk、写复位端口连接写复位信号Wrrst、写使能端口连接写使能信号Wren、写地址端口连接写地址产生逻辑模块202输出端写地址信号Wraddr,读时钟端口连接读时钟信号Rdclk、读复位端口连接读复位信号Rdrst、读使能端口连接读使能信号Rden、读地址端口连接读地址产生逻辑模块203输出端读地址信号Rdaddr,写数据端口输入写入数据信号WRdata,读数据端口输出读出数据信号Rddata,双端口RAM存储模块201的写数据端口仅在写时钟域的控制下写入数据,读数据端口仅在读时钟域的控制下读出数据;写地址端口和读地址端口分别由写地址产生逻辑模块202和读地址产生模块203控制,深度可自行设定。且双端口RAM存储模块201的读写数据位宽也可自行设定。
写地址产生逻辑模块202有四个输入端口:时钟端连接写时钟信号Wrclk、复位端连接写复位信号Wrrst、使能端连接写使能信号Wren、控制端连接写控制信号Wrstop;写地址产生逻辑模块202有两个输出端口:地址输出端输出写地址信号Wraddr、指针输出端输出写指针信号Wrptr。写地址产生逻辑模块202产生的写地址信号Wraddr输出到双端口RAM存储模块201的写地址输入端口,写地址产生逻辑模块202产生的写指针信号Wrptr输出到写指针同步模块207、写指针计数器模块208和写满判断模块204。
读地址产生逻辑模块203有四个输入端口:时钟端连接读时钟信号Rdclk、复位端连接读复位信号Rdrst、使能端连接读使能信号Rden、控制端连接读控制信号Rdstop;读地址产生逻辑模块203有两个输出端口:地址输出端输出读地址信号Rdaddr、指针输出端输出读指针信号Rdptr。读地址产生逻辑模块203产生的读地址信号Rdaddr输出到双端口RAM存储模块201的读地址输入端口,读地址产生逻辑模块203产生的读指针信号Rdptr输出到读指针同步模块206、读指针计数器模块209和读空判断模块205。
写指针计数模块208在写时钟域下工作,有一个输入端口连接写地址产生逻辑模块202输出的写指针信号Wrptr,和一个输出端口输出写指针计数控制信号Wrptren。读指针计数模块209在读时钟域下工作,有一个输入端口连接读地址产生逻辑模块203输出的读指针信号Rrptr,和一个输出端口输出读指针计数控制信号Rdptren。
写指针计数模块208用于对写指针信号Wrptr进行计数,当计数结果达到设定值时产生高电平的写指针计数控制信号Wrptren,一些实施例中写指针计数模块208的判断逻辑可以为:对写指针信号Wrptr计数增加到双端口RAM存储模块201地址深度的前两个数时,写指针计数控制信号Wrptren输出为1,其余时刻皆为0。
读指针计数模块209用于对读指针信号Rrptr进行计数,当计数结果达到设定值时产生高电平的读指针计数控制信号Rdptren,一些实施例中读指针计数模块209的判断逻辑可以为:对读指针信号Rrptr计数增加到双端口RAM存储模块201地址深度的前两个数时,读指针计数控制信号Rdptren输出为1,其余时刻皆为0。
读指针同步模块206在写时钟域下工作,其输入与读地址产生逻辑模块203输出的读指针信号Rdptr相连,其输出信号Rdptr2与写满判断模块204相连。读指针同步模块206在一些实施例中,可以在写时钟的控制下通过两级D触发器进行打两拍操作将读指针信号Rdptr同步到写时钟域下的信号Rdptr2,以达到降低跨时钟域传输下出现亚稳态的概率。
写指针同步模块207在读时钟域下工作,其输入与写地址产生逻辑模块202输出的写指针端口Wrptr相连,其输出信号Wrptr2与读空判断模块205相连。写指针同步模块207在一些实施例中,可以在读时钟的控制下通过两级D触发器进行打两拍操作将写指针信号Wrptr同步到读时钟域下的信号Wrptr2,以达到降低跨时钟域传输下出现亚稳态的概率。
写满判断模块204有四个输入端口:时钟端连接写时钟信号Wrclk、复位端连接写复位信号Wrrst、一个比较输入端连接写指针信号Wrptr、另一个比较输入端连接经过读指针同步模块206同步后的信号Rdptr2;写满判断模块204有一个输出端口输出写满判断信号Wrfull,标志写满。
读空判断模块205有四个输入端口:时钟端连接读时钟信号Rdclk、复位端连接读复位信号Rdrst、一个比较输入端连接读指针信号Rdptr、另一个比较输入端连接经过写指针同步模块207同步之后的信号Wrptr2;读空判断模块205有一个输出端口输出读空判断信号Rdempty,标志读空。
写满判断模块204用于根据写地址产生逻辑模块202输出的写指针信号Wrptr和经过读指针同步模块206同步后的信号Rdptr2判断是否写满,其判断逻辑可以为:写指针信号Wrptr和同步过来的信号Rdptr2的最高位MSB不相等,写指针信号Wrptr和同步过来的信号Rdptr2的次高位也不相等,剩下的位数全部相等则说明写满,写满判断信号Wrfull输出为1。
读空判断模块205用于根据读地址产生逻辑模块203输出的读指针信号Rdptr和经过写指针同步模块207同步后的信号Wrptr2判断是否读空,其判断逻辑可以为:读指针信号Rdptr和同步过来的信号wptr2完全相等则说明读空,读空判断信号Rdempty输出为1。
写满判断信号Wrfull和写指针计数控制信号Wrptren经过一个或门后产生写地址产生逻辑模块202的写控制信号Wrstop。读空判断信号Rdempty和读指针计数控制信号Rdptren经过一个或门后产生读地址产生逻辑模块203的读控制信号Rdstop。
写地址产生逻辑模块202在写控制信号Wrstop为1的时候写地址信号Wraddr和写指针信号Wrptr的编码不进行自加1的操作,只有当写控制信号Wrstop为0的时才自加1;其中一些实施例中写地址信号Wraddr采用二进制编码方式输出,写指针信号Wrptr通过二进制转格雷码的方式以格雷码形式输出。同样的,读地址产生逻辑模块203在读控制信号Rdstop为1的时候读地址信号Rdaddr和读指针信号Rdptr不进行自加1的操作,只有当读控制信号Rdstop为0的时才自加1,一些实施例中读地址信号Rdaddr采用二进制编码方式输出,读指针信号Rdptr通过二进制转格雷码的方式以格雷码形式输出。
本发明提出的异步先入先出的数据缓存控制器,利用写地址产生逻辑模块202在写时钟域每个周期对写地址信号、写指针信号自加1,利用读地址产生逻辑模块203在读时钟域每个周期对读地址信号、读指针信号自加1,另外设置了计数模块208和209对写指针信号和读指针信号进行计数,设置写指针同步模块207将写指针信号同步到读时钟域与读指针信号进行比较判断读空,设置读指针同步模块206将读指针信号同步到写时钟域与写指针信号进行比较判断写满,根据计数结果和判断结果控制读、写地址产生逻辑模块202和203,双端口RAM存储模块201在写时钟域下将写入数据信号写入RAM,在读时钟域下将读出数据信号从RAM中读出。
下面详细描述本实施例的具体工作过程。
步骤1、首先确定双端口RAM存储模块201数据的位宽以及RAM的深度,其中RAM的深度能够限定确定读地址信号Rdaddr和写地址信号Wraddr的最大值,数据的位宽即写入数据信号Wrdata和读出数据信号Rddata的位宽。
步骤2、确定写时钟信号Wrclk的频率和读时钟信号Rdclk的频率。
步骤3、确定写复位信号Wrrst的状态是否为0,若为0,则系统处于复位状态,对写地址产生逻辑模块202、写满判断模块204和双端口RAM存储模块202的写控制单元复位,写地址信号Wraddr、写满判断信号Wrfull、写指针信号Wrptr处于初始0状态,此时不能进行写数据的操作。
步骤4、确定读复位信号Rdrst的状态是否为0,若为0,则系统处于复位状态,对读地址产生逻辑模块203、读空判断模块205和双端口RAM存储模块202的读控制单元复位,读地址信号Rdaddr、读空判断信号Rdempty、读指针信号Rdptr处于初始0状态,此时不能进行读数据的操作。
步骤5、当写复位信号Wrrst的状态为1时,同时若写使能信号Wren有效且写控制信号Wrstop为0时,写地址信号Wraddr在写时钟信号Wrclk每个周期进行自加1的操作,同时外部输入的写入数据信号Wrdata就会通过双端口RAM存储模块201的数据输入端口存入到存储单元RAM的第0位地址中。若写使能信号Wren无效或者写控制信号Wrstop为1时,则外部数据无法输入,写地址不会自加1。
步骤6、当读复位信号Rdrst的状态为1时,同时若读使能信号Rden有效且读控制信号Rdstop为0时,读地址信号Rdaddr在读时钟信号Rdclk每个周期行自加1的操作,同时双端口RAM存储模块201中第0位地址中存储的数据就会从数据输出端口读出Rddata。若读使能信号Rden无效或者读控制信号Rdstop为1时,则无法读出数据,读地址不会自加1。步骤5和6可同时进行或分开进行。
步骤7、当写地址信号每次进行自加1操作时,都会在写地址产生逻辑模块202中进行二进制转格雷码的操作,转换完的格雷码会通过写指针信号Wrptr的方式在写指针同步模块207内进行同步以及在写指针计数模块208内进行计数。
步骤8、当读地址信号每次进行自加1操作时,都会在读地址产生逻辑模块203中进行二进制转格雷码的操作,转换完的格雷码会通过读指针信号Rdptr的方式在读指针同步模块206内进行同步以及在读指针计数模块209内进行计数。
步骤9、当写时钟信号Wrclk的频率大于读时钟信号Rdclk的频率时,步骤7中的写指针信号Wrptr输入到写指针计数器模块208中,当写指针信号Wrptr每次加1时,写指针计数器模块208会进行计数,当写指针计数器模块208计数到双端口RAM存储模块的RAM深度大小前两个数时,输出的写指针计数控制信号Wrptren为1,随后写指针计数器模块208自加五个周期后复位重新对写指针信号Wrptr计数,且写指针计数控制信号Wrptren变为0。当然也可以设置其他复位时间。
步骤10、当读时钟信号Rdclk的频率大于写时钟信号Wrclk的频率时,步骤8中的读指针信号Rdptr输入到读指针计数器模块209中,当读指针信号Rdptr每次加1时,读指针计数器模块209会进行计数,当读指针计数器模块209计数到双端口RAM存储模块的RAM深度大小前两个数时,输出的读指针计数控制信号Rdptren为1,随后读指针计数器模块209自加如五个周期后复位重新对读指针信号Rdptr计数,且读指针计数控制信号Rdptren变为0。
步骤11、从写地址产生逻辑模块202输出的写指针信号Wrptr会经过写指针同步模块207的两个D触发器,时序上延时两拍得到同步到读时钟域的信号Wrptr2送入读空判断模块205。
步骤12、从读地址产生逻辑模块203输出的读指针信号Rdptr会经过读指针同步模块206的两个D触发器,时序上延时两拍得到同步到写时钟域的信号Rdptr2送入写满判断模块204。
步骤13、步骤12中的信号Rdptr2与输入到写满判断模块204的写指针信号Wrptr在写时钟域进行比较,判断逻辑为:写指针信号Wrptr和同步过来的信号Rdptr2的最高位MSB不相等、次高位也不相等,剩下的位数全部相等则说明写满,写满判断信号Wrfull输出为1。
步骤14、步骤11中的信号Wrptr2与输入到读空判断模块205的读指针信号Rdptr在读时钟域进行比较,判断逻辑为:读指针信号Rdptr和同步过来的信号wptr2完全相等则说明读空,读空判断信号Rdempty输出为1。
步骤15、如此循环上述过程。
综上,本发明结合异步先入先出FIFO的正常工作原理,通过读写指针在各自时钟域中每一个数据自加1的特点,设计了用于计数和控制的模块,通过与读空和写满的逻辑判断对读写地址进行控制,能够在不增加RAM深度且不影响系统整体运行速度的情况下,使数据正常的写入和读出。
本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

Claims (5)

1.一种异步先入先出的数据缓存控制器,其特征在于,包括双端口RAM存储模块、写地址产生逻辑模块、读地址产生逻辑模块、写满判断模块、读空判断模块、读指针同步模块、写指针同步模块、写指针计数模块和读指针计数模块,
所述写地址产生逻辑模块的时钟端连接写时钟信号,其复位端连接写复位信号,其使能端连接写使能信号,其控制端连接写控制信号,其地址输出端输出写地址信号,其指针输出端连接写指针信号;
当所述写控制信号为低电平时,所述写地址产生逻辑模块在所述写时钟信号的每个周期将写地址信号和写指针信号的编码自加1后输出;当所述写控制信号为高电平时,所述写地址产生逻辑模块输出的写地址信号和写指针信号的编码停止自加1保持不变;
所述读地址产生逻辑模块的时钟端连接读时钟信号,其复位端连接读复位信号,其使能端连接读使能信号,其控制端连接读控制信号,其地址输出端输出读地址信号,其指针输出端连接读指针信号;
当所述读控制信号为低电平时,所述读地址产生逻辑模块在所述读时钟信号的每个周期将读地址信号和读指针信号的编码自加1后输出;当所述读控制信号为高电平时,所述读地址产生逻辑模块输出的读地址信号和读指针信号的编码停止自加1保持不变;
所述双端口RAM存储模块包括写控制单元、读控制单元和存储单元,
所述存储单元的数据输入端连接写入数据信号,其数据输出端连接读出数据信号;
所述写控制单元的时钟端连接所述写时钟信号,其复位端连接所述写复位信号,其使能端连接所述写使能信号,其地址输入端连接所述写地址信号,所述写控制单元用于控制所述写入数据信号在写时钟域下存入到所述存储单元中对应地址;
所述读控制单元的时钟端连接所述读时钟信号,其复位端连接所述读复位信号,其使能端连接所述读使能信号,其地址输入端连接所述读地址信号,所述读控制单元用于在读时钟域下将所述存储单元中对应地址的数据读出获得所述读出数据信号;
所述写指针计数模块用于对所述写指针信号进行计数,当计数结果达到设定值时产生高电平的写指针计数控制信号;
所述读指针计数模块用于对所述读指针信号进行计数,当计数结果达到设定值时产生高电平的读指针计数控制信号;
所述读指针同步模块用于将所述读指针信号同步到写时钟域;
所述写指针同步模块用于将所述写指针信号同步到读时钟域;
所述写满判断模块的时钟端连接所述写时钟信号,其复位端连接所述写复位信号,所述写满判断模块用于比较所述写地址产生逻辑模块输出的写指针信号和所述读指针信号经所述读指针同步模块同步后的信号,当两者只有最高位和次高位不同时输出高电平的写满判断信号;
所述读空判断模块的时钟端连接所述读时钟信号,其复位端连接所述读复位信号,所述读空判断模块用于比较所述读地址产生逻辑模块输出的读指针信号和所述写指针信号经所述写指针同步模块同步后的信号,当两者完全相同时输出高电平的读空判断信号;
所述写指针计数控制信号和所述写满判断信号相或后产生所述写控制信号;
所述读指针计数控制信号和所述读空判断信号相或后产生所述读控制信号。
2.根据权利要求1所述的异步先入先出的数据缓存控制器,其特征在于,所述读地址信号为二进制编码形式输出,所述读指针信号为二进制转格雷码形式输出;所述写地址信号为二进制编码形式输出,所述写指针信号为二进制转格雷码形式输出。
3.根据权利要求1所述的异步先入先出的数据缓存控制器,其特征在于,所述读指针同步模块包括两个D触发器,所述读指针信号经过两个D触发器延时两次后输出到所述写满判断模块与所述写指针信号进行比较;所述写指针同步模块包括两个D触发器,所述写指针信号经过两个D触发器延时两次后输出到所述读空判断模块与所述读指针信号进行比较。
4.根据权利要求1所述的异步先入先出的数据缓存控制器,其特征在于,所述写指针计数模块的判断逻辑为,对所述写指针信号进行计数,当计数到所述双端口RAM存储模块地址深度的前两个数时,输出高电平的写指针计数控制信号,否则输出低电平的写指针计数控制信号;
所述读指针计数模块的判断逻辑为,对所述读指针信号进行计数,当计数到所述双端口RAM存储模块地址深度的前两个数时,输出高电平的读指针计数控制信号,否则输出低电平的读指针计数控制信号。
5.根据权利要求1所述的异步先入先出的数据缓存控制器,其特征在于,所述写指针计数模块输出高电平的写指针计数控制信号后,所述写指针计数模块经过所述写时钟信号的五个周期后复位;
所述读指针计数模块输出高电平的读指针计数控制信号后,所述读指针计数模块经过所述读时钟信号的五个周期后复位。
CN202010150189.8A 2020-03-06 2020-03-06 一种异步先入先出的数据缓存控制器 Active CN111367495B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010150189.8A CN111367495B (zh) 2020-03-06 2020-03-06 一种异步先入先出的数据缓存控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010150189.8A CN111367495B (zh) 2020-03-06 2020-03-06 一种异步先入先出的数据缓存控制器

Publications (2)

Publication Number Publication Date
CN111367495A true CN111367495A (zh) 2020-07-03
CN111367495B CN111367495B (zh) 2023-03-28

Family

ID=71208738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010150189.8A Active CN111367495B (zh) 2020-03-06 2020-03-06 一种异步先入先出的数据缓存控制器

Country Status (1)

Country Link
CN (1) CN111367495B (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966628A (zh) * 2020-07-30 2020-11-20 电子科技大学 一种多核组合式大容量数据同步存储方法
CN112181356A (zh) * 2020-09-28 2021-01-05 中国人民解放军国防科技大学 一种可配置的多进多出fifo的设计方法及装置
CN112199071A (zh) * 2020-10-26 2021-01-08 中国兵器工业集团第二一四研究所苏州研发中心 一种地址可控异步缓存器及异步缓存方法
CN112241381A (zh) * 2020-08-31 2021-01-19 西安空间无线电技术研究所 一种基于空闲时隙准实时刷新的星载接口系统
CN112286489A (zh) * 2020-10-21 2021-01-29 深圳市紫光同创电子有限公司 Fifo存储器及fifo存储器的处理方法
CN112416823A (zh) * 2020-11-15 2021-02-26 珠海市一微半导体有限公司 一种突发模式下的传感器数据读写控制方法、系统及芯片
CN112804321A (zh) * 2021-01-08 2021-05-14 广州航天海特系统工程有限公司 以太网数据包的缓存转发方法、装置、设备及存储介质
CN112882657A (zh) * 2021-02-08 2021-06-01 浙江大华技术股份有限公司 数据读取方法及装置、存储介质、电子装置
CN113126926A (zh) * 2021-04-21 2021-07-16 北京物芯科技有限责任公司 一种ram访问验证方法、设备及装置
CN113507424A (zh) * 2021-05-08 2021-10-15 中国电子科技集团公司第十四研究所 一种fc引擎帧接收缓存管理机制
CN113760795A (zh) * 2021-08-30 2021-12-07 浪潮电子信息产业股份有限公司 一种异步fifo存储器读写控制方法、装置及设备
CN113867681A (zh) * 2021-09-30 2021-12-31 海光信息技术股份有限公司 数据处理方法及装置、数据处理设备和存储介质
CN114089946A (zh) * 2022-01-20 2022-02-25 深圳云豹智能有限公司 一种fifo装置和数据处理系统
CN114138693A (zh) * 2021-11-25 2022-03-04 中国电子科技集团公司第五十四研究所 一种基于sram的等效双端口ram装置
CN114265796A (zh) * 2021-11-22 2022-04-01 四川和芯微电子股份有限公司 Ram的读写控制方法
CN114859341A (zh) * 2021-02-03 2022-08-05 上海禾赛科技有限公司 同步电路、数据处理芯片及雷达
CN115033504A (zh) * 2022-06-30 2022-09-09 斯凯瑞利(北京)科技有限公司 一种带回退机制的fifo存储器及读写方法、通信系统
CN115481079A (zh) * 2021-06-15 2022-12-16 珠海一微半导体股份有限公司 一种数据调度系统、可重构处理器及数据调度方法
CN116521604A (zh) * 2023-07-05 2023-08-01 芯耀辉科技有限公司 一种同步数据的方法及相关装置
CN112416823B (zh) * 2020-11-15 2024-05-03 珠海一微半导体股份有限公司 一种突发模式下的传感器数据读写控制方法、系统及芯片

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091429A1 (en) * 2003-10-24 2005-04-28 Anand Pande System and method for designing data structures
CN1862482A (zh) * 2006-04-12 2006-11-15 华为技术有限公司 一种先入先出存储器及其输出空满标志的方法
CN1963796A (zh) * 2006-12-11 2007-05-16 北京中星微电子有限公司 一种异步先入先出方法、系统及发送装置
CN101034344A (zh) * 2007-04-12 2007-09-12 华为技术有限公司 先入先出存储器的门限配置方法、装置及先入先出存储器
CN101271387A (zh) * 2008-04-28 2008-09-24 北京中星微电子有限公司 数据缓存器溢出的自动解除方法和装置
CN101681249A (zh) * 2007-05-16 2010-03-24 Nxp股份有限公司 先进先出缓冲器
CN102375720A (zh) * 2010-08-20 2012-03-14 瑞萨电子(中国)有限公司 异步先入先出存储器fifo的读写控制处理方法、电路及系统
CN103678163A (zh) * 2012-09-18 2014-03-26 腾讯科技(深圳)有限公司 数据流的切换方法、装置及系统
CN104484011A (zh) * 2014-11-25 2015-04-01 上海高性能集成电路设计中心 一种分布控制双时钟异步发送、接收模块及fifo装置
CN105511835A (zh) * 2014-09-24 2016-04-20 深圳市中兴微电子技术有限公司 一种异步fifo控制器及防止异步fifo缓存数据溢出的方法
CN107133011A (zh) * 2017-04-25 2017-09-05 电子科技大学 一种示波记录仪的多通道数据存储方法
CN107562549A (zh) * 2017-08-21 2018-01-09 西安电子科技大学 基于片上总线和共享内存的异构众核asip架构
CN107577623A (zh) * 2017-07-19 2018-01-12 成都华微电子科技有限公司 跨时钟域异步fifo及数据处理方法
CN108011792A (zh) * 2017-11-24 2018-05-08 中国航空工业集团公司西安航空计算技术研究所 一种1394总线事务层-链路层数据包接收电路及方法
CN110825344A (zh) * 2019-11-12 2020-02-21 天津飞腾信息技术有限公司 一种异步数据传输方法和结构

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091429A1 (en) * 2003-10-24 2005-04-28 Anand Pande System and method for designing data structures
CN1862482A (zh) * 2006-04-12 2006-11-15 华为技术有限公司 一种先入先出存储器及其输出空满标志的方法
CN1963796A (zh) * 2006-12-11 2007-05-16 北京中星微电子有限公司 一种异步先入先出方法、系统及发送装置
CN101034344A (zh) * 2007-04-12 2007-09-12 华为技术有限公司 先入先出存储器的门限配置方法、装置及先入先出存储器
CN101681249A (zh) * 2007-05-16 2010-03-24 Nxp股份有限公司 先进先出缓冲器
CN101271387A (zh) * 2008-04-28 2008-09-24 北京中星微电子有限公司 数据缓存器溢出的自动解除方法和装置
CN102375720A (zh) * 2010-08-20 2012-03-14 瑞萨电子(中国)有限公司 异步先入先出存储器fifo的读写控制处理方法、电路及系统
CN103678163A (zh) * 2012-09-18 2014-03-26 腾讯科技(深圳)有限公司 数据流的切换方法、装置及系统
CN105511835A (zh) * 2014-09-24 2016-04-20 深圳市中兴微电子技术有限公司 一种异步fifo控制器及防止异步fifo缓存数据溢出的方法
CN104484011A (zh) * 2014-11-25 2015-04-01 上海高性能集成电路设计中心 一种分布控制双时钟异步发送、接收模块及fifo装置
CN107133011A (zh) * 2017-04-25 2017-09-05 电子科技大学 一种示波记录仪的多通道数据存储方法
CN107577623A (zh) * 2017-07-19 2018-01-12 成都华微电子科技有限公司 跨时钟域异步fifo及数据处理方法
CN107562549A (zh) * 2017-08-21 2018-01-09 西安电子科技大学 基于片上总线和共享内存的异构众核asip架构
CN108011792A (zh) * 2017-11-24 2018-05-08 中国航空工业集团公司西安航空计算技术研究所 一种1394总线事务层-链路层数据包接收电路及方法
CN110825344A (zh) * 2019-11-12 2020-02-21 天津飞腾信息技术有限公司 一种异步数据传输方法和结构

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SAMUEL COOGAN、MURAT ARCAK: "Symmetric Monotone Embedding of Traffic Flow Networks with First-In-First-Out Dynamics", 《IFAC PAPERSONLINE》 *
李赛、蒋林: "OTN中异步FIFO的设计与实现", 《光通信研究》 *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966628A (zh) * 2020-07-30 2020-11-20 电子科技大学 一种多核组合式大容量数据同步存储方法
CN111966628B (zh) * 2020-07-30 2023-04-18 电子科技大学 一种多核组合式大容量数据同步存储方法
CN112241381A (zh) * 2020-08-31 2021-01-19 西安空间无线电技术研究所 一种基于空闲时隙准实时刷新的星载接口系统
CN112241381B (zh) * 2020-08-31 2023-10-13 西安空间无线电技术研究所 一种基于空闲时隙准实时刷新的星载接口系统
CN112181356A (zh) * 2020-09-28 2021-01-05 中国人民解放军国防科技大学 一种可配置的多进多出fifo的设计方法及装置
CN112286489A (zh) * 2020-10-21 2021-01-29 深圳市紫光同创电子有限公司 Fifo存储器及fifo存储器的处理方法
CN112199071A (zh) * 2020-10-26 2021-01-08 中国兵器工业集团第二一四研究所苏州研发中心 一种地址可控异步缓存器及异步缓存方法
CN112199071B (zh) * 2020-10-26 2024-02-09 中国兵器工业集团第二一四研究所苏州研发中心 一种地址可控异步缓存器及异步缓存方法
CN112416823A (zh) * 2020-11-15 2021-02-26 珠海市一微半导体有限公司 一种突发模式下的传感器数据读写控制方法、系统及芯片
CN112416823B (zh) * 2020-11-15 2024-05-03 珠海一微半导体股份有限公司 一种突发模式下的传感器数据读写控制方法、系统及芯片
CN112804321A (zh) * 2021-01-08 2021-05-14 广州航天海特系统工程有限公司 以太网数据包的缓存转发方法、装置、设备及存储介质
CN114859341A (zh) * 2021-02-03 2022-08-05 上海禾赛科技有限公司 同步电路、数据处理芯片及雷达
CN112882657B (zh) * 2021-02-08 2023-07-14 浙江大华技术股份有限公司 数据读取方法及装置、存储介质、电子装置
CN112882657A (zh) * 2021-02-08 2021-06-01 浙江大华技术股份有限公司 数据读取方法及装置、存储介质、电子装置
CN113126926A (zh) * 2021-04-21 2021-07-16 北京物芯科技有限责任公司 一种ram访问验证方法、设备及装置
CN113507424B (zh) * 2021-05-08 2023-11-21 中国电子科技集团公司第十四研究所 一种fc引擎帧接收缓存管理系统
CN113507424A (zh) * 2021-05-08 2021-10-15 中国电子科技集团公司第十四研究所 一种fc引擎帧接收缓存管理机制
WO2022262341A1 (zh) * 2021-06-15 2022-12-22 珠海一微半导体股份有限公司 一种数据调度系统、可重构处理器及数据调度方法
CN115481079A (zh) * 2021-06-15 2022-12-16 珠海一微半导体股份有限公司 一种数据调度系统、可重构处理器及数据调度方法
CN113760795A (zh) * 2021-08-30 2021-12-07 浪潮电子信息产业股份有限公司 一种异步fifo存储器读写控制方法、装置及设备
CN113760795B (zh) * 2021-08-30 2024-04-26 浪潮电子信息产业股份有限公司 一种异步fifo存储器读写控制方法、装置及设备
CN113867681A (zh) * 2021-09-30 2021-12-31 海光信息技术股份有限公司 数据处理方法及装置、数据处理设备和存储介质
CN113867681B (zh) * 2021-09-30 2024-03-08 海光信息技术股份有限公司 数据处理方法及装置、数据处理设备和存储介质
CN114265796A (zh) * 2021-11-22 2022-04-01 四川和芯微电子股份有限公司 Ram的读写控制方法
CN114138693A (zh) * 2021-11-25 2022-03-04 中国电子科技集团公司第五十四研究所 一种基于sram的等效双端口ram装置
CN114089946A (zh) * 2022-01-20 2022-02-25 深圳云豹智能有限公司 一种fifo装置和数据处理系统
CN114089946B (zh) * 2022-01-20 2022-04-19 深圳云豹智能有限公司 一种fifo装置和数据处理系统
CN115033504A (zh) * 2022-06-30 2022-09-09 斯凯瑞利(北京)科技有限公司 一种带回退机制的fifo存储器及读写方法、通信系统
CN116521604A (zh) * 2023-07-05 2023-08-01 芯耀辉科技有限公司 一种同步数据的方法及相关装置
CN116521604B (zh) * 2023-07-05 2024-03-19 芯耀辉科技有限公司 一种同步数据的方法及相关装置

Also Published As

Publication number Publication date
CN111367495B (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
CN111367495B (zh) 一种异步先入先出的数据缓存控制器
US10318468B2 (en) FPGA-based interface signal remapping method
US6263410B1 (en) Apparatus and method for asynchronous dual port FIFO
US5079693A (en) Bidirectional FIFO buffer having reread and rewrite means
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
JP3645584B2 (ja) データ転送同期装置
US6845414B2 (en) Apparatus and method of asynchronous FIFO control
CN116089343A (zh) 一种基于axi的数据存储方法、装置、存储介质及设备
CN111949582B (zh) 指针同步装置及方法、异步fifo电路、处理器系统
JP2004062630A (ja) Fifoメモリ及び半導体装置
KR100598010B1 (ko) 클럭 분배기, 클럭 분배기를 포함한 시스템, 클럭 분배방법 및 클럭 분배를 이용한 데이터 읽기 및 쓰기 방법
CN112712829A (zh) 一种跨时钟域的寄存器读写电路及方法
US6098139A (en) Frequency independent asynchronous clock crossing FIFO
KR940003611B1 (ko) 클럭 및 제어 신호 발생 회로
CN111399802B (zh) 多电源域多时钟域先进先出队列、集成电路芯片及计算机设备
CN115361012A (zh) 一种低功耗异步先入先出缓存器电路及芯片
CN115202612A (zh) 基于异步fifo的超导单磁通量子跨时钟域通信方法及系统
CN209765494U (zh) 一种异步fifo装置
CN110618950B (zh) 一种异步fifo读写控制电路及方法、可读存储介质及终端
CN110705195A (zh) 一种基于fpga的跨时钟域深度自行配置fifo系统
CN219958216U (zh) 一种芯片原型验证调试板
CN218100209U (zh) 多比特异步接口电路
KR100294770B1 (ko) 반도체기억장치
US20080201499A1 (en) Asynchronous Data Buffer

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