CN108829373A - 一种异步fifo实现电路 - Google Patents

一种异步fifo实现电路 Download PDF

Info

Publication number
CN108829373A
CN108829373A CN201810533118.9A CN201810533118A CN108829373A CN 108829373 A CN108829373 A CN 108829373A CN 201810533118 A CN201810533118 A CN 201810533118A CN 108829373 A CN108829373 A CN 108829373A
Authority
CN
China
Prior art keywords
fifo1
fifo2
signal
state
control 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
CN201810533118.9A
Other languages
English (en)
Other versions
CN108829373B (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.)
Xian Microelectronics Technology Institute
Original Assignee
Xian Microelectronics Technology Institute
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 Xian Microelectronics Technology Institute filed Critical Xian Microelectronics Technology Institute
Priority to CN201810533118.9A priority Critical patent/CN108829373B/zh
Publication of CN108829373A publication Critical patent/CN108829373A/zh
Application granted granted Critical
Publication of CN108829373B publication Critical patent/CN108829373B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明一种异步fifo实现电路,包括fifo控制模块,以及基于异步时钟clk1和clk2设置的基于clk1的同步fifo1和基于clk2的同步fifo2;同步fifo1和同步fifo2中的数据宽度相同;fifo控制模块包括与基于clk1的同步fifo1交互的fifo1状态控制模块,与基于clk2的同步fifo2交互的fifo2状态控制模块,以及跨时钟域脉冲转换模块;fifo1状态控制模块和fifo2状态控制模块用于根据电路的输入信号分别对同步fifo1和同步fifo2进行状态控制;状态控制包括IDLE态、WR态和RD态;跨时钟域脉冲转换模块用于clk1时钟域和clk2时钟域之间脉冲信号的转换。

Description

