CN101833431B - 基于fpga实现的双向高速fifo存储器 - Google Patents

基于fpga实现的双向高速fifo存储器 Download PDF

Info

Publication number
CN101833431B
CN101833431B CN200910079799A CN200910079799A CN101833431B CN 101833431 B CN101833431 B CN 101833431B CN 200910079799 A CN200910079799 A CN 200910079799A CN 200910079799 A CN200910079799 A CN 200910079799A CN 101833431 B CN101833431 B CN 101833431B
Authority
CN
China
Prior art keywords
bus
reading
asynchronous
writing
data
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.)
Expired - Fee Related
Application number
CN200910079799A
Other languages
English (en)
Other versions
CN101833431A (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.)
Institute of Semiconductors of CAS
Original Assignee
Institute of Semiconductors of CAS
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 Institute of Semiconductors of CAS filed Critical Institute of Semiconductors of CAS
Priority to CN200910079799A priority Critical patent/CN101833431B/zh
Publication of CN101833431A publication Critical patent/CN101833431A/zh
Application granted granted Critical
Publication of CN101833431B publication Critical patent/CN101833431B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明属于存储器技术领域,公开了一种基于FPGA实现的双向高速FIFO存储器,包括第一异步总线接口模块、第一通讯信箱、第一单向异步FIFO读写模块、第二异步总线接口模块、第二通讯信箱和第二单向异步FIFO读写模块。该双向高速FIFO存储器的功能与德州仪器生产的SN74ABT3614相似,能够实现可编程的输出线宽,同步或异步的输入输出时钟,双向信箱通信功能。本发明优点是利用FPGA实现双向FIFO模块稳定速度快易于实现且占用资源少,在Xilinx Spartan3系列FPGA中可编程逻辑模块占用率不到7%,同时易于与其他逻辑功能集成,从而可以有效提高系统集成度减小系统尺寸降低功耗。

Description

