一种同步FIFO转让专利

申请号 : CN202111487415.2

文献号 : CN113900975B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王洪良张德闪牟奇

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本申请公开了一种同步FIFO,包括数据存储电路、第一逻辑电路、第二逻辑电路以及指示电路。数据存储电路包括N路第一寄存器、N路第一多路选择器以及N路第一判决器;N为正整数;所述第一寄存器与所述第一多路选择器相间连接。该同步FIFO基于寄存器搭建FIFO所需的存储,主要包括寄存器、多路选择器、判决器,舍弃了RAM,无需占用RAM,无需RAM读写使能以及地址等控制,能够避免RAM资源浪费。在存储深度要求较少的设计中占用资源少,极大的减少了芯片面积,节省成本,并且更便于布局布线。

权利要求 :

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

技术领域

[0001] 本申请涉及数字电路技术领域,特别涉及一种同步FIFO。

背景技术

[0002] 在FPGA(Field‑Programmable Gate Array,现场可编程门阵列)等数字电路设计中,FIFO(First Input First Output,先入先出存储)是一个常用的模块。FIFO分为同步
FIFO与异步FIFO。同步FIFO的输入输出是同一时钟,异步FIFO的输入输出是不同时钟。同步
FIFO主要用来缓存数据或命令,防止数据或命令丢失,多用于模块之间的速率匹配或数据
同步,提高系统传输或处理性能。
[0003] 如图1所示,目前FIFO多基于RAM Random Access Memory,随机存取存储器)作为存储设计,配合控制器、寄存器等完成先入先出的功能。然而,RAM属于专用资源,该类型的
资源一般每个有几十K的存储,但是数量相对有限,如果设计中有大量的FIFO需要使用,而
且FIFO需要的深度较小,就会造成该类型的资源浪费。另外,在芯片设计中,RAM也是一种特
定资源,该类型的资源无论需要多少存储,都有一个最基础的面积存在,在此基础上,需要
的存储越多,占用的面积越大(流片更贵,功耗更大)。设计完成后,RAM资源需要单独摆放位
置,后端布局布线也相对更加复杂。
[0004] 因此,如何解决上述技术缺陷已成为本领域技术人员亟待解决的技术问题。

发明内容