一种异步fifo实现电路
技术领域
本发明涉及硬件电路设计领域,具体为一种异步fifo实现电路。
背景技术
在硬件设计中,大数据量的传输一般会使用到fifo。对于写入和读出数据为同一时钟域的同步fifo,可采用同步双端口RAM或寄存器实现;而对于写入和读出数据为不同时钟域下的异步fifo,一般采用异步双端口RAM实现。对于常用的工艺库,如ASIC/SOC实现工艺库,以及FPGA及CPLD基本单元库,大多数无异步双端口RAM,或RAM容量与设计需求不符,为此直接限制了设计的灵活性,需使用其他设计方案完成所需功能。
现有技术中,公开号为CN 102866874A的中国专利“通用异步FIFO模块存储方法”,解决了现有异步FIFO模块存在对于D锁存器存储结构fifo的IP核不能够使用的问题,但该方法在每次读写FIFO时,均要判断不同时钟域下的读写地址关系,直接导致异步FIFO的读写速度慢;公开号为CN1478226的中国专利“混合异步同步系统的低等待时间FIFO电路”,通过对存储单元的控制,解决了FIFO读写速度慢的问题,但电路逻辑复杂,通用性差;申请号为CN200810159783.2的中国专利“基于FIFO的异步双FIFO的数据缓存方法”,所设计异步双FIFO对接收、发送的连续和分段有严格的要求,通用性差;公开号为CN 102253916A的中国专利“同异步转换的双端双通道FIFO”,采用固定地址机制进行异步读写,与实际应用相关,通用性差。但是均会受限于工艺库,还存在着电路逻辑复杂,通用性差的问题。
发明内容
针对现有技术中存在的问题,本发明提供一种异步fifo实现电路,可使异步fifo的实现对工艺库受限的程度最小化,电路逻辑简单,通用性强。
本发明是通过以下技术方案来实现:
一种异步fifo实现电路,包括fifo控制模块,以及基于异步时钟clk1和clk2设置的基于clk1的同步fifo1和基于clk2的同步fifo2;
所述的同步fifo1和同步fifo2中的数据宽度相同;
所述的fifo控制模块包括与基于clk1的同步fifo1交互的fifo1状态控制模块,与基于clk2的同步fifo2交互的fifo2状态控制模块,以及跨时钟域脉冲转换模块;fifo1状态控制模块和fifo2状态控制模块用于根据电路的输入信号分别对同步fifo1和同步fifo2进行状态控制;状态控制包括IDLE态、WR态和RD态三种状态控制;跨时钟域脉冲转换模块用于clk1时钟域和clk2时钟域之间脉冲信号的转换。
优选的,所述电路包括如下端口,开始执行信号start、结束执行信号end、fifo类型选择信号sel、时钟clk1、基于fifo1的清空信号flush1、基于fifo1的读使能信号rd1、基于fifo1的读数据rdata1、基于fifo1的写使能信号wr1、基于fifo1的写数据wdata1、基于fifo1的满标志full1、基于fifo1的几乎满标志af1、基于fifo1的空标志empty1、基于fifo1的几乎空标志ae1、时钟clk2、基于fifo2的清空信号flush2、基于fifo2的读使能信号rd2、基于fifo2的读数据rdata2、基于fifo2的写使能信号wr2、基于fifo2的写数据wdata2、基于fifo2的满标志full2、基于fifo2的几乎满标志af2、基于fifo2的空标志empty2和基于fifo2的几乎空标志ae2。
进一步,开始执行信号start、结束执行信号end分别连接fifo1状态控制模块和跨时钟域脉冲转换模块;fifo类型选择信号sel连接fifo1状态控制模块,其取反连接fifo2状态控制模块;fifo1状态控制输出fifo1写请求信号wr_req1、fifo2写授权信号wr_gntq,连接到跨时钟域脉冲转换模块;fifo2状态控制输出fifo2写请求信号wr_req2、fifo1写授权信号wr_gnts,连接到跨时钟域脉冲转换模块;跨时钟域脉冲转换模块输出fifo1写授权信号wr_gnt1和fifo2的写请求信号wr_reqq,连接到fifo1状态控制模块;跨时钟域脉冲转换模块输出fifo2写授权信号wr_gnt2和fifo1的写请求信号wr_regs,连接到fifo2状态控制模块。
进一步,基于fifo1的满标志full1、基于fifo1的几乎满标志af1、基于fifo1的空标志empty1、基于fifo1的几乎空标志ae1信号用于标志同步fifo1的状态;基于fifo2的几乎满标志af2、基于fifo2的空标志empty2、基于fifo2的几乎空标志ae2用于标志同步fifo2的状态。
进一步,fifo1状态控制模块和fifo2状态控制模块设计相同,其状态机分为如下三种状态;
初始状态机为IDLE态,当开始执行信号start有效后,根据fifo类型选择信号sel信号选择,当sel选择为0时,状态机选择为RD态,否则选择为WR态;
RD态判定在当前fifo非空条件下,对写操作请求wr_req反馈写授权信号wr_gnt,同时控制进行写数据的读出,并确保读出数据在下一次写操作请求有效前,数据保持稳定,在结束执行信号end有效后,转入IDLE态;
WR态判定在当前fifo非满条件下,发出写操作请求wr_req,并根据写授权信号wr_gnt,完成数据的写入操作,在结束执行信号end有效后,转入IDLE态。
进一步,跨时钟域脉冲转换模块用于clk1时钟域和clk2时钟域之间脉冲信号的转换;
针对clk1时钟域下的脉冲信号:开始执行信号start、结束执行信号end、fifo1写请求信号wr_req1和fifo2写授权信号wr_gntq,分别生成clk2时钟域下的脉冲信号:开始执行信号starts、结束执行信号ends、fifo1写请求信号wr_reqs和fifo2写授权信号wr_gnt2;
针对clk2时钟域下的脉冲信号:fifo2写请求信号wr_req2和fifo1写授权信号wr_gnts,分别生成clk1时钟域下的脉冲信号:fifo1写请求信号wr_reqq和fifo2写授权信号wr_gnt1。
进一步,当fifo类型选择信号sel=0时,电路呈基于clk1的写端口和基于clk2的读端口;
同步fifo1接收基于clk1的数据,并将数据读出写入同步fifo2;同步fifo2接收同步fifo1的数据,并基于clk2将数据读出;
其基于fifo1的读使能信号rd1、基于fifo1的读数据rdata1、基于fifo2的写使能信号wr2和基于fifo2的写数据wdata2无效;
fifo1状态控制模块使用IDLE和WR状态,fifo2状态控制模块使用IDLE和RD状态;wr_req1、wr_gnt1、wr_regs和wr_gnts信号无效。
进一步,当fifo类型选择信号sel=1时,电路呈基于clk1的读端口和基于clk2的写端口;
同步fifo2接收基于clk2的数据,并将数据读出写入同步fifo1;同步fifo1接收同步fifo2的数据,并基于clk1将数据读出;
其基于fifo2的读使能信号rd2、基于fifo2的读数据rdata2、基于fifo1的写使能信号wr1和基于fifo1的写数据wdata1无效;
fifo2状态控制模块使用IDLE和WR状态,fifo1状态控制模块使用IDLE和RD状态;wr_req2、wr_gnt2、wr_regq和wr_gntq信号无效。
与现有技术相比,本发明具有以下有益的技术效果:
本发明一种异步fifo的实现电路,基于现有工艺库条件实现的基于异步时钟的2个同步fifo,完成异步fifo的实现,控制逻辑简单,大大减少异步fifo对工艺库受限的影响,实现电路通用性强。其具体效果如下:
1)可完成异步时钟域下数据的正确写入和读出功能;
2)采用基于clk1的同步fifo1和基于clk2的同步fifo2来实现异步fifo,可最小化工艺库对异步fifo的设计限制,同时fifo1和fifo2对fifo仅要求宽度保持一致,深部可不一致,可根据实际需求进行设计,使设计更加灵活。
3)该异步fifo可通过fifo类型选择信号sel选择基于时钟的端口作为写端口还是作为读端口,使用灵活,在发送接收fifo不同时使用的设计中,可仅使用一个异步fifo,通过控制sel信号,改变基于时钟的读写端口,完成异步发送fifo和异步接收fifo的功能。
4)对于不同需求下的异步fifo,该电路的实现方法明确,控制逻辑简单,通用性强。
附图说明
图1为基于clk的fifo端口结构框图。
图2为本发明实例中所述的一种异步fifo实现电路示意图。
图3为本发明实例中所述的sel=0时的异步fifo实现电路示意图。
图4为本发明实例中所述的sel=1时的异步fifo实现电路示意图。
具体实施方式
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
本发明一种异步fifo实现电路,其实现思路如下:
首先,基于异步时钟clk1和clk2,分别完成基于clk1的同步fifo1和基于clk2的同步fifo2的实现,其中,fifo1和fifo2对数据宽度要求相同,数据深度可不同。
其次,基于clk1的同步fifo1、基于clk2的同步fifo2,以及fifo控制模块共同完成异步fifo的实现。
第三,fifo控制模块由fifo1状态控制模块、fifo2状态控制模块以及跨时钟域脉冲转换模块组成。
第四,fifo1状态控制模块和fifo2状态控制模块设计相同,其状态机可分为三种状态,
初始状态机为IDLE态,当开始执行信号start有效后,根据fifo类型选择信号sel信号选择,当sel选择为0时,状态机选择为RD态,否则选择为WR态;
RD态判定在当前fifo非空条件下,对写操作请求wr_req反馈写授权信号wr_gnt,同时控制进行写数据的读出,并确保读出数据在下一次写操作请求有效前,数据保持稳定,在结束执行信号end有效后,转入IDLE态;
WR态判定在当前fifo非满条件下,发出写操作请求wr_req,并根据写授权信号wr_gnt,完成数据的写入操作,在结束执行信号end有效后,转入IDLE态。
第五,跨时钟域脉冲转换模块完成不同时钟域间脉冲的转换。针对clk1时钟域下的脉冲信号:开始执行信号start、结束执行信号end、fifo1写请求信号wr_req1、fifo2写授权信号wr_gntq,分别生成clk2时钟域下的脉冲信号:开始执行信号starts、结束执行信号ends、fifo1写请求信号wr_reqs、fifo2写授权信号wr_gnt2;针对clk2时钟域下的脉冲信号:fifo2写请求信号wr_req2、fifo1写授权信号wr_gnts,分别生成clk1时钟域下的脉冲信号:fifo1写请求信号wr_reqq、fifo2写授权信号wr_gnt1。
最后,开始执行信号start、结束执行信号end分别连接fifo1状态控制和跨时钟域脉冲转换模块;fifo类型选择信号sel连接fifo1状态控制模块,其取反连接fifo2状态控制模块;fifo1状态控制输出fifo1写请求信号wr_req1、fifo2写授权信号wr_gntq,连接到跨时钟域脉冲转换模块;fifo2状态控制输出fifo2写请求信号wr_req2、fifo1写授权信号wr_gnts,连接到跨时钟域脉冲转换模块;跨时钟域脉冲转换模块输出fifo1写授权信号wr_gnt1和fifo2的写请求信号wr_reqq,连接到fifo1状态控制模块;跨时钟域脉冲转换模块输出fifo2写授权信号wr_gnt2和fifo1的写请求信号wr_regs,连接到fifo2状态控制模块。
具体的,如图1所示,基于clk的同步fifo的端口包括:时钟clk、fifo清空信号flush、读使能信号rd、读出数据rdata、写入使能信号wr、写入数据wdata、fifo满标志full、fifo几乎满标志af、fifo空标志empty、fifo几乎空标志ae。
如图2为一种异步fifo实现电路,由基于clk1的同步fifo1、基于clk2的同步fifo2以及fifo控制模块组成。该电路的端口为:开始执行信号start、结束执行信号end、fifo类型选择信号sel、时钟clk1、基于fifo1的清空信号flush1、基于fifo1的读使能信号rd1、基于fifo1的读数据rdata1、基于fifo1的写使能信号wr1、基于fifo1的写数据wdata1、基于fifo1的满标志full1、基于fifo1的几乎满标志af1、基于fifo1的空标志empty1、基于fifo1的几乎空标志ae1、时钟clk2、基于fifo2的清空信号flush2、基于fifo2的读使能信号rd2、基于fifo2的读数据rdata2、基于fifo2的写使能信号wr2、基于fifo2的写数据wdata2、基于fifo2的满标志full2、基于fifo2的几乎满标志af2、基于fifo2的空标志empty2、基于fifo2的几乎空标志ae2。
fifo控制模块由fifo1状态控制、fifo2状态控制以及跨时钟域脉冲转换模块组成。开始执行信号start、结束执行信号end分别连接fifo1状态控制和跨时钟域脉冲转换模块;fifo类型选择信号sel连接fifo1状态控制模块,其取反连接fifo2状态控制模块;fifo1状态控制输出fifo1写请求信号wr_req1、fifo2写授权信号wr_gntq,连接到跨时钟域脉冲转换模块;fifo2状态控制输出fifo2写请求信号wr_req2、fifo1写授权信号wr_gnts,连接到跨时钟域脉冲转换模块;跨时钟域脉冲转换模块输出fifo1写授权信号wr_gnt1和fifo2的写请求信号wr_reqq,连接到fifo1状态控制模块;跨时钟域脉冲转换模块输出fifo2写授权信号wr_gnt2和fifo1的写请求信号wr_regs,连接到fifo2状态控制模块。
基于fifo1的满标志full1、基于fifo1的几乎满标志af1、基于fifo1的空标志empty1、基于fifo1的几乎空标志ae1信号用于标志fifo1的状态。基于fifo2的几乎满标志af2、基于fifo2的空标志empty2、基于fifo2的几乎空标志ae2用于标志fifo2的状态。
fifo1状态控制模块和fifo2状态控制模块设计相同,其状态机可分为三种状态,初始状态机为IDLE态,当开始执行信号start有效后,根据fifo类型选择信号sel信号选择,当sel选择为0时,状态机选择为RD态,否则选择为WR态;RD态判定在当前fifo非空条件下,对写操作请求wr_req反馈写授权信号wr_gnt,同时控制进行写数据的读出,并确保读出数据在下一次写操作请求有效前,数据保持稳定,在结束执行信号end有效后,转入IDLE态;WR态判定在当前fifo非满条件下,发出写操作请求wr_req,并根据写授权信号wr_gnt,完成数据的写入操作,在结束执行信号end有效后,转入IDLE态。
跨时钟域脉冲转换模块完成不同时钟域间脉冲的转换。针对clk1时钟域下的脉冲信号:开始执行信号start、结束执行信号end、fifo1写请求信号wr_req1、fifo2写授权信号wr_gntq,分别生成clk2时钟域下的脉冲信号:开始执行信号starts、结束执行信号ends、fifo1写请求信号wr_reqs、fifo2写授权信号wr_gnt2;针对clk2时钟域下的脉冲信号:fifo2写请求信号wr_req2、fifo1写授权信号wr_gnts,分别生成clk1时钟域下的脉冲信号:fifo1写请求信号wr_reqq、fifo2写授权信号wr_gnt1。
当fifo类型选择信号sel=0时,如图3所示,异步fifo表现出的是基于clk1的写端口和基于clk2的读端口,即:fifo1接收基于clk1的数据,并将数据读出写入fifo2;fifo2接收fifo1的数据,并基于clk2将数据读出。在该电路下,异步fifo的端口基于fifo1的读使能信号rd1、基于fifo1的读数据rdata1、基于fifo2的写使能信号wr2、基于fifo2的写数据wdata2无效。fifo1状态控制模块使用IDLE和WR状态,fifo2状态控制模块使用IDLE和RD状态。wr_req1、wr_gnt1、wr_regs、wr_gnts信号无效。
当fifo类型选择信号sel=1时,如图4所示,异步fifo表现出的是基于clk1的读端口和基于clk2的写端口,即:fifo2接收基于clk2的数据,并将数据读出写入fifo1;fifo1接收fifo2的数据,并基于clk1将数据读出。在该电路下,异步fifo的端口基于fifo2的读使能信号rd2、基于fifo2的读数据rdata2、基于fifo1的写使能信号wr1、基于fifo1的写数据wdata1无效。fifo2状态控制模块使用IDLE和WR状态,fifo1状态控制模块使用IDLE和RD状态。wr_req2、wr_gnt2、wr_regq、wr_gntq信号无效。
本发明已经应用于一款高密度集成多种外设的SOC设计中,该SoC使用了本发明中的异步fifo。针对该SoC使用的工艺库中无异步双端口RAM问题,本发明给出了一种解决方案,加速了异步时钟域间大数据量传输,本电路设计逻辑简单,通用性强。
首先,基于异步时钟clk1和clk2,分别完成基于clk1的同步fifo1和基于clk2的同步fifo2的实现,其中,fifo1和fifo2对数据宽度要求相同,数据深度可不同。
其次,基于clk1的同步fifo1、基于clk2的同步fifo2,以及fifo控制模块共同完成异步fifo的实现。
第三,fifo控制模块由fifo1状态控制模块、fifo2状态控制模块以及跨时钟域脉冲转换模块组成。
第四,fifo1状态控制模块和fifo2状态控制模块设计相同,其状态机可分为三种状态,
初始状态机为IDLE态,当开始执行信号start有效后,根据fifo类型选择信号sel信号选择,当sel选择为0时,状态机选择为RD态,否则选择为WR态;
RD态判定在当前fifo非空条件下,对写操作请求wr_req反馈写授权信号wr_gnt,同时控制进行写数据的读出,并确保读出数据在下一次写操作请求有效前,数据保持稳定,在结束执行信号end有效后,转入IDLE态;
WR态判定在当前fifo非满条件下,发出写操作请求wr_req,并根据写授权信号wr_gnt,完成数据的写入操作,在结束执行信号end有效后,转入IDLE态。
第五,跨时钟域脉冲转换模块完成不同时钟域间脉冲的转换。针对clk1时钟域下的脉冲信号:开始执行信号start、结束执行信号end、fifo1写请求信号wr_req1、fifo2写授权信号wr_gntq,分别生成clk2时钟域下的脉冲信号:开始执行信号starts、结束执行信号ends、fifo1写请求信号wr_reqs、fifo2写授权信号wr_gnt2;针对clk2时钟域下的脉冲信号:fifo2写请求信号wr_req2、fifo1写授权信号wr_gnts,分别生成clk1时钟域下的脉冲信号:fifo1写请求信号wr_reqq、fifo2写授权信号wr_gnt1。
最后,开始执行信号start、结束执行信号end分别连接fifo1状态控制和跨时钟域脉冲转换模块;fifo类型选择信号sel连接fifo1状态控制模块,其取反连接fifo2状态控制模块;fifo1状态控制输出fifo1写请求信号wr_req1、fifo2写授权信号wr_gntq,连接到跨时钟域脉冲转换模块;fifo2状态控制输出fifo2写请求信号wr_req2、fifo1写授权信号wr_gnts,连接到跨时钟域脉冲转换模块;跨时钟域脉冲转换模块输出fifo1写授权信号wr_gnt1和fifo2的写请求信号wr_reqq,连接到fifo1状态控制模块;跨时钟域脉冲转换模块输出fifo2写授权信号wr_gnt2和fifo1的写请求信号wr_regs,连接到fifo2状态控制模块。