基于FPGA实现的双向高速FIFO存储器
技术领域
本发明涉及FIFO存储器技术领域,尤其涉及一种基于现场可编程门阵列(FPGA)实现的双向高速先入先出(FIFO)存储器。
背景技术
FIFO在现代数字系统中有举足轻重的地位。它为不同时钟域之间的大量数据传输提供了可靠保证,从时钟同步性,它分为同步FIFO和异步FIFO;从传输数据的方向性,它分为单向FIFO和双向FIFO。
目前,双向FIFO都采用定制芯片完成。不但速度慢,价格相对高,而且造成系统集成度不高,无法有效降低系统尺寸和功耗。FPGA是由可配置逻辑块组成的数字集成电路,设计工程师能够对其进行重复配置,实现不同的功能。它的速度快、应用灵活、成本低的特点已经引起了广泛关注,但目前还没有利用FPGA来实现的双向FIFO装置。
发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种基于FPGA实现的双向高速FIFO存储器,以采用FPGA实现双向高速FIFO存储器,解决目前双向FIFO接口都采用分立元件实现,集成度不高且速度慢的问题。
(二)技术方案
为达到上述目的,本发明提供了一种基于FPGA实现的双向高速FIFO存储器,包括:
第一单向异步FIFO读写模块1,用于寄存第一总线A向第二总线B写入的数据;
第二单向异步FIFO读写模块2,用于寄存第二总线B向第一总线A写入的数据;
第一异步总线接口模块3,用于检测第一总线A存在的向第二总线B发送的数据传输请求,将第一总线A读写时序转换成内部读写时序,并选择第一通讯信箱5或第一单向异步FIFO读写模块1的读写功能;
第二异步总线接口模块4,用于检测第二总线B存在的向第一总线A发送的数据传输请求,将第二总线B读写时序转换成内部读写时序,并选择第二通讯信箱6或第二单向异步FIFO读写模块2的读写功能;
第一通讯信箱5,用于寄存第一总线A向第二总线B传输的信箱数据;
第二通讯信箱6,用于寄存第二总线B向第一总线A传输的信箱数据。
上述方案中,该存储器采用FPGA内部的单向异步FIFO读写模块完成双向FIFO读写操作,具体构成该存储器的各组成部分之间的连接关系为:
第一单向异步FIFO读写模块1,其写时钟域端口连接于第一异步总线接口模块3,读时钟域端口连接于第二异步总线接口模块4;
第二单向异步FIFO读写模块2,其写时钟域端口连接于第二异步总线接口模块4,读时钟域端口连接于第一异步总线接口模块3;
第一异步总线接口模块3,其一端连接外部的第一总线A,另一端连接于第一单向异步FIFO读写模块1的写时钟域端口、第一通讯信箱5的写入端、第二单向异步FIFO读写模块2的读时钟域端口和第二通讯信箱6的读出端;
第二异步总线接口模块4,其一端连接第一单向异步FIFO读写模块1的读时钟域端口、第一通讯信箱5的读出端、第二单向异步FIFO读写模块2的写时钟域端口和第二通讯信箱6的写入端,另一端连接外部的第二总线B;
第一通讯信箱5和第二通讯信箱6,一端连接第一异步总线接口模块3,另一端连接第二异步总线接口模块4。
上述方案中,所述第一单向异步FIFO读写模块1和所述第二单向异步FIFO读写模块2为带双独立时钟的FIFO,且读写时钟域同步。
上述方案中,所述第一异步总线接口模块3和所述第二异步总线接口模块4在向第一单向异步FIFO′读写模块1或第二单向异步FIFO读写模块2写入数据之前,判断第一单向异步FIFO读写模块1或第二单向异步FIFO读写模块2内数据是否超过门限值;在从第一单向异步FIFO读写模块1或第二单向异步FIFO读写模块2读出数据之前,判断第一单向异步FIFO读写模块1或第二单向异步FIFO读写模块2是否为空或几乎为空。
上述方案中,所述第一异步总线接口模块3和所述第二异步总线接口模块4控制选择通讯信箱或单向异步FIFO读写模块进行读写,具体操作方式为:
从第一总线A向第二总线B传输数据:
第一异步总线接口模块3接收第一总线A的写请求信号,当CSA有效、WRA有效且MBA无效时,第一异步总线接口模块3控制外部总线数据写入第一单向异步FIFO读写模块1;当CSA有效、MBA有效且WRA有效时,第一异步总线接口模块3控制外部数据写入第一通讯信箱5;
第二异步总线接口模块4接收第二总线B的读请求信号,当CSB有效、RDB有效且MBB无效时,第二异步总线接口模块4建立第一单向异步FIFO读写模块1的读时序,控制数据从第一单向异步FIFO读写模块1读出至外部总线;当CSB有效、MBB有效且RDB有效时,第二异步总线接口模块4建立第一通讯信箱5的读时序,控制数据从第一通讯信箱5读出至外部总线;
从第二总线B向第一总线A传输数据:
第二异步总线接口模块4接收第二总线B的写请求信号,当CSB有效、WRB有效且MBB无效时,第二异步总线接口模块4控制外部总线数据写入第二单向异步FIFO读写模块2;当CSB有效、MBB有效且WRB有效时,第二异步总线接口模块4控制外部数据写入第二通讯信箱6;
第一异步总线接口模块3接收第一总线A的读请求信号,当CSA有效、RDA有效且MBA无效时,第一异步总线接口模块3建立第二单向异步FIFO读写模块2的读时序,控制数据从第二单向异步FIFO读写模块2读出至外部总线;当CSA有效、MBA有效且RDA有效时,第一异步总线接口模块3建立第二通讯信箱6的读时序,控制数据从第二通讯信箱6读出至外部总线。
上述方案中,该存储器利用FPGA内部资源完成双向通讯信箱的功能,能够实现特殊数据不经过排队直接输出,即MBA信号无效时,数据由写时钟控制写入单向异步FIFO读写模块,再通过读时钟控制依次读出;MBA信号有效时,数据由写时钟控制写入单向异步FIFO读写模块,再通过读时钟直接读出;通讯信箱提供“满”“溢”标志。
上述方案中,在数据从第一总线A向第二总线B传输时,所述第一通讯信箱5或所述第二通讯信箱6由锁存器A、锁存器B、D触发器M、D触发器N构成;MBA、CSA和第一总线A写信号有效时,数据通过外部数据线进入锁存器A内,且D触发器M的Q端置1;MBFA有效MBEA无效表示AB方向的第一通讯信箱5满,第一总线A不能向第一通讯信箱5继续传送数据;第二总线B选中信箱且读信号有效时,数据从锁存器A读出到外部数据线,D触发器M的Q端置0,MBFA无效MBEA有效表示AB方向的第一通讯信箱5空,第一总线A能向第一通讯信箱5写入数据。
上述方案中,在数据从第二总线B向第一总线A传输时,MBB、CSB和第二总线B写信号有效,数据通过外部数据线进入锁存器B内,且D触发器N的Q端置1;MBFB有效MBEB无效表示BA方向的第二通讯信箱(6)满,第二总线B不能向第二通讯信箱(6)继续传送数据;第一总线A读信号有效时,数据从锁存器B读出到外部数据线,D触发器N的Q端置0,MBFB无效MBEB有效表示BA方向的第二通讯信箱(6)空,第二总线B能向第二通讯信箱(6)写入数据。
(三)有益效果
从上述技术方案可以看出,本发明具有以下优点:
1、本发明利用FPGA内部的IP核实现双向高速FIFO存储器,稳定、速度快。由于存储器的FPGA资源占用率很小,同时还可以实现其它逻辑功能,从而可以有效提高系统集成度,减小系统尺寸,降低功耗。另外,输入输出可编程带宽和通讯信箱通讯功能扩展了数据传输方式,为系统更有效工作提供保证。
2、本发明利用FPGA实现双向FIFO存储器稳定速度快易于实现且占用资源少,在Xilinx Spartan3系列FPGA中可编程逻辑模块占用率不到7%,同时易于与其他逻辑功能集成,从而可以有效提高系统集成度减小系统尺寸降低功耗。
3、本发明提供的基于FPGA实现的双向高速FIFO存储器,功能与德州仪器生产的SN74ABT3614相似,可以实现可编程的输出线宽,同步或异步的输入输出时钟,双向信箱通信功能。
附图说明
图1是本发明提供的基于FPGA实现的双向高速FIFO存储器的结构示意图;
图2是本发明提供的基于FPGA实现的双向高速FIFO存储器的电路图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明提供的基于FPGA实现的双向高速FIFO存储器,采用两个单向的FIFO单元,满足第一总线A和第二总线B可能同时读写的要求,并增设了通讯信箱,以解决特殊数据不经过排队直接输出的矛盾。所述FIFO(即第一单向异步FIFO读写模块1和第二单向异步FIFO读写模块2)和通讯信箱一端与第一异步总线接口模块3相连接,另外一端与第二异步总线接口模块4相连接。所述第一异步总线接口模块3和第二异步总线接口模块4控制数据向FIFO和通讯信箱进行读写。
如图1所示,图1是本发明提供的基于FPGA实现的双向高速FIFO存储器的结构示意图。该双向高速FIFO存储器包括第一异步总线接口模块3、第一通讯信箱5、第一单向异步FIFO读写模块1、第二异步总线接口模块4、第二通讯信箱6和第二单向异步FIFO读写模块2。其中第一异步总线接口模块3位于第一总线A的时钟域,第二异步总线接口模块4位于第二总线B的时钟域。
第一单向异步FIFO读写模块1,用于寄存第一总线A向第二总线B写入的数据。第二单向异步FIFO读写模块2,用于寄存第二总线B向第一总线A写入的数据。第一异步总线接口模块3,用于检测第一总线A存在的向第二总线B发送的数据传输请求,将第一总线A读写时序转换成内部读写时序,并选择第一通讯信箱5或第一单向异步FIFO读写模块1的读写功能。第二异步总线接口模块4,用于检测第二总线B存在的向第一总线A发送的数据传输请求,将第二总线B读写时序转换成内部读写时序,并选择第二通讯信箱6或第二单向异步FIFO读写模块2的读写功能。第一通讯信箱5,用于寄存第一总线A向第二总线B传输的信箱数据。第二通讯信箱6,用于寄存第二总线B向第一总线A传输的信箱数据。
该双向高速FIFO存储器采用FPGA内部的单向异步FIFO读写模块完成双向FIFO读写操作,具体构成该存储器的各组成部分之间的连接关系为:第一单向异步FIFO读写模块1,其写时钟域端口连接于第一异步总线接口模块3,读时钟域端口连接于第二异步总线接口模块4;第二单向异步FIFO读写模块2,其写时钟域端口连接于第二异步总线接口模块4,读时钟域端口连接于第一异步总线接口模块3;第一异步总线接口模块3,其一端连接外部的第一总线A,另一端连接于第一单向异步FIFO读写模块1的写时钟域端口、第一通讯信箱5的写入端、第二单向异步FIFO读写模块2的读时钟域端口和第二通讯信箱6的读出端;第二异步总线接口模块4,其一端连接第一单向异步FIFO读写模块1的读时钟域端口、第一通讯信箱5的读出端、第二单向异步FIFO读写模块2的写时钟域端口和第二通讯信箱6的写入端,另一端连接外部的第二总线B;第一通讯信箱5和第二通讯信箱6,一端连接第一异步总线接口模块3,另一端连接第二异步总线接口模块4。
第一单向异步FIFO读写模块1和第二单向异步FIFO读写模块2为带双独立时钟的FIFO,且读写时钟域同步。第一异步总线接口模块3和第二异步总线接口模块4在向第一单向异步FIFO读写模块1或第二单向异步FIFO读写模块2写入数据之前,判断第一单向异步FIFO读写模块1或第二单向异步FIFO读写模块2内数据是否超过门限值;在从第一单向异步FIFO读写模块1或第二单向异步FIFO读写模块2读出数据之前,判断第一单向异步FIFO读写模块1或第二单向异步FIFO读写模块2是否为空或几乎为空。
第一异步总线接口模块3和第二异步总线接口模块4控制选择通讯信箱或单向异步FIFO读写模块进行读写,具体操作方式为:
1)、从第一总线A向第二总线B传输数据:
第一异步总线接口模块3接收第一总线A的写请求信号,当CSA有效、WRA有效且MBA无效时,第一异步总线接口模块3控制外部总线数据写入第一单向异步FIFO读写模块1;当CSA有效、MBA有效且WRA有效时,第一异步总线接口模块3控制外部数据写入第一通讯信箱5;
第二异步总线接口模块4接收第二总线B的读请求信号,当CSB有效、RDB有效且MBB无效时,第二异步总线接口模块4建立第一单向异步FIFO读写模块1的读时序,控制数据从第一单向异步FIFO读写模块1读出至外部总线;当CSB有效、MBB有效且RDB有效时,第二异步总线接口模块4建立第一通讯信箱5的读时序,控制数据从第一通讯信箱5读出至外部总线;
2)、从第二总线B向第一总线A传输数据:
第二异步总线接口模块4接收第二总线B的写请求信号,当CSB有效、WRB有效且MBB无效时,第二异步总线接口模块4控制外部总线数据写入第二单向异步FIFO读写模块2;当CSB有效、MBB有效且WRB有效时,第二异步总线接口模块4控制外部数据写入第二通讯信箱6;
第一异步总线接口模块3接收第一总线A的读请求信号,当CSA有效、RDA有效且MBA无效时,第一异步总线接口模块3建立第二单向异步FIFO读写模块2的读时序,控制数据从第二单向异步FIFO读写模块2读出至外部总线;当CSA有效、MBA有效且RDA有效时,第一异步总线接口模块3建立第二通讯信箱6的读时序,控制数据从第二通讯信箱6读出至外部总线。
该双向高速FIFO存储器利用FPGA内部资源完成双向通讯信箱的功能,能够实现特殊数据不经过排队直接输出,即MBA信号无效时,数据由写时钟控制写入单向异步FIFO读写模块,再通过读时钟控制依次读出;MBA信号有效时,数据由写时钟控制写入单向异步FIFO读写模块,再通过读时钟直接读出;通讯信箱提供“满”“溢”标志。
在数据从第一总线A向第二总线B传输时,所述第一通讯信箱5或所述第二通讯信箱6由锁存器A、锁存器B、D触发器M、D触发器N构成;MBA和第一总线A写信号有效时,数据通过外部数据线进入锁存器A内,且D触发器M的Q端置1;MBFA有效MBEA无效表示AB方向的第一通讯信箱5满,第一总线A不能向第一通讯信箱5继续传送数据;第二总线B读信号有效时,数据从锁存器A读出到外部数据线,D触发器M的Q端置0,MBFA无效MBEA有效表示AB方向的第一通讯信箱5空,第一总线A能向第一通讯信箱5写入数据。
在数据从第二总线B向第一总线A传输时,MBB、CSB和第二总线B写信号有效,数据通过外部数据线进入锁存器B内,且D触发器N的Q端置1;MBFB有效MBEB无效表示BA方向的第二通讯信箱(6)满,第二总线B不能向第二通讯信箱(6)继续传送数据;第一总线A读信号有效时,数据从锁存器B读出到外部数据线,D触发器N的Q端置0,MBFB无效MBEB有效表示BA方向的第二通讯信箱(6)空,第二总线B能向第二通讯信箱(6)写入数据。
图2示出了本发明提供的基于FPGA实现的双向高速FIFO存储器的电路图。在A端(即第一总线A)向B端(第二总线B)传输非信箱数据时,首先判断第一单向异步FIFO读写模块1是否为满。IP核FIFO提供”满”标志信号。寄存器将其二级同步后传送给第一总线A。第一总线A判断其非满后建立写时序,将第一总线A上的数据写入第一单向异步FIFO读写模块1。第二总线B读取第一单向异步FIFO读写模块1中数据时,也首先判断第一单向异步FIFO读写模块1是否为空。如果不为空则建立读时序,将第一单向异步FIFO读写模块1中数据读出到第二总线B。
在A端向B端传输信箱数据时,首先判断第一通讯信箱信箱是否为满,当第一通讯信箱MBF为高时,表示此时不能进行通讯信箱的读写,当其为低时建立时序将总线数据写入第一通讯信箱。B端从第一通讯信箱读取数据时先判断第一通讯信箱MBE的状态,如果为高则等待,为低建立时序将信箱数据读出至第二总线B。
本发明中,FPGA采用Xilinx公司的SpartanIII3s400,它提供可配置网表形式的IP核,使用者可运行FIFO generator v3.1生成所需FIFO。含有读写时钟信号、读写使能信号、复位端、满/空标志位、几乎满/几乎空标志位。
第一总线A提供片选信号CSA,写数据信号WRA,读数据信号RDA,信箱有效信号MBA。第二总线B提供片选信号CSB,读数据信号RDB,写数据信号WRB和信箱有效信号MBB。具体控制方式如表1所示:
  CSA   0   0   0   0   1   1   1   1
  CSB   1   1   1   1   0   0   0   0
  WRA   0   0   1   1   1   1   1   1
  RDA   1   1   0   0   1   1   1   1
  WRB   1   1   1   1   0   0   1   1
  RDB   1   1   1   1   1   1   0   0
  MBA   1   0   1   0   1   1   1   1
  MBB   1   1   1   1   1   0   1   0
  FUNC-TION   A端写入数据(FIFO)   A端写入数据(信箱)   A端读出数据(FIFO)   A端读出数据(信箱)   B端写入数据(FIFO)   B端写入数据(信箱)   B端读出数据(FIFO)   B端读出数据(信箱)