[0005] 本申请的目的是提供一种同步FIFO,无需占用RAM,避免RAM资源浪费,在存储深度较少的设计中,能够极大的减少芯片面积,节省成本,并且更便于布局布线。
[0006] 为解决上述技术问题,本申请提供了一种同步FIFO,包括:
[0007] 数据存储电路、第一逻辑电路、第二逻辑电路以及指示电路;所述数据存储电路包括N路第一寄存器、N路第一多路选择器以及N路第一判决器;N为正整数;所述第一寄存器与
所述第一多路选择器相间连接;所述第一判决器与所述第一多路选择器一一对应;所述指
示电路与所述第一寄存器一一对应;
[0008] 所述第一寄存器,用于存储数据;
[0009] 所述第一判决器,用于根据对应的所述第一多路选择器连接的所述第一寄存器的状态值,输出第一控制信号至对应的所述第一多路选择器;
[0010] 所述第一多路选择器,用于根据所述第一控制信号,将所述第一多路选择器连接的所述第一寄存器的输出端输出的数据,或所述同步FIFO的数据输入端输入的数据,输出
至所述第一多路选择器连接的所述第一寄存器的输入端;
[0011] 所述第一逻辑电路,用于根据所述同步FIFO的空标志输出信号与输入所述同步FIFO的读信号得到读标志信号;
[0012] 所述第二逻辑电路,用于根据所述同步FIFO的满标志输出信号与输入所述同步FIFO的写信号得到写标志信号;
[0013] 所述指示电路,用于根据所述读标志信号与所述写标志信号得到对应的所述第一寄存器的所述状态值。
[0014] 可选的,第N个所述第一多路选择器具体用于:
[0015] 若第N个所述第一寄存器的状态值为低,则输出所述同步FIFO的数据输入端输入的数据;
[0016] 若第N个所述第一寄存器的状态值为高,则输出所述第N个所述第一寄存器输出的数据。
[0017] 可选的,第j个所述第一多路选择器具体用于:1<=j
[0018] 当所述读标志信号为高,或第j个所述第一寄存器的状态值为低时,若第j+1个所述第一寄存器的状态值为低,则输出所述同步FIFO的数据输入端输入的数据;若第j+1个所
述第一寄存器的状态值为高,则输出第j+1个所述第一寄存器输出的数据。
[0019] 可选的,所述第一逻辑电路包括:
[0020] 第一与门与第一非门;
[0021] 所述第一非门的输入端连接所述空标志输出信号,所述第一非门的输出端连接所述第一与门的第一输入端,所述第一与门的第二输入端连接所述读信号,所述第一与门的
输出端输出所述读标志信号。
[0022] 可选的,所述第二逻辑电路包括:
[0023] 第二与门与第二非门;
[0024] 所述第二非门的输入端连接所述满标志输出信号,所述第二非门的输出端连接所述第二与门的第一输入端,所述第二与门的第二输入端连接所述写信号,所述第二与门的
输出端输出所述写标志信号。
[0025] 可选的,与第一个所述第一寄存器对应的所述指示电路输出的状态值取反后,得到所述空标志输出信号;与第N个所述第一寄存器对应的所述指示电路输出的状态值,作为
所述满标志输出信号。
[0026] 可选的,所述指示电路包括:
[0027] 第二判决器、第二多路选择器以及第二寄存器;
[0028] 所述第二判决器,用于根据所述读标志信号与所述写标志信号,输出第二控制信号至所述第二多路选择器;
[0029] 所述第二多路选择器,用于根据所述第二控制信号,将输入所述第二多路选择器的数据中的一路数据输出至所述第二寄存器;
[0030] 所述第二寄存器,用于输出对应的所述第一寄存器的状态值。
[0031] 可选的,与第一个所述第一寄存器对应的所述指示电路中的所述第二多路选择器具体用于:
[0032] 若所述读标志信号为低且所述写标志信号为高,则输出数值1;
[0033] 若所述读标志信号为高且所述写标志信号为低,则输出第二个所述第一寄存器的状态值;
[0034] 若所述读标志信号与所述写标志信号同为高或者同为低,则输出第一个所述第一寄存器的状态值。
[0035] 可选的,与第N个所述第一寄存器对应的所述指示电路中的所述第二多路选择器具体用于:
[0036] 若所述读标志信号为低且所述写标志信号为高,则输出第N‑1个所述第一寄存器的状态值;
[0037] 若所述读标志信号为高且所述写标志信号为低,则输出数值零;
[0038] 若所述读标志信号与所述写标志信号同为高或者同为低,则输出第N个所述第一寄存器的状态值。
[0039] 可选的,与第j个所述第一寄存器对应的所述指示电路中的所述第二多路选择器具体用于:1
[0040] 若所述读标志信号为低且所述写标志信号为高,则输出第j‑1个所述第一寄存器的状态值;
[0041] 若所述读标志信号为高且所述写标志信号为低,则输出第j+1个所述第一寄存器的状态值;
[0042] 若所述读标志信号与所述写标志信号同为高或者同为低,则输出第j个所述第一寄存器的状态值。
[0043] 本申请所提供的同步FIFO,包括:数据存储电路、第一逻辑电路、第二逻辑电路以及指示电路;所述数据存储电路包括N路第一寄存器、N路第一多路选择器以及N路第一判决
器;N为正整数;所述第一寄存器与所述第一多路选择器相间连接;所述第一判决器与所述
第一多路选择器一一对应;所述指示电路与所述第一寄存器一一对应;所述第一寄存器,用
于存储数据;所述第一判决器,用于根据对应的所述第一多路选择器连接的所述第一寄存
器的状态值,输出第一控制信号至对应的所述第一多路选择器;所述第一多路选择器,用于
根据所述第一控制信号,将所述第一多路选择器连接的所述第一寄存器的输出端输出的数
据,或所述同步FIFO的数据输入端输入的数据,输出至所述第一多路选择器连接的所述第
一寄存器的输入端;所述第一逻辑电路,用于根据所述同步FIFO的空标志输出信号与输入
所述同步FIFO的读信号得到读标志信号;所述第二逻辑电路,用于根据所述同步FIFO的满
标志输出信号与输入所述同步FIFO的写信号得到写标志信号;所述指示电路,用于根据所
述读标志信号与所述写标志信号得到对应的所述第一寄存器的所述状态值。
[0044] 可见,本申请所提供的同步FIFO,基于寄存器搭建FIFO所需的存储,舍弃了RAM,无需占用RAM,无需RAM读写使能以及地址等控制,能够避免RAM资源浪费。在存储深度要求较
少的设计中占用资源少,极大的减少了芯片面积,节省成本,并且更便于布局布线。