Claims (8)

1.一种异步fifo实现电路,其特征在于,包括fifo控制模块,以及基于异步时钟clk1和clk2设置的基于clk1的同步fifo1和基于clk2的同步fifo2;
所述的同步fifo1和同步fifo2中的数据宽度相同;
所述的fifo控制模块包括与基于clk1的同步fifo1交互的fifo1状态控制模块,与基于clk2的同步fifo2交互的fifo2状态控制模块,以及跨时钟域脉冲转换模块;fifo1状态控制模块和fifo2状态控制模块用于根据电路的输入信号分别对同步fifo1和同步fifo2进行状态控制;状态控制包括IDLE态、WR态和RD态三种状态控制;跨时钟域脉冲转换模块用于clk1时钟域和clk2时钟域之间脉冲信号的转换。
2.根据权利要求1所述的一种异步fifo实现电路,其特征在于,所述电路包括如下端口,开始执行信号start、结束执行信号end、fifo类型选择信号sel、时钟clk1、基于fifo1的清空信号flush1、基于fifo1的读使能信号rd1、基于fifo1的读数据rdata1、基于fifo1的写使能信号wr1、基于fifo1的写数据wdata1、基于fifo1的满标志full1、基于fifo1的几乎满标志af1、基于fifo1的空标志empty1、基于fifo1的几乎空标志ae1、时钟clk2、基于fifo2的清空信号flush2、基于fifo2的读使能信号rd2、基于fifo2的读数据rdata2、基于fifo2的写使能信号wr2、基于fifo2的写数据wdata2、基于fifo2的满标志full2、基于fifo2的几乎满标志af2、基于fifo2的空标志empty2和基于fifo2的几乎空标志ae2。
3.根据权利要求2所述的一种异步fifo实现电路,其特征在于,开始执行信号start、结束执行信号end分别连接fifo1状态控制模块和跨时钟域脉冲转换模块;fifo类型选择信号sel连接fifo1状态控制模块,其取反连接fifo2状态控制模块;fifo1状态控制输出fifo1写请求信号wr_req1、fifo2写授权信号wr_gntq,连接到跨时钟域脉冲转换模块;fifo2状态控制输出fifo2写请求信号wr_req2、fifo1写授权信号wr_gnts,连接到跨时钟域脉冲转换模块;跨时钟域脉冲转换模块输出fifo1写授权信号wr_gnt1和fifo2的写请求信号wr_reqq,连接到fifo1状态控制模块;跨时钟域脉冲转换模块输出fifo2写授权信号wr_gnt2和fifo1的写请求信号wr_regs,连接到fifo2状态控制模块。
4.根据权利要求2所述的一种异步fifo实现电路,其特征在于,基于fifo1的满标志full1、基于fifo1的几乎满标志af1、基于fifo1的空标志empty1、基于fifo1的几乎空标志ae1信号用于标志同步fifo1的状态;基于fifo2的几乎满标志af2、基于fifo2的空标志empty2、基于fifo2的几乎空标志ae2用于标志同步fifo2的状态。
5.根据权利要求2所述的一种异步fifo实现电路,其特征在于,fifo1状态控制模块和fifo2状态控制模块设计相同,其状态机分为如下三种状态;
初始状态机为IDLE态,当开始执行信号start有效后,根据fifo类型选择信号sel信号选择,当sel选择为0时,状态机选择为RD态,否则选择为WR态;
RD态判定在当前fifo非空条件下,对写操作请求wr_req反馈写授权信号wr_gnt,同时控制进行写数据的读出,并确保读出数据在下一次写操作请求有效前,数据保持稳定,在结束执行信号end有效后,转入IDLE态;
WR态判定在当前fifo非满条件下,发出写操作请求wr_req,并根据写授权信号wr_gnt,完成数据的写入操作,在结束执行信号end有效后,转入IDLE态。
6.根据权利要求2所述的一种异步fifo实现电路,其特征在于,跨时钟域脉冲转换模块用于clk1时钟域和clk2时钟域之间脉冲信号的转换;
针对clk1时钟域下的脉冲信号:开始执行信号start、结束执行信号end、fifo1写请求信号wr_req1和fifo2写授权信号wr_gntq,分别生成clk2时钟域下的脉冲信号:开始执行信号starts、结束执行信号ends、fifo1写请求信号wr_reqs和fifo2写授权信号wr_gnt2;
针对clk2时钟域下的脉冲信号:fifo2写请求信号wr_req2和fifo1写授权信号wr_gnts,分别生成clk1时钟域下的脉冲信号:fifo1写请求信号wr_reqq和fifo2写授权信号wr_gnt1。
7.根据权利要求2所述的一种异步fifo实现电路,其特征在于,当fifo类型选择信号sel=0时,电路呈基于clk1的写端口和基于clk2的读端口;
同步fifo1接收基于clk1的数据,并将数据读出写入同步fifo2;同步fifo2接收同步fifo1的数据,并基于clk2将数据读出;
其基于fifo1的读使能信号rd1、基于fifo1的读数据rdata1、基于fifo2的写使能信号wr2和基于fifo2的写数据wdata2无效;
fifo1状态控制模块使用IDLE和WR状态,fifo2状态控制模块使用IDLE和RD状态;wr_req1、wr_gnt1、wr_regs和wr_gnts信号无效。
8.根据权利要求2所述的一种异步fifo实现电路,其特征在于,当fifo类型选择信号sel=1时,电路呈基于clk1的读端口和基于clk2的写端口;
同步fifo2接收基于clk2的数据,并将数据读出写入同步fifo1;同步fifo1接收同步fifo2的数据,并基于clk1将数据读出;
其基于fifo2的读使能信号rd2、基于fifo2的读数据rdata2、基于fifo1的写使能信号wr1和基于fifo1的写数据wdata1无效;
fifo2状态控制模块使用IDLE和WR状态,fifo1状态控制模块使用IDLE和RD状态;wr_req2、wr_gnt2、wr_regq和wr_gntq信号无效。
CN201810533118.9A 2018-05-25 2018-05-25 一种异步fifo实现电路 Active CN108829373B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810533118.9A CN108829373B (zh) 2018-05-25 2018-05-25 一种异步fifo实现电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810533118.9A CN108829373B (zh) 2018-05-25 2018-05-25 一种异步fifo实现电路