表1
本发明采用FPGA实现双向高速FIFO存储器,在选择的Xilinx中端产品中资源占用率不到10%。这对实现系统高集成度,提高速度,降低功耗有很好影响。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于FPGA实现的双向高速FIFO存储器,其特征在于,包括:
第一单向异步FIFO读写模块(1),用于寄存第一总线A向第二总线B写入的数据;
第二单向异步FIFO读写模块(2),用于寄存第二总线B向第一总线A写入的数据;
第一异步总线接口模块(3),用于检测第一总线A存在的向第二总线B发送的数据传输请求,将第一总线A读写时序转换成内部读写时序,并选择第一通讯信箱(5)或第一单向异步FIFO读写模块(1)的读写功能;
第二异步总线接口模块(4),用于检测第二总线B存在的向第一总线A发送的数据传输请求,将第二总线B读写时序转换成内部读写时序,并选择第二通讯信箱(6)或第二单向异步FIFO读写模块(2)的读写功能;
第一通讯信箱(5),用于寄存第一总线A向第二总线B传输的信箱数据;
第二通讯信箱(6),用于寄存第二总线B向第一总线A传输的信箱数据;
其中,所述第一异步总线接口模块(3)和所述第二异步总线接口模块(4)控制选择通讯信箱或单向异步FIFO读写模块进行读写,具体操作方式为:
从第一总线A向第二总线B传输数据:
第一异步总线接口模块(3)接收第一总线A的写请求信号,当CSA有效、WRA有效且MBA无效时,第一异步总线接口模块(3)控制外部总线数据写入第一单向异步FIFO读写模块(1);当CSA有效、MBA有效且WRA有效时,第一异步总线接口模块(3)控制外部数据写入第一通讯信箱(5);
第二异步总线接口模块(4)接收第二总线B的读请求信号,当CSB有效、RDB有效且MBB无效时,第二异步总线接口模块(4)建立第一单向异步FIFO读写模块(1)的读时序,控制数据从第一单向异步FIFO读写模块(1)读出至外部总线;当CSB有效、MBB有效且RDB有效时,第二异步总线接口模块(4)建立第一通讯信箱(5)的读时序,控制数据从第一通讯信箱(5)读出至外部总线;
从第二总线B向第一总线A传输数据:
第二异步总线接口模块(4)接收第二总线B的写请求信号,当CSB有效、WRB有效且MBB无效时,第二异步总线接口模块(4)控制外部总线数据写入第二单向异步FIFO读写模块(2);当CSB有效、MBB有效且WRB有效时,第二异步总线接口模块(4)控制外部数据写入第二通讯信箱(6);
第一异步总线接口模块(3)接收第一总线A的读请求信号,当CSA有效、RDA有效且MBA无效时,第一异步总线接口模块(3)建立第二单向异步FIFO读写模块(2)的读时序,控制数据从第二单向异步FIFO读写模块(2)读出至外部总线;当CSA有效、MBA有效且RDA有效时,第一异步总线接口模块(3)建立第二通讯信箱(6)的读时序,控制数据从第二通讯信箱(6)读出至外部总线。
2.根据权利要求1所述的基于FPGA实现的双向高速FIFO存储器,其特征在于:该存储器采用FPGA内部的单向异步FIFO读写模块完成双向FIFO读写操作,具体构成该存储器的各组成部分之间的连接关系为:
第一单向异步FIFO读写模块(1),其写时钟域端口连接于第一异步总线接口模块(3),读时钟域端口连接于第二异步总线接口模块(4);
第二单向异步FIFO读写模块(2),其写时钟域端口连接于第二异步总线接口模块(4),读时钟域端口连接于第一异步总线接口模块(3);
第一异步总线接口模块(3),其一端连接外部的第一总线A,另一端连接于第一单向异步FIFO读写模块(1)的写时钟域端口、第一通讯信箱(5)的写入端、第二单向异步FIFO读写模块(2)的读时钟域端口和第二通讯信箱(6)的读出端;
第二异步总线接口模块(4),其一端连接第一单向异步FIFO读写模块(1)的读时钟域端口、第一通讯信箱(5)的读出端、第二单向异步FIFO读写模块(2)的写时钟域端口和第二通讯信箱(6)的写入端,另一端连接外部的第二总线B;
第一通讯信箱(5)和第二通讯信箱(6),一端连接第一异步总线接口模块(3),另一端连接第二异步总线接口模块(4)。
3.根据权利要求1所述的基于FPGA实现的双向高速FIFO存储器,其特征在于:所述第一单向异步FIFO读写模块(1)和所述第二单向异步FIFO读写模块(2)为带双独立时钟的FIFO,且读写时钟域同步。
4.根据权利要求1所述的基于FPGA实现的双向高速FIFO存储器,其特征在于:所述第一异步总线接口模块(3)和所述第二异步总线接口模块(4)在向第一单向异步FIFO读写模块(1)或第二单向异步FIFO读写模块(2)写入数据之前,判断第一单向异步FIFO读写模块(1)或第二单向异步FIFO读写模块(2)内数据是否超过门限值;在从第一单向异步FIFO读写模块(1)或第二单向异步FIFO读写模块(2)读出数据之前,判断第一单向异步FIFO读写模块(1)或第二单向异步FIFO读写模块(2)是否为空。
5.根据权利要求1所述的基于FPGA实现的双向高速FIFO存储器,其特征在于:该存储器利用FPGA内部资源完成双向通讯信箱的功能,能够实现特殊数据不经过排队直接输出,即MBA信号无效时,数据由写时钟控制写入单向异步FIFO读写模块,再通过读时钟控制依次读出;MBA信号有效时,数据由写时钟控制写入单向异步FIFO读写模块,再通过读时钟直接读出;通讯信箱提供“满”“溢”标志。
6.根据权利要求5所述的基于FPGA实现的双向高速FIFO存储器,其特征在于:在数据从第一总线A向第二总线B传输时,所述第一通讯信箱(5)或所述第二通讯信箱(6)由锁存器A、锁存器B、D触发器M、D触发器N构成;MBA、CSA和第一总线A写信号有效时,数据通过外部数据线进入锁存器A内,且D触发器M的Q端置1;MBFA有效MBEA无效表示AB方向的第一通讯信箱(5)满,第一总线A不能向第一通讯信箱(5)继续传送数据;第二总线B选中信箱并且读信号有效时,数据从锁存器A读出到外部数据线,D触发器M的Q端置0,MBFA无效MBEA有效表示AB方向的第一通讯信箱(5)空,第一总线A能向第一通讯信箱(5)写入数据。
7.根据权利要求5所述的基于FPGA实现的双向高速FIFO存储器,其特征在于:在数据从第二总线B向第一总线A传输时,MBB、CSB和第二总线B写信号有效,数据通过外部数据线进入锁存器B内,且D触发器N的Q端置1;MBFB有效MBEB无效表示BA方向的第二通讯信箱(6)满,第二总线B不能向第二通讯信箱(6)继续传送数据;第一总线A读信号有效时,数据从锁存器B读出到外部数据线,D触发器N的Q端置0,MBFB无效MBEB有效表示BA方向的第二通讯信箱(6)空,第二总线B能向第二通讯信箱(6)写入数据。
CN200910079799A 2009-03-11 2009-03-11 基于fpga实现的双向高速fifo存储器 Expired - Fee Related CN101833431B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910079799A CN101833431B (zh) 2009-03-11 2009-03-11 基于fpga实现的双向高速fifo存储器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910079799A CN101833431B (zh) 2009-03-11 2009-03-11 基于fpga实现的双向高速fifo存储器

