CN113900975B - 一种同步fifo - Google Patents

一种同步fifo Download PDF

Info

Publication number
CN113900975B
CN113900975B CN202111487415.2A CN202111487415A CN113900975B CN 113900975 B CN113900975 B CN 113900975B CN 202111487415 A CN202111487415 A CN 202111487415A CN 113900975 B CN113900975 B CN 113900975B
Authority
CN
China
Prior art keywords
register
signal
output
multiplexer
state value
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.)
Active
Application number
CN202111487415.2A
Other languages
English (en)
Other versions
CN113900975A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202111487415.2A priority Critical patent/CN113900975B/zh
Publication of CN113900975A publication Critical patent/CN113900975A/zh
Application granted granted Critical
Publication of CN113900975B publication Critical patent/CN113900975B/zh
Priority to US18/564,546 priority patent/US12079556B2/en
Priority to PCT/CN2022/100478 priority patent/WO2023103337A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Communication Control (AREA)
  • Logic Circuits (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

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

Description

一种同步FIFO
技术领域
本申请涉及数字电路技术领域,特别涉及一种同步FIFO。
背景技术
在FPGA(Field-Programmable Gate Array,现场可编程门阵列)等数字电路设计中,FIFO(First Input First Output,先入先出存储)是一个常用的模块。FIFO分为同步FIFO与异步FIFO。同步FIFO的输入输出是同一时钟,异步FIFO的输入输出是不同时钟。同步FIFO主要用来缓存数据或命令,防止数据或命令丢失,多用于模块之间的速率匹配或数据同步,提高系统传输或处理性能。
如图1所示,目前FIFO多基于RAM Random Access Memory,随机存取存储器)作为存储设计,配合控制器、寄存器等完成先入先出的功能。然而,RAM属于专用资源,该类型的资源一般每个有几十K的存储,但是数量相对有限,如果设计中有大量的FIFO需要使用,而且FIFO需要的深度较小,就会造成该类型的资源浪费。另外,在芯片设计中,RAM也是一种特定资源,该类型的资源无论需要多少存储,都有一个最基础的面积存在,在此基础上,需要的存储越多,占用的面积越大(流片更贵,功耗更大)。设计完成后,RAM资源需要单独摆放位置,后端布局布线也相对更加复杂。
因此,如何解决上述技术缺陷已成为本领域技术人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种同步FIFO,无需占用RAM,避免RAM资源浪费,在存储深度较少的设计中,能够极大的减少芯片面积,节省成本,并且更便于布局布线。
为解决上述技术问题,本申请提供了一种同步FIFO,包括:
数据存储电路、第一逻辑电路、第二逻辑电路以及指示电路;所述数据存储电路包括N路第一寄存器、N路第一多路选择器以及N路第一判决器;N为正整数;所述第一寄存器与所述第一多路选择器相间连接;所述第一判决器与所述第一多路选择器一一对应;所述指示电路与所述第一寄存器一一对应;
所述第一寄存器,用于存储数据;
所述第一判决器,用于根据对应的所述第一多路选择器连接的所述第一寄存器的状态值,输出第一控制信号至对应的所述第一多路选择器;
所述第一多路选择器,用于根据所述第一控制信号,将所述第一多路选择器连接的所述第一寄存器的输出端输出的数据,或所述同步FIFO的数据输入端输入的数据,输出至所述第一多路选择器连接的所述第一寄存器的输入端;
所述第一逻辑电路,用于根据所述同步FIFO的空标志输出信号与输入所述同步FIFO的读信号得到读标志信号;
所述第二逻辑电路,用于根据所述同步FIFO的满标志输出信号与输入所述同步FIFO的写信号得到写标志信号;
所述指示电路,用于根据所述读标志信号与所述写标志信号得到对应的所述第一寄存器的所述状态值。
可选的,第N个所述第一多路选择器具体用于:
若第N个所述第一寄存器的状态值为低,则输出所述同步FIFO的数据输入端输入的数据;
若第N个所述第一寄存器的状态值为高,则输出所述第N个所述第一寄存器输出的数据。
可选的,第j个所述第一多路选择器具体用于:1<=j<N;
当所述读标志信号为高,或第j个所述第一寄存器的状态值为低时,若第j+1个所述第一寄存器的状态值为低,则输出所述同步FIFO的数据输入端输入的数据;若第j+1个所述第一寄存器的状态值为高,则输出第j+1个所述第一寄存器输出的数据。
可选的,所述第一逻辑电路包括:
第一与门与第一非门;
所述第一非门的输入端连接所述空标志输出信号,所述第一非门的输出端连接所述第一与门的第一输入端,所述第一与门的第二输入端连接所述读信号,所述第一与门的输出端输出所述读标志信号。
可选的,所述第二逻辑电路包括:
第二与门与第二非门;
所述第二非门的输入端连接所述满标志输出信号,所述第二非门的输出端连接所述第二与门的第一输入端,所述第二与门的第二输入端连接所述写信号,所述第二与门的输出端输出所述写标志信号。
可选的,与第一个所述第一寄存器对应的所述指示电路输出的状态值取反后,得到所述空标志输出信号;与第N个所述第一寄存器对应的所述指示电路输出的状态值,作为所述满标志输出信号。
可选的,所述指示电路包括:
第二判决器、第二多路选择器以及第二寄存器;
所述第二判决器,用于根据所述读标志信号与所述写标志信号,输出第二控制信号至所述第二多路选择器;
所述第二多路选择器,用于根据所述第二控制信号,将输入所述第二多路选择器的数据中的一路数据输出至所述第二寄存器;
所述第二寄存器,用于输出对应的所述第一寄存器的状态值。
可选的,与第一个所述第一寄存器对应的所述指示电路中的所述第二多路选择器具体用于:
若所述读标志信号为低且所述写标志信号为高,则输出数值1;
若所述读标志信号为高且所述写标志信号为低,则输出第二个所述第一寄存器的状态值;
若所述读标志信号与所述写标志信号同为高或者同为低,则输出第一个所述第一寄存器的状态值。
可选的,与第N个所述第一寄存器对应的所述指示电路中的所述第二多路选择器具体用于:
若所述读标志信号为低且所述写标志信号为高,则输出第N-1个所述第一寄存器的状态值;
若所述读标志信号为高且所述写标志信号为低,则输出数值零;
若所述读标志信号与所述写标志信号同为高或者同为低,则输出第N个所述第一寄存器的状态值。
可选的,与第j个所述第一寄存器对应的所述指示电路中的所述第二多路选择器具体用于:1<j<N;
若所述读标志信号为低且所述写标志信号为高,则输出第j-1个所述第一寄存器的状态值;
若所述读标志信号为高且所述写标志信号为低,则输出第j+1个所述第一寄存器的状态值;
若所述读标志信号与所述写标志信号同为高或者同为低,则输出第j个所述第一寄存器的状态值。
本申请所提供的同步FIFO,包括:数据存储电路、第一逻辑电路、第二逻辑电路以及指示电路;所述数据存储电路包括N路第一寄存器、N路第一多路选择器以及N路第一判决器;N为正整数;所述第一寄存器与所述第一多路选择器相间连接;所述第一判决器与所述第一多路选择器一一对应;所述指示电路与所述第一寄存器一一对应;所述第一寄存器,用于存储数据;所述第一判决器,用于根据对应的所述第一多路选择器连接的所述第一寄存器的状态值,输出第一控制信号至对应的所述第一多路选择器;所述第一多路选择器,用于根据所述第一控制信号,将所述第一多路选择器连接的所述第一寄存器的输出端输出的数据,或所述同步FIFO的数据输入端输入的数据,输出至所述第一多路选择器连接的所述第一寄存器的输入端;所述第一逻辑电路,用于根据所述同步FIFO的空标志输出信号与输入所述同步FIFO的读信号得到读标志信号;所述第二逻辑电路,用于根据所述同步FIFO的满标志输出信号与输入所述同步FIFO的写信号得到写标志信号;所述指示电路,用于根据所述读标志信号与所述写标志信号得到对应的所述第一寄存器的所述状态值。
可见,本申请所提供的同步FIFO,基于寄存器搭建FIFO所需的存储,舍弃了RAM,无需占用RAM,无需RAM读写使能以及地址等控制,能够避免RAM资源浪费。在存储深度要求较少的设计中占用资源少,极大的减少了芯片面积,节省成本,并且更便于布局布线。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有FIFO的示意图;
图2为本申请实施例所提供的一种同步FIFO的示意图;
图3为本申请实施例所提供的另一种同步FIFO的示意图。
具体实施方式
本申请的核心是提供一种同步FIFO,无需占用RAM,避免RAM资源浪费,在存储深度较少的设计中,能够极大的减少芯片面积,节省成本,并且更便于布局布线。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图2,图2为本申请实施例所提供的一种同步FIFO的示意图,参考图2所示,该同步FIFO主要包括:
数据存储电路10、第一逻辑电路20、第二逻辑电路30以及指示电路40。
其中,数据存储电路10包括N路第一寄存器、N路第一多路选择器以及N路第一判决器;N为正整数。第一寄存器与第一多路选择器相间连接。沿着同步FIFO的数据输出端(图2中Out_data所在一端)向同步FIOF的数据输入端(图2中IN_data所在一端)的方向,依次为第一个第一寄存器、第一个第一多路选择器、第二个第一寄存器、第二个第一多路选择器、第三个第一寄存器、第三个第一多路选择器,依次类推,第N个第一寄存器、第N个第一多路选择器。
每一个第一多路选择器有一路与其对应的第一判决器。每一个第一多路选择器的输出端连接一个第一寄存器的输入端,每一个第一多路选择器的输入端均与同步FIFO的数据输入端连接。第N个第一多路选择器的输入端还连接第N个第一寄存器的输出端。第j个第一多路选择器的输入端还连接第j+1个第一寄存器的输出端,1<=j<N。
第一寄存器用于存储数据。第一判决器用于根据对应的第一多路选择器连接的第一寄存器的状态值,输出第一控制信号至对应的第一多路选择器。第一寄存器的状态值用于表征第一寄存器是否可用,即是否有数据。
第一多路选择器用于根据第一控制信号,将输入的两路数据中的一路输出,即将第一多路选择器连接的第一寄存器的输出端输出的数据,或同步FIFO的数据输入端输入的数据,输出至第一多路选择器连接的第一寄存器的输入端。
参考图3所示,在一种具体的实施方式中,第N个第一多路选择器具体用于:
若第N个第一寄存器的状态值为低,则输出同步FIFO的数据输入端输入的数据;
若第N个第一寄存器的状态值为高,则输出第N个第一寄存器输出的数据。
第j个第一多路选择器具体用于:1<=j<N;
当读标志信号为高,或第j个第一寄存器的状态值为低时,若第j+1个第一寄存器的状态值为低,则输出同步FIFO的数据输入端输入的数据;若第j+1个第一寄存器的状态值为高,则输出第j+1个第一寄存器输出的数据。
具体而言,与第N个第一多路选择器对应的第一判决器(即第N个第一判决器,对应于图3中所示的sel[i+1])有一路输入,为第N个第一寄存器(即图3中m[i+1])的状态值。第N个第一判决器根据第N个第一寄存器的状态值,进一步输出第一控制信号至对应的第N个第一多路选择器,使第N个第一多路选择器在第N个第一寄存器的状态值为低时,输出同步FIFO的数据输入端输入的数据至第N个第一寄存器;使第N个第一多路选择器在第N个第一寄存器的状态值为高时,输出第N个第一寄存器的状态值至第N个第一寄存器,即保持第N个第一寄存器中的数据不变。
与第j个(1<=j<N)第一多路选择器对应的第一判决器有三路输入,分别为读标志信号、第j个第一寄存器的状态值以及第j+1个第一寄存器的状态值。
图3中所示sel[0]为第一个第一多路选择器对应的第一判决器,sel[i]为第N-1个第一多路选择器对应的第一判决器,mux2_1表示第一多路选择器。
当读标志信号为高,或第j个第一寄存器的状态值取反后为高时,即第j个第一寄存器的状态值为低时,如果第j+1个第一寄存器的状态值为低,则第j个第一判决器输出第一控制信号,使第j个第一多路选择器输出同步FIFO的数据输入端输入的数据至第j个第一寄存器;如果第j+1个第一寄存器的状态值为高,则第j个第一多路选择器输出第j+1个第一寄存器输出的数据至第j个第一寄存器。
第一逻辑电路20用于根据同步FIFO的空标志输出信号(图2中所示empty)与输入同步FIFO的读信号(图2中所示read)得到读标志信号。具体而言,如果输入同步FIFO的读信号为高且空标志输出信号为低,则读标志信号为高,否则读标志信号为低。空标志输出信号为高,表示同步FIFO中没有数据;空标志输出信号为低,表示同步FIFO中有数据。
参考图3所示,在一种具体的实施方式中,第一逻辑电路20包括:第一与门与第一非门;第一非门的输入端连接空标志输出信号,第一非门的输出端连接第一与门的第一输入端,第一与门的第二输入端连接读信号,第一与门的输出端输出读标志信号。图3中qualified_read表示读标志信号。
由此,若空标志输出信号为高,则经由第一非门取反后,输出为低,此时无论读信号为高还是为低,第一逻辑电路20输出均为低。若空标志输出信号为低,则经由第一非门取反后,输出为高,此时若读信号为高,则第一逻辑电路20输出为高,若读信号为低,则第一逻辑电路20输出为低。
第二逻辑电路30用于根据同步FIFO的满标志输出信号与输入同步FIFO的写信号得到写标志信号。具体而言,如果输入同步FIFO的写信号为高且满标志输出信号为低,则第二逻辑电路30输出为高,否则第二逻辑电路30输出为低。满标志输出信号为高,表示同步FIFO存满数据;满标志输出信号为低,表示同步FIFO未存满数据。
参考图3所示,在一种具体的实施方式中,第二逻辑电路30包括:第二与门与第二非门;第二非门的输入端连接满标志输出信号,第二非门的输出端连接第二与门的第一输入端,第二与门的第二输入端连接写信号,第二与门的输出端输出写标志信号。图3中qualified_write表示写标志信号。
由此,若满标志输出信号为高,则经由第二非门取反后,输出为低,此时无论写信号为高还是为低,第二逻辑电路30输出均为低。若满标志输出信号为低,则经由第二非门取反后,输出为高,此时若写信号为高,则第二逻辑电路30输出为高,若写信号为低,则第二逻辑电路30输出为低。
其中,与第一个第一寄存器对应的指示电路40输出的状态值取反后,得到空标志输出信号。具体与第一个第一寄存器对应的指示电路40的输出端可连接一路非门,将其输出的状态值取反后,得到空标志输出信号。与第N个第一寄存器对应的指示电路40输出的状态值,作为满标志输出信号。
指示电路40为N路,且指示电路40与第一寄存器一一对应。指示电路40用于根据读标志信号与写标志信号得到对应的第一寄存器的状态值。
其中,在一种具体的实施方式中,指示电路40包括:
第二判决器、第二多路选择器以及第二寄存器;
第二判决器,用于根据读标志信号与写标志信号,输出第二控制信号至第二多路选择器;
第二多路选择器,用于根据第二控制信号,将输入第二多路选择器的数据中的一路数据输出至第二寄存器;
第二寄存器,用于输出对应的第一寄存器的状态值。
具体而言,参考图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个第一寄存器对应。
每一路第二判决器有两路输入,即读标志信号与写标志信号。第二判决器根据读标志信号与写标志信号,输出第二控制信号至相应的第二多路选择器,使第二多路选择器输出其输入的数据中的一路数据至对应的第二寄存器。第二寄存器的输出即为指示电路40对应的第一寄存器的状态值。
进一步,参考图3所示,在一种具体的实施方式中,第二多路选择的数据输出情况如下:
与第一个第一寄存器对应的指示电路40中的第二多路选择器具体用于:
若读标志信号为低且写标志信号为高,则输出数值1;
若读标志信号为高且写标志信号为低,则输出第二个第一寄存器的状态值;
若读标志信号与写标志信号同为高或者同为低,则输出第一个第一寄存器的状态值。
与第N个第一寄存器对应的指示电路40中的第二多路选择器具体用于:
若读标志信号为低且写标志信号为高,则输出第N-1个第一寄存器的状态值;
若读标志信号为高且写标志信号为低,则输出数值零;
若读标志信号与写标志信号同为高或者同为低,则输出第N个第一寄存器的状态值。
与第j个第一寄存器对应的指示电路40中的第二多路选择器具体用于:1<j<N;
若读标志信号为低且写标志信号为高,则输出第j-1个第一寄存器的状态值;
若读标志信号为高且写标志信号为低,则输出第j+1个第一寄存器的状态值;
若读标志信号与写标志信号同为高或者同为低,则输出第j个第一寄存器的状态值。
具体而言,每一路第二多路选择器有三路输入。
其中,与第一个第一寄存器对应的指示电路40中的第二多路选择器的输入为数值1、第二个第一寄存器的状态值(图3中所示u[1]_Q)、以及第一个第一寄存器的状态值(图3中所示u[0]_Q)。如果读标志信号为低且写标志信号为高,则输出数值1至u[0]。如果读标志信号为高且写标志信号为低,则输出第二个第一寄存器的状态值,即输出m[1]的状态值至u[0]。如果读标志信号与写标志信号同为高或者同为低,则输出第一个第一寄存器的状态值,即输出m[0]的状态值至u[0],即保持u[0]中的数据不变。
与第N个第一寄存器对应的指示电路40中的第二多路选择器的输入为数值零、第N-1个第一寄存器的状态值(图3中所示u[i]_Q)以及第N个第一寄存器的状态值。如果读标志信号为低且写标志信号为高,则输出第N-1个第一寄存器的状态值至u[i+1]。如果读标志信号为高且写标志信号为低,则输出数值零至u[i+1];如果读标志信号与写标志信号同为高或者同为低,则输出第N个第一寄存器的状态值至u[i+1]。
与第j个(1<j<N)第一寄存器对应的指示电路40中的第二多路选择器的输入为第j-1个第一寄存器的状态值(图3中所示u[i-1]_Q)、第j+1个第一寄存器的状态值(图3中所示u[i+1]_Q),第j个第一寄存器的状态值(图3中所示u[i]_Q)。如果读标志信号为低且写标志信号为高,则输出第j-1个第一寄存器的状态值至u[i];如果读标志信号为高且写标志信号为低,则输出第i+1个第一寄存器的状态值至u[i];如果读标志信号与写标志信号同为高或者同为低,则输出第j+1个第一寄存器的状态值至u[i]。
需要说明的是,图3中虚线表示的寄存器与同名的实线表示的寄存器为一个。例如,虚线表示的第二寄存器u[0]与实线表示的第二寄存器u[0],为同一个第二寄存器。
综上所述,本申请所提供的同步FIFO,基于寄存器搭建FIFO所需的存储,舍弃了RAM,无需占用RAM,无需RAM读写使能以及地址等控制,能够避免RAM资源浪费。在存储深度要求较少的设计中占用资源少,极大的减少了芯片面积,节省成本,并且更便于布局布线。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到,在本申请提供的实施例的基本原理下结合实际情况可以存在多个例子,在不付出足够的创造性劳动下,应均在本申请的范围内。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
以上对本申请所提供的同步FIFO进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

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<N;
当所述读标志信号为高,或第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<N;
若所述读标志信号为低且所述写标志信号为高,则输出第j-1个所述第一寄存器的状态值;
若所述读标志信号为高且所述写标志信号为低,则输出第j+1个所述第一寄存器的状态值;
若所述读标志信号与所述写标志信号同为高或者同为低,则输出第j个所述第一寄存器的状态值。
CN202111487415.2A 2021-12-08 2021-12-08 一种同步fifo Active CN113900975B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202111487415.2A CN113900975B (zh) 2021-12-08 2021-12-08 一种同步fifo
US18/564,546 US12079556B2 (en) 2021-12-08 2022-06-22 Synchronous FIFO
PCT/CN2022/100478 WO2023103337A1 (zh) 2021-12-08 2022-06-22 一种同步fifo

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111487415.2A CN113900975B (zh) 2021-12-08 2021-12-08 一种同步fifo