Publications (2)

Publication Number Publication Date
CN108829373A true CN108829373A (zh) 2018-11-16
CN108829373B CN108829373B (zh) 2020-08-18

Family

ID=64146563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810533118.9A Active CN108829373B (zh) 2018-05-25 2018-05-25 一种异步fifo实现电路

Country Status (1)

Country Link
CN (1) CN108829373B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825344A (zh) * 2019-11-12 2020-02-21 天津飞腾信息技术有限公司 一种异步数据传输方法和结构
CN111274171A (zh) * 2018-12-04 2020-06-12 珠海格力电器股份有限公司 一种数据传输装置及方法
CN111580595A (zh) * 2020-05-08 2020-08-25 济南浪潮高新科技投资发展有限公司 一种用于fpga的相关衍生时钟域中信号同步的系统
CN112948322A (zh) * 2021-02-26 2021-06-11 西安微电子技术研究所 一种基于弹性缓存的虚通道及实现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124449A (ja) * 1996-06-05 1998-05-15 Compaq Computer Corp 複数バッファ割り当て機能を備えたコンピュータ・システム
JP4442199B2 (ja) * 2003-11-20 2010-03-31 ヤマハ株式会社 非同期信号入力装置及びサンプリング周波数変換装置
CN202394543U (zh) * 2011-12-30 2012-08-22 西安国能科技有限公司 一种钟控异步先入先出fifo存储器
CN105119715A (zh) * 2015-07-03 2015-12-02 合肥工业大学 一种基于重加密算法的fpga虚拟io片间互连数字电路
CN206133550U (zh) * 2016-07-08 2017-04-26 中南大学 一种soc异步时钟域信号接口的系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124449A (ja) * 1996-06-05 1998-05-15 Compaq Computer Corp 複数バッファ割り当て機能を備えたコンピュータ・システム
JP4442199B2 (ja) * 2003-11-20 2010-03-31 ヤマハ株式会社 非同期信号入力装置及びサンプリング周波数変換装置
CN202394543U (zh) * 2011-12-30 2012-08-22 西安国能科技有限公司 一种钟控异步先入先出fifo存储器
CN105119715A (zh) * 2015-07-03 2015-12-02 合肥工业大学 一种基于重加密算法的fpga虚拟io片间互连数字电路
CN206133550U (zh) * 2016-07-08 2017-04-26 中南大学 一种soc异步时钟域信号接口的系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
袁丹寿等: "基于MIPS核的片上系统总线控制器设计", 《计算机工程与应用》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274171A (zh) * 2018-12-04 2020-06-12 珠海格力电器股份有限公司 一种数据传输装置及方法
CN111274171B (zh) * 2018-12-04 2022-02-11 珠海格力电器股份有限公司 一种数据传输装置及方法
CN110825344A (zh) * 2019-11-12 2020-02-21 天津飞腾信息技术有限公司 一种异步数据传输方法和结构
CN111580595A (zh) * 2020-05-08 2020-08-25 济南浪潮高新科技投资发展有限公司 一种用于fpga的相关衍生时钟域中信号同步的系统
CN112948322A (zh) * 2021-02-26 2021-06-11 西安微电子技术研究所 一种基于弹性缓存的虚通道及实现方法
CN112948322B (zh) * 2021-02-26 2023-05-16 西安微电子技术研究所 一种基于弹性缓存的虚通道及实现方法