Publications (2)

Publication Number Publication Date
CN101833431A CN101833431A (zh) 2010-09-15
CN101833431B true CN101833431B (zh) 2012-09-05

Family

ID=42717511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910079799A Expired - Fee Related CN101833431B (zh) 2009-03-11 2009-03-11 基于fpga实现的双向高速fifo存储器

Country Status (1)

Country Link
CN (1) CN101833431B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999467A (zh) * 2012-12-24 2013-03-27 中国科学院半导体研究所 基于fpga实现的高速接口与低速接口转换电路及方法
CN106502577A (zh) * 2015-09-07 2017-03-15 龙芯中科技术有限公司 存储空间的写入加速方法、装置和系统
CN105718395B (zh) * 2016-01-28 2018-08-21 山东超越数控电子有限公司 一种基于fpga的多路串口通信系统及方法
US9666307B1 (en) * 2016-09-14 2017-05-30 Micron Technology, Inc. Apparatuses and methods for flexible fuse transmission
CN111262655B (zh) * 2020-01-15 2023-05-12 江苏方天电力技术有限公司 基于异步时钟的fpga万兆以太网数据高速发送方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7106098B1 (en) * 2004-05-04 2006-09-12 Xilinx, Inc. Split FIFO configuration of block RAM
CN100405343C (zh) * 2006-06-21 2008-07-23 北京中星微电子有限公司 一种异步数据缓存装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7106098B1 (en) * 2004-05-04 2006-09-12 Xilinx, Inc. Split FIFO configuration of block RAM
CN100405343C (zh) * 2006-06-21 2008-07-23 北京中星微电子有限公司 一种异步数据缓存装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于FPGA的高速异步FIFO存储器的设计与实现;罗先哲等;《中国科技信息》;20090115(第02期);90-94 *
罗先哲等.基于FPGA的高速异步FIFO存储器的设计与实现.《中国科技信息》.2009,(第02期),90-94.