Publications (2)

Publication Number Publication Date
CN113900975A CN113900975A (zh) 2022-01-07
CN113900975B true CN113900975B (zh) 2022-03-08

Family

ID=79025532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111487415.2A Active CN113900975B (zh) 2021-12-08 2021-12-08 一种同步fifo

Country Status (3)

Country Link
US (1) US12079556B2 (zh)
CN (1) CN113900975B (zh)
WO (1) WO2023103337A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113900975B (zh) * 2021-12-08 2022-03-08 苏州浪潮智能科技有限公司 一种同步fifo
CN117784885A (zh) * 2023-12-29 2024-03-29 中科南京智能技术研究院 一种同步fifo电路及其控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118835A (en) * 1997-09-05 2000-09-12 Lucent Technologies, Inc. Apparatus and method of synchronizing two logic blocks operating at different rates
CN205176827U (zh) * 2014-10-07 2016-04-20 意法半导体股份有限公司 具有突发指示符的双同步电子设备
CN106776357A (zh) * 2016-12-28 2017-05-31 无锡芯响电子科技有限公司 一种多路读写多容量选择的fifo控制器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2373595B (en) * 2001-03-15 2005-09-07 Italtel Spa A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
US7181563B2 (en) * 2003-10-23 2007-02-20 Lsi Logic Corporation FIFO memory with single port memory modules for allowing simultaneous read and write operations
US7536662B2 (en) * 2006-06-27 2009-05-19 Atrenta, Inc. Method for recognizing and verifying FIFO structures in integrated circuit designs
CN101477833B (zh) * 2009-01-08 2010-12-01 西安电子科技大学 钟控异步fifo存储器
US8724665B2 (en) * 2009-07-20 2014-05-13 Synopsys, Inc. Pseudo-synchronous time division multiplexing
CN102053815B (zh) * 2009-11-05 2012-10-31 上海华虹集成电路有限责任公司 同步fifo电路系统
CN111832240B (zh) * 2020-07-02 2024-04-19 上海思朗科技有限公司 Fifo数据传输方法及fifo存储装置
CN113900975B (zh) * 2021-12-08 2022-03-08 苏州浪潮智能科技有限公司 一种同步fifo

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118835A (en) * 1997-09-05 2000-09-12 Lucent Technologies, Inc. Apparatus and method of synchronizing two logic blocks operating at different rates
CN205176827U (zh) * 2014-10-07 2016-04-20 意法半导体股份有限公司 具有突发指示符的双同步电子设备
CN106776357A (zh) * 2016-12-28 2017-05-31 无锡芯响电子科技有限公司 一种多路读写多容量选择的fifo控制器

