一种同步FIFO转让专利
申请号 : CN202111487415.2
文献号 : CN113900975B
文献日 : 2022-03-08
发明人 : 王洪良 , 张德闪 , 牟奇
申请人 : 苏州浪潮智能科技有限公司
摘要 :
权利要求 :
1.一种同步FIFO,其特征在于,包括:数据存储电路、第一逻辑电路、第二逻辑电路以及指示电路;所述第一逻辑电路分别连接所述指示电路与所述数据存储电路;所述第二逻辑电路连接所述指示电路;所述指示电路还连接所述数据存储电路;所述数据存储电路包括N路第一寄存器、N路第一多路选择器以及N路第一判决器;N为正整数;所述第一寄存器与所述第一多路选择器相间连接;所述第一判决器与所述第一多路选择器一一对应;所述指示电路与所述第一寄存器一一对应;
所述第一寄存器,用于存储数据;
所述第一判决器,用于根据对应的所述第一多路选择器连接的所述第一寄存器的状态值,输出第一控制信号至对应的所述第一多路选择器;
所述第一多路选择器,用于根据所述第一控制信号,将所述第一多路选择器连接的所述第一寄存器的输出端输出的数据,或所述同步FIFO的数据输入端输入的数据,输出至所述第一多路选择器连接的所述第一寄存器的输入端;
所述第一逻辑电路,用于根据所述同步FIFO的空标志输出信号与输入所述同步FIFO的读信号得到读标志信号;
所述第二逻辑电路,用于根据所述同步FIFO的满标志输出信号与输入所述同步FIFO的写信号得到写标志信号;
所述指示电路,用于根据所述读标志信号与所述写标志信号得到对应的所述第一寄存器的所述状态值。
2.根据权利要求1所述的同步FIFO,其特征在于,第N个所述第一多路选择器具体用于:若第N个所述第一寄存器的状态值为低,则输出所述同步FIFO的数据输入端输入的数据;
若第N个所述第一寄存器的状态值为高,则输出第N个所述第一寄存器输出的数据。
3.根据权利要求1所述的同步FIFO,其特征在于,第j个所述第一多路选择器具体用于:
1<=j
当所述读标志信号为高,或第j个所述第一寄存器的状态值为低时,若第j+1个所述第一寄存器的状态值为低,则输出所述同步FIFO的数据输入端输入的数据;若第j+1个所述第一寄存器的状态值为高,则输出第j+1个所述第一寄存器输出的数据。
4.根据权利要求1所述的同步FIFO,其特征在于,所述第一逻辑电路包括:第一与门与第一非门;
所述第一非门的输入端连接所述空标志输出信号,所述第一非门的输出端连接所述第一与门的第一输入端,所述第一与门的第二输入端连接所述读信号,所述第一与门的输出端输出所述读标志信号。
5.根据权利要求1所述的同步FIFO,其特征在于,所述第二逻辑电路包括:第二与门与第二非门;
所述第二非门的输入端连接所述满标志输出信号,所述第二非门的输出端连接所述第二与门的第一输入端,所述第二与门的第二输入端连接所述写信号,所述第二与门的输出端输出所述写标志信号。
6.根据权利要求1所述的同步FIFO,其特征在于,与第一个所述第一寄存器对应的所述指示电路输出的状态值取反后,得到所述空标志输出信号;与第N个所述第一寄存器对应的所述指示电路输出的状态值,作为所述满标志输出信号。
7.根据权利要求1所述的同步FIFO,其特征在于,所述指示电路包括:第二判决器、第二多路选择器以及第二寄存器;
所述第二判决器,用于根据所述读标志信号与所述写标志信号,输出第二控制信号至所述第二多路选择器;
所述第二多路选择器,用于根据所述第二控制信号,将输入所述第二多路选择器的数据中的一路数据输出至所述第二寄存器;
所述第二寄存器,用于输出对应的所述第一寄存器的状态值。
8.根据权利要求7所述的同步FIFO,其特征在于,与第一个所述第一寄存器对应的所述指示电路中的所述第二多路选择器具体用于:若所述读标志信号为低且所述写标志信号为高,则输出数值1;
若所述读标志信号为高且所述写标志信号为低,则输出第二个所述第一寄存器的状态值;
若所述读标志信号与所述写标志信号同为高或者同为低,则输出第一个所述第一寄存器的状态值。
9.根据权利要求7所述的同步FIFO,其特征在于,与第N个所述第一寄存器对应的所述指示电路中的所述第二多路选择器具体用于:若所述读标志信号为低且所述写标志信号为高,则输出第N‑1个所述第一寄存器的状态值;
若所述读标志信号为高且所述写标志信号为低,则输出数值零;
若所述读标志信号与所述写标志信号同为高或者同为低,则输出第N个所述第一寄存器的状态值。
10.根据权利要求7所述的同步FIFO,其特征在于,与第j个所述第一寄存器对应的所述指示电路中的所述第二多路选择器具体用于:1
若所述读标志信号为低且所述写标志信号为高,则输出第j‑1个所述第一寄存器的状态值;
若所述读标志信号为高且所述写标志信号为低,则输出第j+1个所述第一寄存器的状态值;
若所述读标志信号与所述写标志信号同为高或者同为低,则输出第j个所述第一寄存器的状态值。
说明书 :
一种同步FIFO
技术领域
背景技术
FIFO与异步FIFO。同步FIFO的输入输出是同一时钟,异步FIFO的输入输出是不同时钟。同步
FIFO主要用来缓存数据或命令,防止数据或命令丢失,多用于模块之间的速率匹配或数据
同步,提高系统传输或处理性能。
资源一般每个有几十K的存储,但是数量相对有限,如果设计中有大量的FIFO需要使用,而
且FIFO需要的深度较小,就会造成该类型的资源浪费。另外,在芯片设计中,RAM也是一种特
定资源,该类型的资源无论需要多少存储,都有一个最基础的面积存在,在此基础上,需要
的存储越多,占用的面积越大(流片更贵,功耗更大)。设计完成后,RAM资源需要单独摆放位
置,后端布局布线也相对更加复杂。
发明内容
所述第一多路选择器相间连接;所述第一判决器与所述第一多路选择器一一对应;所述指
示电路与所述第一寄存器一一对应;
至所述第一多路选择器连接的所述第一寄存器的输入端;
述第一寄存器的状态值为高,则输出第j+1个所述第一寄存器输出的数据。
输出端输出所述读标志信号。
输出端输出所述写标志信号。
所述满标志输出信号。
器;N为正整数;所述第一寄存器与所述第一多路选择器相间连接;所述第一判决器与所述
第一多路选择器一一对应;所述指示电路与所述第一寄存器一一对应;所述第一寄存器,用
于存储数据;所述第一判决器,用于根据对应的所述第一多路选择器连接的所述第一寄存
器的状态值,输出第一控制信号至对应的所述第一多路选择器;所述第一多路选择器,用于
根据所述第一控制信号,将所述第一多路选择器连接的所述第一寄存器的输出端输出的数
据,或所述同步FIFO的数据输入端输入的数据,输出至所述第一多路选择器连接的所述第
一寄存器的输入端;所述第一逻辑电路,用于根据所述同步FIFO的空标志输出信号与输入
所述同步FIFO的读信号得到读标志信号;所述第二逻辑电路,用于根据所述同步FIFO的满
标志输出信号与输入所述同步FIFO的写信号得到写标志信号;所述指示电路,用于根据所
述读标志信号与所述写标志信号得到对应的所述第一寄存器的所述状态值。
少的设计中占用资源少,极大的减少了芯片面积,节省成本,并且更便于布局布线。
附图说明
例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获
得其他的附图。
具体实施方式
本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员
在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
中Out_data所在一端)向同步FIOF的数据输入端(图2中IN_data所在一端)的方向,依次为
第一个第一寄存器、第一个第一多路选择器、第二个第一寄存器、第二个第一多路选择器、
第三个第一寄存器、第三个第一多路选择器,依次类推,第N个第一寄存器、第N个第一多路
选择器。
据输入端连接。第N个第一多路选择器的输入端还连接第N个第一寄存器的输出端。第j个第
一多路选择器的输入端还连接第j+1个第一寄存器的输出端,1<=j
于表征第一寄存器是否可用,即是否有数据。
数据,输出至第一多路选择器连接的第一寄存器的输入端。
为高,则输出第j+1个第一寄存器输出的数据。
个第一判决器根据第N个第一寄存器的状态值,进一步输出第一控制信号至对应的第N个第
一多路选择器,使第N个第一多路选择器在第N个第一寄存器的状态值为低时,输出同步
FIFO的数据输入端输入的数据至第N个第一寄存器;使第N个第一多路选择器在第N个第一
寄存器的状态值为高时,输出第N个第一寄存器的状态值至第N个第一寄存器,即保持第N个
第一寄存器中的数据不变。
一控制信号,使第j个第一多路选择器输出同步FIFO的数据输入端输入的数据至第j个第一
寄存器;如果第j+1个第一寄存器的状态值为高,则第j个第一多路选择器输出第j+1个第一
寄存器输出的数据至第j个第一寄存器。
号为高且空标志输出信号为低,则读标志信号为高,否则读标志信号为低。空标志输出信号
为高,表示同步FIFO中没有数据;空标志输出信号为低,表示同步FIFO中有数据。
入端,第一与门的第二输入端连接读信号,第一与门的输出端输出读标志信号。图3中
qualified_read表示读标志信号。
反后,输出为高,此时若读信号为高,则第一逻辑电路20输出为高,若读信号为低,则第一逻
辑电路20输出为低。
二逻辑电路30输出为高,否则第二逻辑电路30输出为低。满标志输出信号为高,表示同步
FIFO存满数据;满标志输出信号为低,表示同步FIFO未存满数据。
入端,第二与门的第二输入端连接写信号,第二与门的输出端输出写标志信号。图3中
qualified_write表示写标志信号。
反后,输出为高,此时若写信号为高,则第二逻辑电路30输出为高,若写信号为低,则第二逻
辑电路30输出为低。
出的状态值取反后,得到空标志输出信号。与第N个第一寄存器对应的指示电路40输出的状
态值,作为满标志输出信号。
第一个第一寄存器(即图3中所示m[0])对应;第二寄存器u[1]、第二判决器usel[1]以及与
之相连的第二多路选择器构成一路指示电路40,该指示电路40与第二个第一寄存器(即图3
中所示m[1])对应;依此类推,第二寄存器u[i]、第二判决器usel[i]以及与之相连的第二多
路选择器构成一路指示电路40,该指示电路40与第N‑1个第一寄存器(即图3中所示m[i])对
应;第二寄存器u[i+1]、第二判决器usel[i+1]以及与之相连的第二多路选择器构成一路指
示电路40,该指示电路40与第N个第一寄存器对应。
输出其输入的数据中的一路数据至对应的第二寄存器。第二寄存器的输出即为指示电路40
对应的第一寄存器的状态值。
中所示u[0]_Q)。如果读标志信号为低且写标志信号为高,则输出数值1至u[0]。如果读标志
信号为高且写标志信号为低,则输出第二个第一寄存器的状态值,即输出m[1]的状态值至u
[0]。如果读标志信号与写标志信号同为高或者同为低,则输出第一个第一寄存器的状态
值,即输出m[0]的状态值至u[0],即保持u[0]中的数据不变。
志信号为低且写标志信号为高,则输出第N‑1个第一寄存器的状态值至u[i+1]。如果读标志
信号为高且写标志信号为低,则输出数值零至u[i+1];如果读标志信号与写标志信号同为
高或者同为低,则输出第N个第一寄存器的状态值至u[i+1]。
志信号为高,则输出第j‑1个第一寄存器的状态值至u[i];如果读标志信号为高且写标志信
号为低,则输出第i+1个第一寄存器的状态值至u[i];如果读标志信号与写标志信号同为高
或者同为低,则输出第j+1个第一寄存器的状态值至u[i]。
要求较少的设计中占用资源少,极大的减少了芯片面积,节省成本,并且更便于布局布线。
下,应均在本申请的范围内。
核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提
下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护
范围。
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者
设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排
除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。