CN117311662A - 一种数据清除***及方法 - Google Patents
一种数据清除***及方法 Download PDFInfo
- Publication number
- CN117311662A CN117311662A CN202311188947.5A CN202311188947A CN117311662A CN 117311662 A CN117311662 A CN 117311662A CN 202311188947 A CN202311188947 A CN 202311188947A CN 117311662 A CN117311662 A CN 117311662A
- Authority
- CN
- China
- Prior art keywords
- signal
- read
- write
- clock
- clock domain
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 24
- 230000001360 synchronised effect Effects 0.000 claims description 25
- 230000000295 complement effect Effects 0.000 claims description 9
- 230000002000 scavenging effect Effects 0.000 claims 2
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 16
- 230000015654 memory Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 102100038026 DNA fragmentation factor subunit alpha Human genes 0.000 description 9
- 101000950906 Homo sapiens DNA fragmentation factor subunit alpha Proteins 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 102100038023 DNA fragmentation factor subunit beta Human genes 0.000 description 4
- 101100277639 Homo sapiens DFFB gene Proteins 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000006854 communication Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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/10—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
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的使用范围。
Description
技术领域
本发明涉及异步FIFO技术领域,尤其涉及一种应用于异步先入先出的数据缓存器的数据清除***及方法。
背景技术
在现场可编程门阵列(Field-Programmable Gate Array,FPGA)或专用集成电路(Application Specific Integrated Circuit,ASIC)设计中,先入先出(First In FirstOut,FIFO)存储器常被用作数据缓冲或数据跨时钟同步的部件。FIFO可以根据其读/写时钟的来源,被分为同步FIFO和异步FIFO。同步FIFO的读/写时钟使用同一时钟源,而异步FIFO的读/写时钟为不同的时钟源。异步FIFO结构如图1所示,主要由双口RAM存储模块、读/写控制模块及地址同步模块组成。而同步FIFO由于其读/写时钟位于同一时钟域,因此不需要地址同步电路。
在某些应用场景下,FIFO需要清除内部的数据,例如当FIFO中被写入了无效数据,或者FIFO的读取端未能及时完成数据读取。这种情况下,通常使用FIFO的复位信号来清除其内部的数据。FIFO通过空满信号来指示其内部的数据存储情况,当FIFO中没有数据时,空信号就会有效。
然而,对于异步FIFO,由于其读/写指针位于两个不同的时钟域内,因此在使用复位功能时存在一定的不便。为了解决这个问题,FIFO通常会引出一个复位信号,通过这个复位信号可以同时复位读/写控制模块,如图2所示,为Xilinx公司的FIFO框图。然而,这样的复位信号只能来自读/写时钟域中的其中一个,对于另一个时钟域来说,这个复位信号是异步信号,直接用于复位可能会造成亚稳态。因此,FIFO内部会对这个复位信号进行处理,Xilinx公司的FIFO复位时序如图3所示,通过将其分别同步至两个时钟域内,之后在两个时钟域内分别生效完成对FIFO的复位。然而,这个过程需要保持读/写时钟的有效性,且在复位完成后仍需要等待一段时间才能进行读/写操作,这在某些情况下可能会影响FIFO的使用效率。
发明内容
为了解决以上技术问题,本发明提供了一种应用于异步先入先出的数据缓存器的数据清除***及方法。
本发明所解决的技术问题可以采用以下技术方案实现:
一种数据清除***,应用于一异步先入先出的数据缓存器,包括:
清除信号接口,用于接收一清除信号;其中,所述清除信号位于第一时钟域,未接收到所述清除信号的时钟域为第二时钟域;
判断模块,连接所述清除信号接口,用于在接收到所述清除信号时判断所述第二时钟域的时钟信号是否有效;
地址设置模块,连接所述判断模块,用于在所述第二时钟域的时钟信号有效时,对所述第一时钟域的指针信号进行处理,直至与所述第二时钟域的指针信号相同;以及在所述第二时钟域的时钟信号无效时,将所述第一时钟域的地址信号同步为与所述第二时钟域的地址信号相同,以使所述第一时钟域的指针信号与所述第二时钟域的指针信号同步。
优选地,所述地址设置模块还用于在对所述第一时钟域的指针信号进行处理的同时,输出一用以指示清除状态的清除反馈信号。
优选地,所述第一时钟域为写时钟域,所述第二时钟域为读时钟域;
所述地址设置模块包括:
写地址设置电路,用于在所述读时钟域的读时钟信号有效时,对所述写时钟域的写指针信号以一预设步进递减处理,直至与所述读时钟域的读指针信号相同;以及在所述读时钟信号无效时,将所述写时钟域的写地址信号同步为与所述读时钟域的读地址信号相同,以使所述写指针信号与所述读指针信号同步。
优选地,所述写地址设置电路包括:
第一等号逻辑器,所述第一等号逻辑器的第一端连接所述读指针信号,所述第一等号逻辑器的第二端连接所述写地址信号;
第一触发器,所述第一触发器的输入端连接自身输出端,所述第一触发器的时钟端连接写时钟信号,所述第一触发器的清零端连接所述第一等号逻辑器的输出端,所述第一触发器的预置端连接所述清除信号,所述第一触发器的输出端输出的信号作为清除反馈信号;
第一与门,所述第一与门的第一输入端通过一第一反相器连接所述第一等号逻辑器的输出端,所述第一与门的第二输入端连接所述第一触发器的输出端,所述第一与门的输出端连接一补码计算器;
第一选择器,所述第一选择器的输入端分别连接写时钟使能信号和所述补码计算器的输出端,所述第一选择器的控制端连接所述第一触发器的输出端;
第一加法器,所述第一加法器的输入端分别连接所述第一选择器的输出端和所述写地址信号;
第二选择器,所述第二选择器的输入端分别连接所述第一加法器的输出端和所述读指针信号,所述第二选择器的控制端连接一地址清除信号;
第二触发器,所述第二触发器的输入端连接所述第二选择器的输出,所述第二触发器的时钟输入端连接所述写时钟信号,所述第二触发器的输出端用于输出所述写地址信号。
优选地,所述第一时钟域为读时钟域,所述第二时钟域为写时钟域;
所述地址设置模块包括:
读地址设置电路,用于在所述写时钟域的写时钟信号有效时,对所述读时钟域的读指针信号以一预设步进递增处理,直至与所述写时钟域的写指针信号相同;以及在所述写时钟信号无效时,将所述读时钟域的读地址信号同步为与所述写时钟域的写地址信号相同,以使所述写指针信号与所述读指针信号同步。
优选地,所述读地址设置电路包括:
第三触发器,所述第三触发器的输入端连接所述写指针信号,所述第三触发器的时钟端连接读时钟信号,所述第三触发器的使能端连接所述清除信号;
第二等号逻辑器,所述第二等号逻辑器的第一端连接所述第三触发器的输出端,所述第二等号逻辑器的第二端连接所述读地址信号;
第四触发器,所述第四触发器的输入端连接自身输出端,所述第四触发器的时钟端连接所述读时钟信号,所述第四触发器的清零端连接所述第二等号逻辑器的输出端,所述第四触发器的预置端连接所述清除信号,所述第四触发器的输出端输出的信号作为清除反馈信号;
第二与门,所述第二与门的第一输入端通过一第二反相器连接所述第二等号逻辑器的输出端,所述第二与门的第二输入端连接所述第四触发器的输出端;
或门,所述或门的输入端分别连接读时钟使能信号和所述第二与门的输出端;
第二加法器,所述第二加法器的输入端分别连接所述或门的输出端和所述读地址信号;
第三选择器,所述第三选择器的输入端分别连接所述第二加法器的输出端和所述写指针信号,所述第三选择器的控制端连接一地址清除信号;
第五触发器,所述第五触发器的输入端连接所述第三选择器的输出,所述第五触发器的时钟输入端连接所述读时钟信号,所述第五触发器的输出端用于输出所述读地址信号。
优选地,所述写指针信号以格雷码转二进制码形式输出;
所述读指针信号以格雷码转二进制码形式输出。
优选地,所述清除信号为单周期的脉冲信号。
优选地,所述数据缓存器包括RAM存储模块、写控制模块和读控制模块、读地址同步模块和写地址同步模块;
所述RAM存储模块的写数据端口连接写数据信号,写时钟使能端口连接写时钟使能信号,写地址端口连接写地址信号,写时钟端口连接写时钟信号,读数据端口连接读数据信号,读时钟使能端口连接读时钟使能信号,读地址端口连接读地址信号,读时钟端口连接读时钟信号;
所述写控制模块的写时钟端口连接所述写时钟信号,写使能端口连接写使能信号,写复位端口连接复位信号,读地址同步端口连接所述读地址同步模块的输出,写地址输出端口连接所述写地址设置电路,满信号输出端口用于输出满指示信号;
所述读地址同步模块的输入连接所述读地址信号,读同步时钟端连接所述写时钟信号,读同步复位端口连接所述复位信号;
所述读控制模块的读时钟端口连接所述读时钟信号,读使能端口连接读使能信号,读复位端口连接所述复位信号,写地址同步端口连接所述写地址同步模块的输出,读地址输出端口连接所述读地址设置电路,空信号输出端口用于输出空指示信号;
所述写地址同步模块的输入连接所述写地址信号,写同步时钟端连接所述读时钟信号,写同步复位端口连接所述复位信号。
本发明还提供一种数据清除方法,应用于如上述的数据清除***,包括:
接收一清除信号;其中,所述清除信号位于第一时钟域,未接收到所述清除信号的时钟域为第二时钟域;
在接收到所述清除信号时判断所述第二时钟域的时钟信号是否有效;
在所述第二时钟域的时钟信号有效时,对所述第一时钟域的指针信号进行处理,直至与所述第二时钟域的指针信号相同;以及
在所述第二时钟域的时钟信号无效时,将所述第一时钟域的地址信号同步为与所述第二时钟域的地址信号相同,以使所述第一时钟域的指针信号与所述第二时钟域的指针信号同步。
本发明技术方案的优点或有益效果在于:
本发明通过在传统FIFO的基础上增加了独立的清除信号接口,能够实现对FIFO中存储内容的清除,且清除信号来自读/写时钟域中的其中一个,保证在清除时即使另一个时钟信号失效,清除操作也可以正常进行,拓展了FIFO的使用范围。
附图说明
图1为现有技术中,异步FIFO结构示意图;
图2为现有技术中,Xilinx公司的FIFO框图;
图3为现有技术中,Xilinx公司的FIFO复位时序图;
图4为本发明的较佳实施例中,数据清除***应用于异步先入先出的数据缓存器的示意图;
图5为本发明的较佳实施例中,写时钟域的写地址设置电路的示意图;
图6为本发明的较佳实施例中,读时钟域的读地址设置电路的示意图;
图7为本发明的较佳实施例中,清除信号在写时钟域,使用写地址清除信号wclear_dir清除的仿真时序示意图;
图8为本发明的较佳实施例中,清除信号在写时钟域,使用写清除信号wclear清除的仿真时序示意图;
图9为本发明的较佳实施例中,清除信号在读时钟域,使用读清除信号rclear清除时的仿真时序示意图;
图10为本发明FIFO应用实施例一的结构示意图;
图11为本发明FIFO应用实施例二的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
现有的FIFO中通过空/满信号来指示其内部数据存储的情况。当FIFO中没有数据时,空信号有效。空信号是通过比较读/写指针来产生的。
根据FIFO先入先出的特性可知,在操作过程中,数据首先被写入FIFO,然后再被读取。当数据被写入时,写指针会增加。随后,当数据被读取时,读指针会增加。当读指针增加至与写指针相等时,FIFO中的数据就被全部读取完毕,此时空信号有效。
目前,FIFO的清除操作通常通过复位功能来实现。复位功能将FIFO中的读/写指针全部清零,此时,读指针和写指针相等,空信号会指示FIFO中没有可供读取的数据。对于异步FIFO,读/写指针分别位于两个不同的时钟域内,如图1中所示,读/写控制模块需要由其对应时钟域的复位信号进行复位,从而导致使用不便。因此FIFO通常会引出一个复位信号,如图2所示的Xilinx公司的FIFO框图,通过该复位信号可以复位同时复位读/写控制模块。这个复位信号必然只能来自读/写时钟域中的其中一个。对于另一个时钟域来说,这个复位信号是异步信号,直接用于复位可能会造成亚稳态,因此FIFO内部会对这个复位信号进行处理。
Xilinx公司的FIFO复位时序如图3所示。从图3中可以看到,复位信号需要保持8个慢时钟周期,且复位信号有效后,需要在读/写时钟域各等待7个时钟周期后才真正生效。这个过程便是将复位信号分别同步至两个时钟域内,之后在两个时钟域内分别生效完成对FIFO的复位。由于需要将复位信号同步至读/写时钟域内,因此在复位操作时,读/写时钟均必须保持有效,在复位过程中一旦有时钟失效,不仅会导致复位操作失效,而且会影响其他功能,需要在时钟有效时重新复位FIFO后才能正常使用。同时在复位完成后仍需要等待60个慢时钟才可以进行读/写操作,若FIFO深度较浅时,如FIFO深度32,即便完成一次FIFO的读空操作,所用时间也较复位所需要时间短。
根据FIFO的结构特点可知,写指针先变化,读指针后变化。在FIFO中,当读指针追上写指针,即读指针等于写指针时,空信号有效,此时FIFO内存为空。因此,清除FIFO的操作本质是在没有进行读/写操作的情况下,改变读/写指针,使得读指针与写指针相等,从而使空信号有效,实现FIFO的清除操作。
本发明实施例中异步FIFO包括RAM存储模块100、写控制模块201和读控制模块202、读地址同步模块301和写地址同步模块302;
RAM存储模块100的写数据端口连接写数据信号wdata,写时钟使能端口连接写时钟使能信号wclken,写地址端口连接写地址信号waddr,写时钟端口连接写时钟信号wclk,读数据端口连接读数据信号rdata,读时钟使能端口连接读时钟使能信号rclken,读地址端口连接读地址信号raddr,读时钟端口连接读时钟信号rclk;
进一步的,其中,该写时钟使能信号wclken由满指示信号full反相后和写使能信号wen进行“与”操作得到;读时钟使能信号rclken由空指示信号empty反相后和读使能信号ren进行“与”操作得到。
写控制模块201的写时钟端口连接写时钟信号wclk,写使能端口连接写使能信号wen,写复位端口连接复位信号rstn,读地址同步端口连接读地址同步模块301的输出,写地址输出端口连接写地址设置电路51,满信号输出端口用于输出满指示信号full;
读地址同步模块301的输入连接读地址信号raddr,读同步时钟端连接写时钟信号wclk,读同步复位端口连接复位信号rstn;
读控制模块202的读时钟端口连接读时钟信号rclk,读使能端口连接读使能信号ren,读复位端口连接复位信号rstn,写地址同步端口连接写地址同步模块302的输出,读地址输出端口连接读地址设置电路52,空信号输出端口用于输出空指示信号empty;
写地址同步模块302的输入连接写地址信号waddr,写同步时钟端连接读时钟信号rclk,写同步复位端口连接复位信号rstn。
进一步的,在异步FIFO中,由于读/写指针位于不同的时钟域,为了进行读/写指针信号waddr_rclk的比较,需要对读/写指针进行同步,以提高数据传输的稳定性。考虑到读/写指针是多位信号,直接同步会由于各位之间的信号传输延迟存在一定的差异导致亚稳态,影响电路稳定,因此异步FIFO中的读/写地址同步电路通常使用格雷码(Gray)进行。在数值连续变化时,相邻的两个数据对应的格雷码之间只有一位数据不同,这样进行同步时仅有一位发生了变化,从而提高数据传输的稳定性。读/写地址同步电路便是先将二进制数据转换为格雷码,之后在目标时钟域内通过两级寄存器同步。
进一步的,本发明实施例中写控制模块201、读地址同步模块301和写地址设置电路51均工作在写时钟域;读控制模块202、写地址同步模块302和读地址设置电路52均工作在读时钟域。相比传统FIFO中使用写时钟域的复位信号w_rstn和读时钟域的复位信号r_rstn进行复位,本发明实施例中这6个模块中均共用同一个复位信号rstn。
参见图4,本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种数据清除***,应用于一异步先入先出的数据缓存器,包括:
清除信号接口,用于接收一清除信号;其中,清除信号位于第一时钟域,未接收到清除信号的时钟域为第二时钟域;
判断模块,连接清除信号接口,用于在接收到清除信号时判断第二时钟域的时钟信号是否有效;
地址设置模块,连接判断模块,用于在第二时钟域的时钟信号有效时,对第一时钟域的指针信号进行处理,直至与第二时钟域的指针信号相同;以及在第二时钟域的时钟信号无效时,将第一时钟域的地址信号同步为与第二时钟域的地址信号相同,以使第一时钟域的指针信号与第二时钟域的指针信号同步。
具体的,在本实施例中,异步FIFO中包括写时钟域和读时钟域,当带有清除功能的FIFO的清除信号有效时,清除信号来自读/写时钟域中的其中一个。对于读/写指针的处理主要包括两种情况的处理方式,分别是另一个时钟域不存在有效时钟的情况以及另一个时钟域存在有效时钟的情况;
当另一个时钟域不存在有效时钟时,清除信号所在时钟域的指针变化值无法立即传输至另一时钟域,此时清除信号所在时钟域的指针变化无论是按步进为1递增或者递减还是直接修改为目标地址,都需要在另一个时钟有效时才能后同步。因此,在这种情况下,本发明实施例可以在清除信号有效时,直接修改清除信号所在时钟域的地址,使得读指针和写指针相等,完成FIFO清除功能。具体操作为:在清除信号(clear)有效时,写地址信号waddr被设置为同步至写时钟域内的读地址信号,即读指针信号raddr_wclk。此时,清除信号命名为地址清除信号(rclear_dir、wclear_dir),通过该地址清除信号可以直接同步读/写指针,从而实现同步。
当另一个时钟域存在有效时钟时,为了保证格雷码跨时钟传输的有效性,地址仍必须按顺序变化,不能有跳变,否则使用格雷码便失去意义。如上文所述,FIFO中写指针在读指针之前变化,因此若清除信号在写时钟域,写指针一般是大于读指针的。在一些实施方式中,若清除信号在写时钟域时,写指针应以步进1递减直至与读指针相等。同样地,在一些实施方式中,若清除信号在读时钟域时,读指针应以步进1递增直至与写指针相等。
在一些实施方式中,写指针以步进1递减的操作在具体实现的电路中可通过加1的补码方式实现减法。
作为优选的实施方式,其中,地址设置模块还用于在对第一时钟域(即清除信号所在的时钟域)的指针信号进行处理的同时,输出一用以指示清除状态的清除反馈信号。
具体的,地址设置模块在处理指针信号过程中,考虑到该过程不会立即完成,需要等待指针递增或递减完成。因此,在本实施例中,地址设置模块在等待过程中输出用以指示清除状态的清除反馈信号(例如rclear_fb、wclear_fb),以便向外部电路反馈清除操作的状态通过这种有效的清除状态指示,可使外部电路更好地理解并响应清除操作的进度和结果。
作为优选的实施方式,其中,第一时钟域为写时钟域,第二时钟域为读时钟域;
地址设置模块包括:
写地址设置电路51,用于在读时钟域的读时钟信号有效时,对写时钟域的写指针信号waddr_rclk以一预设步进递减处理,直至与读时钟域的读指针信号raddr_wclk相同;以及在读时钟信号无效时,将写时钟域的写地址信号waddr同步为与读时钟域的读地址信号相同,以使写指针信号waddr_rclk与读指针信号raddr_wclk同步。
作为优选的实施方式,其中,如图5所示,写地址设置电路51包括:
第一等号逻辑器511,第一等号逻辑器511的第一端连接读指针信号raddr_wclk,第一等号逻辑器511的第二端连接写地址信号waddr;该器件在两个输入数据相等时,输出有效电平,不等时输出无效电平;输入数据相等时,表示FIFO已清除完成,该逻辑器件输出的有效电平可以及时控制后级电路停止修改写地址。
第一触发器DFF1,第一触发器DFF1的输入端连接自身输出端,第一触发器DFF1的时钟端连接写时钟信号wclk,第一触发器DFF1的清零端连接第一等号逻辑器511的输出端,第一触发器DFF1的预置端连接清除信号,该清除信号为写清除信号wclear,第一触发器DFF1的输出端输出的信号作为清除反馈信号,该清除反馈信号为写清除反馈信号wclear_fb;
第一与门513,第一与门513的第一输入端通过一第一反相器512连接第一等号逻辑器511的输出端,第一与门513的第二输入端连接第一触发器DFF1的输出端,第一与门513的输出端连接一补码计算器514;
第一选择器515,第一选择器515的输入端分别连接写时钟使能信号wclken和补码计算器514的输出端,第一选择器515的控制端连接第一触发器DFF1的输出端;
第一加法器516,第一加法器516的输入端分别连接第一选择器515的输出端和写地址信号waddr;
第二选择器517,第二选择器517的输入端分别连接第一加法器516的输出端和读指针信号raddr_wclk,第二选择器517的控制端连接一地址清除信号,该地址清除信号为写地址清除信号wclear_dir;
第二触发器DFF2,第二触发器DFF2的输入端连接第二选择器517的输出,第二触发器DFF2的时钟输入端连接写时钟信号wclk,第二触发器DFF2的输出端用于输出写地址信号waddr。
进一步的,第一触发器DFF1和第二触发器DFF2还分别包括复位端,复位端连接复位信号rstn。
进一步的,其中,该写时钟使能信号wclken由第三与门518对满指示信号full反相后和写使能信号wen进行“与”操作得到。
在一些实施方式中,该补码计算器514通过加1的补码方式实现减法。
作为优选的实施方式,其中,第一时钟域为读时钟域,第二时钟域为写时钟域;
地址设置模块包括:
读地址设置电路52,用于在写时钟域的写时钟信号有效时,对读时钟域的读指针信号raddr_wclk以一预设步进递增处理,直至与写时钟域的写指针信号waddr_rclk相同;以及在写时钟信号无效时,将读时钟域的读地址信号同步为与写时钟域的写地址信号waddr相同,以使写指针信号waddr_rclk与读指针信号raddr_wclk同步。
作为优选的实施方式,其中,如图6所示,读地址设置电路52包括:
第三触发器DFF3,第三触发器DFF3的输入端连接写指针信号waddr_rclk,第三触发器DFF3的时钟端连接读时钟信号rclk,第三触发器DFF3的使能端连接清除信号,该清除信号为读清除信号rclear;
第二等号逻辑器521,第二等号逻辑器521的第一端连接第三触发器DFF3的输出端,第二等号逻辑器521的第二端连接读地址信号raddr;
第四触发器DFF4,第四触发器DFF4的输入端连接自身输出端,第四触发器DFF4的时钟端连接读时钟信号rclk,第四触发器DFF4的清零端连接第二等号逻辑器521的输出端,第四触发器DFF4的预置端连接清除信号,第四触发器DFF4的输出端输出的信号作为清除反馈信号,该清除反馈信号为读清除反馈信号rclear_fb;
第二与门523,第二与门523的第一输入端通过一第二反相器522连接第二等号逻辑器521的输出端,第二与门523的第二输入端连接第四触发器DFF4的输出端;
或门524,或门524的输入端分别连接读时钟使能信号rclken和第二与门523的输出端;
第二加法器525,第二加法器525的输入端分别连接或门524的输出端和读地址信号raddr;
第三选择器526,第三选择器526的输入端分别连接第二加法器525的输出端和写指针信号waddr_rclk,第三选择器526的控制端连接一地址清除信号,该地址清除信号为读地址清除信号rclear_dir;
第五触发器DFF5,第五触发器DFF5的输入端连接第三选择器526的输出,第五触发器DFF5的时钟输入端连接读时钟信号rclk,第五触发器DFF5的输出端用于输出读地址信号raddr。
进一步的,第三触发器DFF3、第四触发器DFF4和第五触发器DFF5还分别包括复位端,复位端连接复位信号rstn。相比现有的异步FIFO,本发明实施例中写地址设置电路51和读地址设置电路52中的复位信号rstn不分读写时钟域,复位信号在所有时钟域中都可以生效,可以确保异步FIFO在任何时候都能被正确复位;复位信号不受时钟域影响,可以避免由于时钟域不同导致的复位不同步问题。
进一步的,其中,读时钟使能信号rclken由第四与门527对空指示信号empty反相后和读使能信号ren进行“与”操作得到。
具体的,现有技术中若清除信号在读时钟域,读反馈信号也在读时钟域,写时钟域无法很好的监测FIFO清除状态,传统FIFO中通过在复位后一定时间内不对FIFO进行读/写来避免这样的问题,考虑到这种方式在一些应用场景下使用存在一定的不便。在本实施例中,首先,写地址信号waddr被写地址同步模块同步至读时钟域,得到读时钟域内的写地址,即写指针信号waddr_rclk;然后,该写指针信号waddr_rclk被图6中的第三触发器DFF3一级寄存,这在清除信号有效时寄存当前写指针信号waddr_rclk。此时,读地址指针只变化到寄存的写指针信号waddr_rclk。
然而,在读指针变化的过程中,FIFO可以写入数据。这样,在读时钟域清除FIFO时,写时钟域内的操作受影响较小。这种方式避免了传统FIFO在复位后一定时间内不对FIFO进行读/写的要求,使其在一些应用场景下使用更为方便。
同时,本发明实施例可以根据应用场景进行裁剪,可以只保留需要使用的一个或几个清除功能,而不需要使用的清除功能可以将相应电路删除,节省电路资源消耗,具有良好的灵活度。例如,如果一个应用只需要使用一个清除功能,那么可以删除其他不必要的清除功能电路,从而减少电路的复杂性和功耗。反之,如果一个应用需要使用多个清除功能,那么可以保留多个清除功能电路,以满足应用的需求。
作为优选的实施方式,其中,写指针信号waddr_rclk以格雷码转二进制码形式输出;
读指针信号raddr_wclk以格雷码转二进制码形式输出。
具体的,在本实施例中,通过将格雷码转换为二进制数据,以便进行地址修改,从而能够改变读/写指针,使得读/写指针相等,进一步提高了数据传输的稳定性
在一些实施方式中,该FIFO中在读时钟域和写时钟域分别还包括格雷码(Gray)转二进制码(Bin)的逻辑模块,用于将格雷码转换为二进制数据,以便进行地址修改。这种实施方式进一步提高了电路的稳定性和可靠性。进一步的,如图4所示,在读/写时钟域内分别增加Gray转Bin,即41和42所示模块,分别得到读指针信号raddr_wclk(写时钟域内的读地址)、写指针信号waddr_rclk(读时钟域内的写地址)。这种实施方式进一步改进了电路的性能,使得读/写指针相等,从而提高了数据传输的稳定性。
作为优选的实施方式,其中,清除信号为单周期的脉冲信号。
具体的,在本实施例中,清除信号为单周期的脉冲信号,清除操作能够立即完成不需要等待。
于上述较佳的实施例中,本发明实施例的目的是设计一种带有清除功能的FIFO,在传统FIFO 1的基础上提供一个独立的清除信号接口,可以更为便捷的清除FIFO中数据。在清除时即使另一个时钟信号失效,清除操作通过设置清除信号所在时钟域的地址指针以完成FIFO清除,即使用wclear_dir信号进行清除,其时序图如图7所示。在清除时即使另一个时钟信号有效时,本发明实施例中清除信号仅需要单周期的脉冲信号,并通过反馈信号指示电路清除操作状态,图8展示了清除信号在写时钟域时的仿真时序。清除信号在读时钟域的时序图如图9所示,可以看到在清除操作过程中,写时钟域进行写操作,能够正常的将写入数据存入FIFO中。从时序图中可以看到本发明中所设计电路在FIFO中一个时钟失效的情况下能够完成清除,拓展了FIFO模块的使用范围。在FIFO的两个时钟域时均有效时,通过脉冲形式的清除信号配合反馈信号指示清除状态,避免了只清除FIFO中少量数据也需要等待很多个时钟周期的问题。
本发明还提供一种数据清除方法,应用于如上述的数据清除***,包括:
接收一清除信号;其中,清除信号位于第一时钟域,未接收到清除信号的时钟域为第二时钟域;
在接收到清除信号时判断第二时钟域的时钟信号是否有效;
在第二时钟域的时钟信号有效时,对第一时钟域的指针信号进行处理,直至与第二时钟域的指针信号相同;以及
在第二时钟域的时钟信号无效时,将第一时钟域的地址信号同步为与第二时钟域的地址信号相同,以使第一时钟域的指针信号与第二时钟域的指针信号同步。
在一些实施方式中,本发明FIFO应用实施例一如图10所示,主要包括SPI接口模块6、传统FIFO(接收FIFO)1、本发明带有清除功能的FIFO(发送FIFO)2、地址译码模块7、数据总线9、数据处理模块8。
电路通过串行外设接口(Serial Peripheral Interface,SPI)模块与外部电路进行数据交互,SPI接口模块6的时钟由外部电路提供,与电路内部时钟为异步关系,需要使用两个异步FIFO来跨时钟域传输接收和发送的数据,内部数据处理电路通过数据总线9读取/写入FIFO。
具体步骤如下:
1.1SPI接口模块6接收外部电路发送的报文,并将报文写入接收FIFO;
1.2数据处理模块8通过数据总线9发送指定地址以读取接收FIFO中数据;
1.3地址译码模块7根据总线地址及读/写控制信号产生读使能信号,同时将接收FWFT FIFO的数据输出端口上的数据置于总线数据端口上;
1.4重复步骤1.2~1.3,直至将接收FWFT FIFO中数据全部读取出来并传送给数据处理模块8;
1.5数据处理模块8处理接收的报文数据;
1.6数据处理模块8计算得到需要给外部电路发送的返回数据;
1.7数据处理模块8通过数据总线9将返回数据置于数据总线9上;
1.8地址译码模块7通过地址以及读/写控制信号,产生写使能信号,将总线上的数据写入发送FWFT FIFO中;
1.9重复1.7~1.8直至数据处理模块8将所有数据发送至发送FIFO中;
1.10外部电路发送读取指令,SPI接口模块6解析得到读取指令;
1.11SPI接口模块6将发送FIFO的数据发送给外部电路;
1.12重复步骤1.11直至将发送FIFO中数据全部发送完成。
1.13SPI通信过程中由于外部电路故障、SPI通信线被干扰等原因可能造成外部电路未能将发送FIFO中数据全部读取,若外部电路重复上述步骤,内部电路需要向发送FIFO写入新的数据,但发送FIFO中仍存在上一次通信过程中写入的数据,这是内部电路需要使能清除接口,将发送FIFO清除后再写入。
在一些实施方式中,本发明FIFO应用实施例二如图11所示,主要包括DDR内存读/写控制电路10、DMD控制灰度调制电路12、握手同步电路11、本发明带清除功能的FIFO 2。
数字微镜器件(DMD)是一种通过控制光路放射方向进行显示的芯片,因其通过反射进行控制的特性,其只能显示二值图像。要使用DMD显示灰度图像,需要利用人眼的视觉暂留在短时间内刷新几张显示时间不同的图像,叠加后显示灰度图像。因此DMD显示灰度图像时,需要不停的向DMD加载图像数据。图像数据一般存储在DDR内存中,其与DMD不共用一个时钟源,且数据读取速率与DMD数据加载速度之间存在一定差异。因此从DDR内存中读取的数据先写入FIFO中,再从FIFO中将数据读取出来加载进DMD。当一幅图像显示完成后,FIFO中可能存在一些数据没有使用,显示下一张图像时这些数据是无用数据,因此在FIFO的读时钟域需要产生清除信号,用于清除FIFO中剩余的无用数据。
具体步骤如下:
2.1DMD控制灰度调制电路12发送DDR内存读取首地址,通过握手同步电路11同步至DDR内存读/写控制电路10;
2.2DDR内存读/写控制电路10根据首地址开始从DDR内存中读取数据,并将数据写入FIFO,直至FIFO写满;
2.3DMD控制灰度调制电路12从FIFO中读取数据并将数据加载进DMD,FIFO非空时DDR内存读/写控制电路10继续从DDR内存中读取数据并写入FIFO;
2.4重复步骤2.3,直至当前显示图像显示结束;
2.5DMD控制灰度调制电路12发送新的DDR内存读取首地址,并通过握手同步电路11同步至DDR内存读/写控制电路10,并等待反馈信号;
2.6DDR内存读/写控制电路10收到地址后,返回控制信号,并等待新的读取开始控制信号;
2.7DMD控制灰度调制电路12收到反馈信号后,产生FIFO清除信号;
2.8清除信号产生后,DMD控制灰度调制电路12发送DDR内存读取开始信号;
2.9重复步骤2.2到2.8直至所有图像显示结束。
采用上述技术方案的优点或有益效果在于:本发明通过在传统FIFO的基础上增加了独立的清除信号接口,能够实现对FIFO中存储内容的清除,且清除信号来自读/写时钟域中的其中一个,保证在清除时即使另一个时钟信号失效,清除操作也可以正常进行,拓展了FIFO的使用范围。
以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (10)
1.一种数据清除***,应用于一异步先入先出的数据缓存器,其特征在于,包括:
清除信号接口,用于接收一清除信号;其中,所述清除信号位于第一时钟域,未接收到所述清除信号的时钟域为第二时钟域;
判断模块,连接所述清除信号接口,用于在接收到所述清除信号时判断所述第二时钟域的时钟信号是否有效;
地址设置模块,连接所述判断模块,用于在所述第二时钟域的时钟信号有效时,对所述第一时钟域的指针信号进行处理,直至与所述第二时钟域的指针信号相同;以及在所述第二时钟域的时钟信号无效时,将所述第一时钟域的地址信号同步为与所述第二时钟域的地址信号相同,以使所述第一时钟域的指针信号与所述第二时钟域的指针信号同步。
2.根据权利要求1所述的数据清除***,其特征在于,所述地址设置模块还用于在对所述第一时钟域的指针信号进行处理的同时,输出一用以指示清除状态的清除反馈信号。
3.根据权利要求1所述的数据清除***,其特征在于,所述第一时钟域为写时钟域,所述第二时钟域为读时钟域;
所述地址设置模块包括:
写地址设置电路,用于在所述读时钟域的读时钟信号有效时,对所述写时钟域的写指针信号以一预设步进递减处理,直至与所述读时钟域的读指针信号相同;以及在所述读时钟信号无效时,将所述写时钟域的写地址信号同步为与所述读时钟域的读地址信号相同,以使所述写指针信号与所述读指针信号同步。
4.根据权利要求3所述的数据清除***,其特征在于,所述写地址设置电路包括:
第一等号逻辑器,所述第一等号逻辑器的第一端连接所述读指针信号,所述第一等号逻辑器的第二端连接所述写地址信号;
第一触发器,所述第一触发器的输入端连接自身输出端,所述第一触发器的时钟端连接写时钟信号,所述第一触发器的清零端连接所述第一等号逻辑器的输出端,所述第一触发器的预置端连接所述清除信号,所述第一触发器的输出端输出的信号作为清除反馈信号;
第一与门,所述第一与门的第一输入端通过一第一反相器连接所述第一等号逻辑器的输出端,所述第一与门的第二输入端连接所述第一触发器的输出端,所述第一与门的输出端连接一补码计算器;
第一选择器,所述第一选择器的输入端分别连接写时钟使能信号和所述补码计算器的输出端,所述第一选择器的控制端连接所述第一触发器的输出端;
第一加法器,所述第一加法器的输入端分别连接所述第一选择器的输出端和所述写地址信号;
第二选择器,所述第二选择器的输入端分别连接所述第一加法器的输出端和所述读指针信号,所述第二选择器的控制端连接一地址清除信号;
第二触发器,所述第二触发器的输入端连接所述第二选择器的输出,所述第二触发器的时钟输入端连接所述写时钟信号,所述第二触发器的输出端用于输出所述写地址信号。
5.根据权利要求1所述的数据清除***,其特征在于,所述第一时钟域为读时钟域,所述第二时钟域为写时钟域;
所述地址设置模块包括:
读地址设置电路,用于在所述写时钟域的写时钟信号有效时,对所述读时钟域的读指针信号以一预设步进递增处理,直至与所述写时钟域的写指针信号相同;以及在所述写时钟信号无效时,将所述读时钟域的读地址信号同步为与所述写时钟域的写地址信号相同,以使所述写指针信号与所述读指针信号同步。
6.根据权利要求5所述的数据清除***,其特征在于,所述读地址设置电路包括:
第三触发器,所述第三触发器的输入端连接所述写指针信号,所述第三触发器的时钟端连接读时钟信号,所述第三触发器的使能端连接所述清除信号;
第二等号逻辑器,所述第二等号逻辑器的第一端连接所述第三触发器的输出端,所述第二等号逻辑器的第二端连接所述读地址信号;
第四触发器,所述第四触发器的输入端连接自身输出端,所述第四触发器的时钟端连接所述读时钟信号,所述第四触发器的清零端连接所述第二等号逻辑器的输出端,所述第四触发器的预置端连接所述清除信号,所述第四触发器的输出端输出的信号作为清除反馈信号;
第二与门,所述第二与门的第一输入端通过一第二反相器连接所述第二等号逻辑器的输出端,所述第二与门的第二输入端连接所述第四触发器的输出端;
或门,所述或门的输入端分别连接读时钟使能信号和所述第二与门的输出端;
第二加法器,所述第二加法器的输入端分别连接所述或门的输出端和所述读地址信号;
第三选择器,所述第三选择器的输入端分别连接所述第二加法器的输出端和所述写指针信号,所述第三选择器的控制端连接一地址清除信号;
第五触发器,所述第五触发器的输入端连接所述第三选择器的输出,所述第五触发器的时钟输入端连接所述读时钟信号,所述第五触发器的输出端用于输出所述读地址信号。
7.根据权利要求3或5所述的数据清除***,其特征在于,所述写指针信号以格雷码转二进制码形式输出;
所述读指针信号以格雷码转二进制码形式输出。
8.根据权利要求1所述的数据清除***,其特征在于,所述清除信号为单周期的脉冲信号。
9.根据权利要求1所述的数据清除***,其特征在于,所述数据缓存器包括RAM存储模块、写控制模块和读控制模块、读地址同步模块和写地址同步模块;
所述RAM存储模块的写数据端口连接写数据信号,写时钟使能端口连接写时钟使能信号,写地址端口连接写地址信号,写时钟端口连接写时钟信号,读数据端口连接读数据信号,读时钟使能端口连接读时钟使能信号,读地址端口连接读地址信号,读时钟端口连接读时钟信号;
所述写控制模块的写时钟端口连接所述写时钟信号,写使能端口连接写使能信号,写复位端口连接复位信号,读地址同步端口连接所述读地址同步模块的输出,写地址输出端口连接所述写地址设置电路,满信号输出端口用于输出满指示信号;
所述读地址同步模块的输入连接所述读地址信号,读同步时钟端连接所述写时钟信号,读同步复位端口连接所述复位信号;
所述读控制模块的读时钟端口连接所述读时钟信号,读使能端口连接读使能信号,读复位端口连接所述复位信号,写地址同步端口连接所述写地址同步模块的输出,读地址输出端口连接所述读地址设置电路,空信号输出端口用于输出空指示信号;
所述写地址同步模块的输入连接所述写地址信号,写同步时钟端连接所述读时钟信号,写同步复位端口连接所述复位信号。
10.一种数据清除方法,其特征在于,应用于如权利要求1-9任意一项所述的数据清除***,包括:
接收一清除信号;其中,所述清除信号位于第一时钟域,未接收到所述清除信号的时钟域为第二时钟域;
在接收到所述清除信号时判断所述第二时钟域的时钟信号是否有效;
在所述第二时钟域的时钟信号有效时,对所述第一时钟域的指针信号进行处理,直至与所述第二时钟域的指针信号相同;以及
在所述第二时钟域的时钟信号无效时,将所述第一时钟域的地址信号同步为与所述第二时钟域的地址信号相同,以使所述第一时钟域的指针信号与所述第二时钟域的指针信号同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311188947.5A CN117311662A (zh) | 2023-09-14 | 2023-09-14 | 一种数据清除***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311188947.5A CN117311662A (zh) | 2023-09-14 | 2023-09-14 | 一种数据清除***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117311662A true CN117311662A (zh) | 2023-12-29 |
Family
ID=89287557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311188947.5A Pending CN117311662A (zh) | 2023-09-14 | 2023-09-14 | 一种数据清除***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311662A (zh) |
-
2023
- 2023-09-14 CN CN202311188947.5A patent/CN117311662A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367495B (zh) | 一种异步先入先出的数据缓存控制器 | |
US4649512A (en) | Interface circuit having a shift register inserted between a data transmission unit and a data reception unit | |
US5602780A (en) | Serial to parallel and parallel to serial architecture for a RAM based FIFO memory | |
US7310396B1 (en) | Asynchronous FIFO buffer for synchronizing data transfers between clock domains | |
JP3645584B2 (ja) | データ転送同期装置 | |
CN109388370B (zh) | 一种实现先入先出队列的方法及装置 | |
CN112306919A (zh) | 一种基于fpga的数据对齐方法、装置、设备及介质 | |
CN116594932A (zh) | 一种首字直通的先进先出存储设备及方法 | |
CN117311662A (zh) | 一种数据清除***及方法 | |
CN115221082B (zh) | 一种数据缓存方法、装置及存储介质 | |
CN110705195A (zh) | 一种基于fpga的跨时钟域深度自行配置fifo*** | |
JPH04279945A (ja) | メモリ回路 | |
JP2022049453A (ja) | 送受信装置、ブリッジチップ、半導体記憶装置、および方法 | |
US5732011A (en) | Digital system having high speed buffering | |
JP4696003B2 (ja) | データ転送回路 | |
CN114089946B (zh) | 一种fifo装置和数据处理*** | |
US20080201499A1 (en) | Asynchronous Data Buffer | |
JP3592169B2 (ja) | 非同期データ転送制御装置および非同期データ転送制御方法 | |
US6654844B1 (en) | Method and arrangement for connecting processor to ASIC | |
US6489805B1 (en) | Circuits, architectures, and methods for generating a periodic signal in a memory | |
JP4355383B2 (ja) | データ蓄積量監視装置 | |
KR100557561B1 (ko) | Fifo 저장 장치 | |
KR100233100B1 (ko) | 시분할 액서스방식을 채용한 다중 프로세서의 데이타 통신장치 | |
JP2834948B2 (ja) | データ転送方式 | |
JPH0432922A (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 |