Also Published As

Publication number Publication date
US20240256748A1 (en) 2024-08-01
WO2023103337A1 (zh) 2023-06-15
CN113900975A (zh) 2022-01-07
US12079556B2 (en) 2024-09-03

Similar Documents

Publication Publication Date Title
CN113900975B (zh) 一种同步fifo
CN111367495B (zh) 一种异步先入先出的数据缓存控制器
US10318468B2 (en) FPGA-based interface signal remapping method
CN111832240B (zh) Fifo数据传输方法及fifo存储装置
EP1402340B1 (en) First-in, first-out memory system and method thereof
US10133549B1 (en) Systems and methods for implementing a synchronous FIFO with registered outputs
CN107656886B (zh) 一种跨时钟域信号处理电路及其处理方法
CN115221082B (zh) 一种数据缓存方法、装置及存储介质
CN112000603B (zh) 一种握手协议电路、芯片及计算机设备
US7979607B2 (en) Cascadable high-performance instant-fall-through synchronous first-in-first-out (FIFO) buffer
JP2004062630A (ja) Fifoメモリ及び半導体装置
CN111723541A (zh) 一种跨时钟域数据接口的实现方法
US7136309B2 (en) FIFO with multiple data inputs and method thereof
JPH11163864A (ja) セルバッファ回路
JP2000231785A (ja) 高速メモリ・ベースのバッファならびにそれを使用するシステムおよび方法
EP0840203B1 (en) Semiconductor FIFO memory
CN111741235B (zh) 基于fpga的多路视频切换方法
US10074409B2 (en) Configurable storage blocks having simple first-in first-out enabling circuitry
CN117130974A (zh) 用于ddr片上网络系统的路由器和路由方法、片上网络系统
CN109766293B (zh) 连接芯片上fpga和人工智能模块的电路和系统芯片
CN112181356A (zh) 一种可配置的多进多出fifo的设计方法及装置
CN106445842B (zh) 一种数据缓存器和数据缓存方法
Song Bit-Width Conversion Based on Asynchronous FIFO
CN118606233A (zh) 基于双端口ram的寄存器输出的fifo电路、方法、芯片及设备
Wang et al. A 6.4 Gbps FIFO design for 8-32 two-way data exchange bus

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