Also Published As

Publication number Publication date
CN101833431A (zh) 2010-09-15

Similar Documents

Publication Publication Date Title
CN111367495B (zh) 一种异步先入先出的数据缓存控制器
CN102981776B (zh) 双倍数据率虚拟静态随机存取存储器及其控制器、存取与操作方法、写入与读取方法
US9323457B2 (en) Memory arrangement for implementation of high-throughput key-value stores
CN206557767U (zh) 一种基于乒乓操作结构控制数据缓存的缓存系统
CN101833431B (zh) 基于fpga实现的双向高速fifo存储器
CN110462599A (zh) 用于循环缓冲器的自主硬件管理的设备和方法
CN109446132A (zh) 一种接口总线装置及数据通信协议
CN104915303A (zh) 基于PXIe总线的高速数字I/O系统
CN104598405A (zh) 扩展芯片及可扩展的芯片系统及控制方法
CN100524269C (zh) 一种突发机制下实现数据读写控制的方法和装置
CN108683536A (zh) 异步片上网络的可配置双模式融合通信机制及其接口
CN103177133A (zh) 一种数据采集和存储的系统及方法
CN103412847B (zh) 基于fpga的usb转多路链路接口电路
CN204390227U (zh) 计算设备扩展装置、以及可扩展的计算系统
CN105577985A (zh) 一种数字图像处理系统
CN109446126A (zh) 基于emif总线的dsp与fpga高速通信系统及方法
CN104598404A (zh) 计算设备扩展方法和装置、以及可扩展的计算系统
CN110888831A (zh) 一种多电源域异步通信装置
US9003083B2 (en) Buffer circuit and semiconductor integrated circuit
CN112948322B (zh) 一种基于弹性缓存的虚通道及实现方法
CN100385387C (zh) 一种提高ram利用效率的方法
CN103500564B (zh) 图像显示控制装置、方法和图像显示系统
CN113900975A (zh) 一种同步fifo
CN102760487A (zh) 一种高性能静态随机存储器内部最优分级的方法及其架构
CN101261615B (zh) 计算机点对点直接内存通信方法及其网卡

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120905

Termination date: 20150311

EXPY Termination of patent right or utility model