首页> 中国专利> 用双端口随机存取存储器实现异步先进先出数据传输

用双端口随机存取存储器实现异步先进先出数据传输

摘要

本发明涉及专用集成电路设计、数字电路设计技术领域,特别是一种用双端口随机存取存储器实现异步先进先出数据传输的方法。本发明设计了一种适用于异步数据传输的桥接FIFO,这种新型FIFO是在双端口RAM的基础上,通过同步控制逻辑把双端口RAM包装成一个通用的同步FIFO,再用一个较小的寄存器阵列构成异步接口。其步骤:S1:用双端口RAM构造一个通用的同步FIFO,S2:确定数据时钟域,S3:读取数据,S4:实现异步数据传输。使用本发明所设计的FIFO,能够准确及时地给出FIFO中数据的多少,使得数据传输双方可以适时地发起数据读写操作,有效地提高数据传输的效率。

著录项

  • 公开/公告号CN1560868A

    专利类型发明专利

  • 公开/公告日2005-01-05

    原文格式PDF

  • 申请/专利权人 中国科学院计算技术研究所;

    申请/专利号CN200410003886.1

  • 发明设计人 张亮;韩承德;

    申请日2004-02-10

  • 分类号G11C7/00;G06F13/00;

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人周国城

  • 地址 100080 北京市中关村科学院南路6号

  • 入库时间 2023-12-17 15:47:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-04-02

    未缴年费专利权终止 IPC(主分类):G06F13/00 授权公告日:20081008 终止日期:20130210 申请日:20040210

    专利权的终止

  • 2012-09-05

    专利权的转移 IPC(主分类):G06F13/00 变更前: 变更后: 登记生效日:20120806 申请日:20040210

    专利申请权、专利权的转移

  • 2011-08-24

    专利权的转移 IPC(主分类):G06F13/00 变更前: 变更后: 登记生效日:20110714 申请日:20040210

    专利申请权、专利权的转移

  • 2010-12-15

    专利权的转移 IPC(主分类):G06F13/00 变更前: 变更后: 登记生效日:20101104 申请日:20040210

    专利申请权、专利权的转移

  • 2008-10-08

    授权

    授权

  • 2005-03-09

    实质审查的生效

    实质审查的生效

  • 2005-01-05

    公开

    公开

查看全部

说明书

技术领域

本发明涉及专用集成电路(ASIC)设计、数字电路设计技术领域,特别是一种用双端口随机存取存储器实现异步先进先出数据传输的方法。

背景技术

一般来说,同步FIFO((First-In First-Out,先进先出))结构简单,易于实现;异步FIFO的控制逻辑相对复杂,市场上的专用产品也有不少,但只能给出FIFO的满(Full)、半满(Half-Full)和空(Empty)三种状态,不能全面准确地反映FIFO的内部状态,使得其使用受到一定的局限,也不利于数据传输性能的提高。

发明内容

本发明所设计的FIFO,是在双端口RAM(Random-Access Memory,随机存取存储器)的基础上,通过同步控制逻辑把双端口RAM包装成一个通用的同步FIFO,再用一个较小的寄存器阵列构成异步接口。使用本发明所设计的FIFO,能够准确及时地给出FIFO中数据的多少,使得数据传输双方可以适时地发起数据读写操作,有效地提高数据传输的效率。

发明技术方案

一种异步FIFO的实现方法,用双端口RAM和控制逻辑实现异步FIFO。

可实现不同时钟源之间大数据流双向突发传输。

能够准确及时地给出FIFO中数据的多少,使得数据传输双方可以适时地发起数据读写操作,有效地提高数据传输的效率。

附图说明

图一是用双端口RAM实现的一个通用同步FIFO。

图二是寄存器阵列单元的结构图。

图三是本发明方法实现流程图。

具体实施方式

用双端口RAM构造异步数据传输中的桥接FIFO可以分为两步实现异步FIFO。

第一步是用双端口RAM构造一个通用的同步FIFO,如图一所示,图中所有信号都工作在一个时钟域,而且该时钟域与外部(数据传输双方)两个时钟源中速度较高者相同。

第二步是在通用的同步FIFO之上,用一个较小的寄存器阵列构成异步接口。寄存器阵列的宽度与FIFO的数据宽度相等,且外加状态标记寄存器;寄存器阵列的深度根据异步时钟域的差距比例来决定。实际上,深度为n的寄存器阵列是由n个深度为1的寄存器阵列串连成的一个小FIFO,因此,把深度为1的寄存器阵列定义为寄存器阵列单元。

图一中,把双端口RAM的两个端口分别定义成数据输入端口和数据输出端口,写指针是数据输入端口的地址信号,读指针是数据输出端口的地址信号。当写信号有效时,读写控制逻辑把写指针加1;当读信号有效时,读写控制逻辑把读指针加1。根据读指针和写指针大小,读写控制逻辑可以实时地给出双端口RAM中数据量的多少和空/满状态。

图二中,寄存器阵列单元包含两个标记寄存器Rf1和Rf2;以及数据暂存寄存器R1,R2,…,和Rn。寄存器阵列单元的输入和输出工作在两个不同的时钟域,其工作时钟分别为CLK_IN和CLK_OUT。当输入端的数据写入时,数据用输入时钟CLK_IN暂存在寄存器R1,R2,…,和Rn中,同时标记寄存器Rf1被置1。标记寄存器Rf1的输出用时钟CLK_OUT写入标记寄存器Rf2。当数据输出端检测到标记寄存器Rf2的输出为1(读就绪)时,此时输入数据早已稳定地锁存在暂存寄存器R1,R2,…,和Rn中,可以用时钟CLK_OUT和读信号把它读出,在读出数据的同时,标记寄存器Rf1和Rf2被清零。当多个寄存器阵列单元串连成一个小FIFO,就可以实现不同时钟域大数据流的突发传输。

图三中所描述的实现流程,可以分成S1、S2、S3和S4四个步骤,分别说明如下:步骤S1:用双端口RAM构造一个通用的同步FIFO,具体如图一所示。步骤S2:如果数据源域的时钟频率大于数据目标域的时钟频率,同步FIFO工作在数据源时钟域,并在同步FIFO的输出端接一个异步寄存器阵列;否则,同步FIFO工作在数据目标时钟域,并在同步FIFO的输入端接一个异步寄存器阵列,异步寄存器阵列的宽度与同步FIFO的数据宽度相等,寄存器阵列的深度根据异步时钟域的频率和相位差来决定,频率和相位差越大,寄存器阵列的深度越大;当频率和相位差接近于0时,寄存器阵列的深度等于或大于3(这时才能保证数据不间断流水传输);步骤S3:当数据源域的时钟频率大于数据目标域的时钟频率时,同步FIFO输出端的寄存器阵列具有数据预取能力,即只要同步FIFO中有数据且寄存器阵列有空闲的寄存器阵列单元,都及时从同步FIFO预取数据到寄存器阵列中,并给出数据就绪标志;当数据源域的时钟频率小于数据目标域的时钟频率时,只要同步FIFO输入端的寄存器阵列中有数据,都被及时地读入同步FIFO中,同时寄存器阵列给出空闲标志;步骤S4:以上通过同步控制逻辑把双端口RAM包装成一个通用的同步FIFO,再用一个异步寄存器阵列构成异步接口,从而实现异步FIFO功能的方法,只要异步寄存器阵列有足够大的深度,就可以保证异步数据大流量连续传输。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号