附图说明

[0045] 为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获
得其他的附图。
[0046] 图1为现有FIFO的示意图;
[0047] 图2为本申请实施例所提供的一种同步FIFO的示意图;
[0048] 图3为本申请实施例所提供的另一种同步FIFO的示意图。

具体实施方式

[0049] 本申请的核心是提供一种同步FIFO,无需占用RAM,避免RAM资源浪费,在存储深度较少的设计中,能够极大的减少芯片面积,节省成本,并且更便于布局布线。
[0050] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员
在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0051] 请参考图2,图2为本申请实施例所提供的一种同步FIFO的示意图,参考图2所示,该同步FIFO主要包括:
[0052] 数据存储电路10、第一逻辑电路20、第二逻辑电路30以及指示电路40。
[0053] 其中,数据存储电路10包括N路第一寄存器、N路第一多路选择器以及N路第一判决器;N为正整数。第一寄存器与第一多路选择器相间连接。沿着同步FIFO的数据输出端(图2
中Out_data所在一端)向同步FIOF的数据输入端(图2中IN_data所在一端)的方向,依次为
第一个第一寄存器、第一个第一多路选择器、第二个第一寄存器、第二个第一多路选择器、
第三个第一寄存器、第三个第一多路选择器,依次类推,第N个第一寄存器、第N个第一多路
选择器。
[0054] 每一个第一多路选择器有一路与其对应的第一判决器。每一个第一多路选择器的输出端连接一个第一寄存器的输入端,每一个第一多路选择器的输入端均与同步FIFO的数
据输入端连接。第N个第一多路选择器的输入端还连接第N个第一寄存器的输出端。第j个第
一多路选择器的输入端还连接第j+1个第一寄存器的输出端,1<=j
[0055] 第一寄存器用于存储数据。第一判决器用于根据对应的第一多路选择器连接的第一寄存器的状态值,输出第一控制信号至对应的第一多路选择器。第一寄存器的状态值用
于表征第一寄存器是否可用,即是否有数据。
[0056] 第一多路选择器用于根据第一控制信号,将输入的两路数据中的一路输出,即将第一多路选择器连接的第一寄存器的输出端输出的数据,或同步FIFO的数据输入端输入的
数据,输出至第一多路选择器连接的第一寄存器的输入端。
[0057] 参考图3所示,在一种具体的实施方式中,第N个第一多路选择器具体用于:
[0058] 若第N个第一寄存器的状态值为低,则输出同步FIFO的数据输入端输入的数据;
[0059] 若第N个第一寄存器的状态值为高,则输出第N个第一寄存器输出的数据。
[0060] 第j个第一多路选择器具体用于:1<=j
[0061] 当读标志信号为高,或第j个第一寄存器的状态值为低时,若第j+1个第一寄存器的状态值为低,则输出同步FIFO的数据输入端输入的数据;若第j+1个第一寄存器的状态值
为高,则输出第j+1个第一寄存器输出的数据。
[0062] 具体而言,与第N个第一多路选择器对应的第一判决器(即第N个第一判决器,对应于图3中所示的sel[i+1])有一路输入,为第N个第一寄存器(即图3中m[i+1])的状态值。第N
个第一判决器根据第N个第一寄存器的状态值,进一步输出第一控制信号至对应的第N个第
一多路选择器,使第N个第一多路选择器在第N个第一寄存器的状态值为低时,输出同步
FIFO的数据输入端输入的数据至第N个第一寄存器;使第N个第一多路选择器在第N个第一
寄存器的状态值为高时,输出第N个第一寄存器的状态值至第N个第一寄存器,即保持第N个
第一寄存器中的数据不变。
[0063] 与第j个(1<=j
[0064] 图3中所示sel[0]为第一个第一多路选择器对应的第一判决器,sel[i]为第N‑1个第一多路选择器对应的第一判决器,mux2_1表示第一多路选择器。
[0065] 当读标志信号为高,或第j个第一寄存器的状态值取反后为高时,即第j个第一寄存器的状态值为低时,如果第j+1个第一寄存器的状态值为低,则第j个第一判决器输出第
一控制信号,使第j个第一多路选择器输出同步FIFO的数据输入端输入的数据至第j个第一
寄存器;如果第j+1个第一寄存器的状态值为高,则第j个第一多路选择器输出第j+1个第一
寄存器输出的数据至第j个第一寄存器。
[0066] 第一逻辑电路20用于根据同步FIFO的空标志输出信号(图2中所示empty)与输入同步FIFO的读信号(图2中所示read)得到读标志信号。具体而言,如果输入同步FIFO的读信
号为高且空标志输出信号为低,则读标志信号为高,否则读标志信号为低。空标志输出信号
为高,表示同步FIFO中没有数据;空标志输出信号为低,表示同步FIFO中有数据。
[0067] 参考图3所示,在一种具体的实施方式中,第一逻辑电路20包括:第一与门与第一非门;第一非门的输入端连接空标志输出信号,第一非门的输出端连接第一与门的第一输
入端,第一与门的第二输入端连接读信号,第一与门的输出端输出读标志信号。图3中
qualified_read表示读标志信号。
[0068] 由此,若空标志输出信号为高,则经由第一非门取反后,输出为低,此时无论读信号为高还是为低,第一逻辑电路20输出均为低。若空标志输出信号为低,则经由第一非门取
反后,输出为高,此时若读信号为高,则第一逻辑电路20输出为高,若读信号为低,则第一逻
辑电路20输出为低。
[0069] 第二逻辑电路30用于根据同步FIFO的满标志输出信号与输入同步FIFO的写信号得到写标志信号。具体而言,如果输入同步FIFO的写信号为高且满标志输出信号为低,则第
二逻辑电路30输出为高,否则第二逻辑电路30输出为低。满标志输出信号为高,表示同步
FIFO存满数据;满标志输出信号为低,表示同步FIFO未存满数据。
[0070] 参考图3所示,在一种具体的实施方式中,第二逻辑电路30包括:第二与门与第二非门;第二非门的输入端连接满标志输出信号,第二非门的输出端连接第二与门的第一输
入端,第二与门的第二输入端连接写信号,第二与门的输出端输出写标志信号。图3中
qualified_write表示写标志信号。
[0071] 由此,若满标志输出信号为高,则经由第二非门取反后,输出为低,此时无论写信号为高还是为低,第二逻辑电路30输出均为低。若满标志输出信号为低,则经由第二非门取
反后,输出为高,此时若写信号为高,则第二逻辑电路30输出为高,若写信号为低,则第二逻
辑电路30输出为低。
[0072] 其中,与第一个第一寄存器对应的指示电路40输出的状态值取反后,得到空标志输出信号。具体与第一个第一寄存器对应的指示电路40的输出端可连接一路非门,将其输
出的状态值取反后,得到空标志输出信号。与第N个第一寄存器对应的指示电路40输出的状
态值,作为满标志输出信号。
[0073] 指示电路40为N路,且指示电路40与第一寄存器一一对应。指示电路40用于根据读标志信号与写标志信号得到对应的第一寄存器的状态值。
[0074] 其中,在一种具体的实施方式中,指示电路40包括:
[0075] 第二判决器、第二多路选择器以及第二寄存器;
[0076] 第二判决器,用于根据读标志信号与写标志信号,输出第二控制信号至第二多路选择器;
[0077] 第二多路选择器,用于根据第二控制信号,将输入第二多路选择器的数据中的一路数据输出至第二寄存器;
[0078] 第二寄存器,用于输出对应的第一寄存器的状态值。
[0079] 具体而言,参考图3所示,图3中mux3_1表示第二多路选择器。第二寄存器u[0]、第二判决器usel[0]以及与之相连的第二多路选择器构成一路指示电路40,该指示电路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个第一寄存器对应。
[0080] 每一路第二判决器有两路输入,即读标志信号与写标志信号。第二判决器根据读标志信号与写标志信号,输出第二控制信号至相应的第二多路选择器,使第二多路选择器
输出其输入的数据中的一路数据至对应的第二寄存器。第二寄存器的输出即为指示电路40
对应的第一寄存器的状态值。
[0081] 进一步,参考图3所示,在一种具体的实施方式中,第二多路选择的数据输出情况如下:
[0082] 与第一个第一寄存器对应的指示电路40中的第二多路选择器具体用于:
[0083] 若读标志信号为低且写标志信号为高,则输出数值1;
[0084] 若读标志信号为高且写标志信号为低,则输出第二个第一寄存器的状态值;
[0085] 若读标志信号与写标志信号同为高或者同为低,则输出第一个第一寄存器的状态值。
[0086] 与第N个第一寄存器对应的指示电路40中的第二多路选择器具体用于:
[0087] 若读标志信号为低且写标志信号为高,则输出第N‑1个第一寄存器的状态值;
[0088] 若读标志信号为高且写标志信号为低,则输出数值零;
[0089] 若读标志信号与写标志信号同为高或者同为低,则输出第N个第一寄存器的状态值。
[0090] 与第j个第一寄存器对应的指示电路40中的第二多路选择器具体用于:1
[0091] 若读标志信号为低且写标志信号为高,则输出第j‑1个第一寄存器的状态值;
[0092] 若读标志信号为高且写标志信号为低,则输出第j+1个第一寄存器的状态值;
[0093] 若读标志信号与写标志信号同为高或者同为低,则输出第j个第一寄存器的状态值。
[0094] 具体而言,每一路第二多路选择器有三路输入。
[0095] 其中,与第一个第一寄存器对应的指示电路40中的第二多路选择器的输入为数值1、第二个第一寄存器的状态值(图3中所示u[1]_Q)、以及第一个第一寄存器的状态值(图3
中所示u[0]_Q)。如果读标志信号为低且写标志信号为高,则输出数值1至u[0]。如果读标志
信号为高且写标志信号为低,则输出第二个第一寄存器的状态值,即输出m[1]的状态值至u
[0]。如果读标志信号与写标志信号同为高或者同为低,则输出第一个第一寄存器的状态
值,即输出m[0]的状态值至u[0],即保持u[0]中的数据不变。
[0096] 与第N个第一寄存器对应的指示电路40中的第二多路选择器的输入为数值零、第N‑1个第一寄存器的状态值(图3中所示u[i]_Q)以及第N个第一寄存器的状态值。如果读标
志信号为低且写标志信号为高,则输出第N‑1个第一寄存器的状态值至u[i+1]。如果读标志
信号为高且写标志信号为低,则输出数值零至u[i+1];如果读标志信号与写标志信号同为
高或者同为低,则输出第N个第一寄存器的状态值至u[i+1]。
[0097] 与第j个(1示u[i+1]_Q),第j个第一寄存器的状态值(图3中所示u[i]_Q)。如果读标志信号为低且写标
志信号为高,则输出第j‑1个第一寄存器的状态值至u[i];如果读标志信号为高且写标志信
号为低,则输出第i+1个第一寄存器的状态值至u[i];如果读标志信号与写标志信号同为高
或者同为低,则输出第j+1个第一寄存器的状态值至u[i]。
[0098] 需要说明的是,图3中虚线表示的寄存器与同名的实线表示的寄存器为一个。例如,虚线表示的第二寄存器u[0]与实线表示的第二寄存器u[0],为同一个第二寄存器。
[0099] 综上所述,本申请所提供的同步FIFO,基于寄存器搭建FIFO所需的存储,舍弃了RAM,无需占用RAM,无需RAM读写使能以及地址等控制,能够避免RAM资源浪费。在存储深度
要求较少的设计中占用资源少,极大的减少了芯片面积,节省成本,并且更便于布局布线。
[0100] 因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到,在本申请提供的实施例的基本原理下结合实际情况可以存在多个例子,在不付出足够的创造性劳动
下,应均在本申请的范围内。
[0101] 说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0102] 以上对本申请所提供的同步FIFO进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其
核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提
下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护
范围。
[0103] 还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者
设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排
除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。