Also Published As

Publication number Publication date
CN108829373B (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
CN108829373A (zh) 一种异步fifo实现电路
KR100275407B1 (ko) 컴퓨터 버스 상의 공유 자원에 대한 신속한 액세스
EP0476990B1 (en) Dynamic bus arbitration
US6604179B2 (en) Reading a FIFO in dual clock domains
US20130318285A1 (en) Flash memory controller
JPH08255475A (ja) ページイン、バーストアウトfifo
JPH071901B2 (ja) データ・シンクロナイザ
US8806071B2 (en) Continuous read burst support at high clock rates
KR20080007506A (ko) 레이턴시에 둔감한 fifo 시그널링 프로토콜
US5333293A (en) Multiple input frequency memory controller
JPS5875232A (ja) 多重取出しバス・サイクル操作を与えるシステム
US3961312A (en) Cycle interleaving during burst mode operation
KR100288177B1 (ko) 메모리 액세스 제어 회로
EP0618537B1 (en) System and method for interleaving status information with data transfers in a communications adapter
US6157971A (en) Source-destination re-timed cooperative communication bus
US5007012A (en) Fly-by data transfer system
US7302508B2 (en) Apparatus and method for high speed data transfer
US5307476A (en) Floppy disk controller with DMA verify operations
Liljeberg et al. Asynchronous interface for locally clocked modules in ULSI systems
CN115586974B (zh) 内存控制器、系统、装置及电子设备
CN112162939B (zh) 进阶主机控制器及其控制方法
KR100593787B1 (ko) 통신 버스에서의 차동 스트로빙 방법 및 장치
US5999742A (en) Dual latch data transfer pacing logic using a timer to maintain a data transfer interval
US6421280B1 (en) Method and circuit for loading data and reading data
KR100194264B1 (ko) 고속 cpu와 lan 컨트롤러간의 직접 인터페이스방법

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