首页> 中国专利> 一种基于FPGA双口RAM实现的高速数据速率匹配方法

一种基于FPGA双口RAM实现的高速数据速率匹配方法

摘要

本发明提供一种基于FPGA双口RAM实现的高速数据速率匹配方法,双口RAM具备两套独立的数据、地址、控制总线,可分别独立的对双口RAM资源进行读写操作,所以在匹配速率的应用中,其一个总线端口可专供进行写操作,另一个总线端口可专供进行读取操作,两者对同一块RAM资源的操作可同时进行而互不干涉。采用上述方案,相比于单端口RAM资源来说,可节省大量的读写等待时间。本发明方法再通过双端口RAM资源的深度、数据写入速率、数据读取速率等关系,通过追逐竞技的思想,使得双口RAM在进行读写时转换速率达到最大化,工作效率得以大幅提升。

著录项

  • 公开/公告号CN104156331A

    专利类型发明专利

  • 公开/公告日2014-11-19

    原文格式PDF

  • 申请/专利号CN201410347884.8

  • 发明设计人 白月胜;

    申请日2014-07-21

  • 分类号G06F13/16(20060101);G06F3/06(20060101);G06F12/02(20060101);

  • 代理机构11246 北京众合诚成知识产权代理有限公司;

  • 代理人龚燮英

  • 地址 266555 山东省青岛市经济技术开发区香江路98号

  • 入库时间 2023-12-17 03:09:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-04

    未缴年费专利权终止 IPC(主分类):G06F13/16 专利号:ZL2014103478848 申请日:20140721 授权公告日:20170111

    专利权的终止

  • 2019-03-26

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

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

  • 2017-01-11

    授权

    授权

  • 2014-12-17

    实质审查的生效 IPC(主分类):G06F13/16 申请日:20140721

    实质审查的生效

  • 2014-11-19

    公开

    公开

说明书

技术领域

本发明属于数字信号处理技术领域,尤其涉及的是一种基于FPGA双 口RAM实现的高速数据速率匹配方法。

背景技术

目前在高速采样系统的应用情况中,FPGA作为高速采样数据处理的 中心,承载着很重要的工作任务。在很多多数据速率处理情况下,由于采 样速率与存储速率、传输速率不匹配,采样数据宽度与存储数据宽度、传 输数据位宽不匹配,使得数据处理分析的各个流程不能很好地协调工作。 所以,在FPGA中对不同速率数据的匹配设计是使各个数据处理环节协调 工作的关键环节。通常通过单个FPGA片载RAM进行数据间断式的等待 存储和读取的方式存在等待时间长、处理速率慢等缺点,而通过多个FPGA 片载RAM进行数据轮循存储和读取的方式存在FPGA资源开销大、时序 逻辑复杂、速率并未大幅提高等缺点。本设计采用FPGA双口RAM进行 高速数据速率匹配设计,通过不同速率输入输出追逐存储和读取的思路, 使得数据转换处理效率最大化,资源占用率小,数据处理速率大幅提高。 该速率匹配设计方法可应用于FPGA中存储缓冲转换、数据接口传输、数 据转换外传等多种情况。

通常情况下,可以通过单个FPGA片载RAM进行数据速率的匹配设 计,但FPGA片载RAM通常为单端口资源,及该RAM的数据总线既当输 入总线使用,又当输出总线使用,同一时间只能存在一种工作模式,当进 行写入时就无法进行读取操作,当进行读取时就不能进行写入操作。因此, 使用该RAM资源进行数据速率匹配设计时,读写存在很大的等待时间周 期,必须以间断式等待工作的方式进行存储和读取工作流程,数据速率转 换较慢。

也可以通过多个FPGA片载RAM进行数据轮循存储和读取的方式来 匹配数据速率,同样的,对于多个RAM中的一个,只有其进行完写操作之 后,读取操作才可以进行。通过不同RAM交替读写的方式在一定程度上可 以提高数据速率转换的效率,但该方法由于使用多个RAM资源,存在FPGA 资源开销大、时序逻辑复杂等缺点。

因此,现有技术存在缺陷,需要改进。

发明内容

本发明所要解决的技术问题是针对现有技术的不足,提供一种基于 FPGA双口RAM实现的高速数据速率匹配方法。

本发明的技术方案如下:

步骤1:设置FPGA双口RAM的两路分别独立操作RAM空间的A路 总线与B路总线,所述A路总线以速率S1进行数据的不间断 写入;进入步骤2;

步骤2:所述A路总线的地址递增1后进入步骤3,同时,判断所述A 路总线的地址是否等于最大寻址深度L,是则所述A路总线的 地址归零后返回步骤1,否则返回步骤1;

步骤3:判断所述A路总线的地址是否大于等于安全追逐间隔N,是则 进入步骤4,否则返回步骤1;

步骤4:判断所述B路总线的地址是否已经启动读取操作,是则返回步 骤1,否则进入步骤5;

步骤5:将所述B路总线的地址归零后进入步骤6;

步骤6:设置所述B路总线以速率S2进行数据的不间断读取,进入步 骤7;

步骤7:所述B路总线的地址递增1,判断所述B路总线的地址是否等 于最大寻址深度L,是则进入步骤8;否则返回步骤6;

步骤8:判断所述A路总线的地址是否大于等于安全追逐间隔N,是则 返回步骤5,否则暂停所述B路总线读取操作,返回步骤3。

所述的高速速率匹配方法,其中,所述步骤1中的设置所述A路总线 进行数据写操作,设置所述B路总线进行数据读操作。

所述的高速速率匹配方法,其中,所述步骤1中的设置所述A路总线 数据宽度与所述B路总线数据宽度相同。

所述的高速速率匹配方法,其中,所述步骤1中的设置所述A路总线 数据速率S1小于所述B路总线数据速率S2。

所述的高速速率匹配方法,其中,所述步骤2中的所述最大寻址深度L 为FPGA双口RAM在特定容量及特定总线宽度下,确定得到的最大存储 深度。

所述的高速速率匹配方法,其中,所述步骤3中的安全追逐间隔N的 公式为:来确定,其中N表示为除法结果向上取整。

本发明方法是使用FPGA双口RAM进行速率匹配的设计,双口RAM 具备两套独立的数据、地址、控制总线,可分别独立的对双口RAM资源进 行读写操作,所以在匹配速率的应用中,其一个总线端口可专供进行写操 作,另一个总线端口可专供进行读取操作,两者对同一块RAM资源的操作 可同时进行而互不干涉。所以相比于单端口RAM资源来说,可节省大量的 读写等待时间。本发明方法再通过双端口RAM资源的深度、数据写入速率、 数据读取速率等关系,通过追逐竞技的思想,使得双口RAM在进行读写时 转换速率达到最大化,工作效率得以大幅提升。

附图说明

图1为本发明方法的流程图。

具体实施方式

以下结合附图和具体实施例,对本发明进行详细说明。

实施例1

如图1所示,本发明一种基于FPGA双口RAM实现的高速数据速率匹配 方法,其特征在于,包括以下步骤:

步骤1:设置FPGA双口RAM的两路分别独立操作RAM空间的A路 总线与B路总线,所述A路总线以速率S1进行数据的不间断 写入;进入步骤2;

步骤2:所述A路总线的地址递增1后进入步骤3,同时,判断所述A 路总线的地址是否等于最大寻址深度L,是则所述A路总线的 地址归零后返回步骤1,否则返回步骤1;这里是要都返回步 骤1,这个支路在返回步骤1时判断是否到了寻址最大处,是 则地址归零重新开始,否则继续进行存储,实现A路的不间断 写入工作;

步骤3:判断所述A路总线的地址是否大于等于安全追逐间隔N,是则 进入步骤4,否则返回步骤1;

步骤4:判断所述B路总线的地址是否已经启动读取操作,是则返回步 骤1,否则进入步骤5;

步骤5:将所述B路总线的地址归零后进入步骤6;

步骤6:设置所述B路总线以速率S2进行数据的不间断读取,进入步 骤7;

步骤7:所述B路总线的地址递增1,判断所述B路总线的地址是否等 于最大寻址深度L,是则进入步骤8;否则返回步骤6;

步骤8:判断所述A路总线的地址是否大于等于安全追逐间隔N,是则 返回步骤5,否则暂停所述B路总线读取操作,返回步骤3。此 处暂停B路总线读取操作是为了避免在下一轮的读写操作中B 路读操作赶上A路写操作,并不是最终目的,暂停后会返回到 步骤3,等待在下一轮过程中依据步骤3的条件重新开启B路 数据的读操作。

上述方法中,所述步骤1中的设置所述A路总线进行数据写操作,设 置所述B路总线进行数据读操作。

上述方法中,所述步骤1中的设置所述A路总线数据宽度与所述B路 总线数据宽度相同。

上述方法中,所述步骤1中的设置所述A路总线数据速率S1小于所 述B路总线数据速率S2。

上述方法中,所述步骤2中的所述最大寻址深度L为FPGA双口RAM 在特定容量及特定总线宽度下,确定得到的最大存储深度。

上述方法中,所述步骤3中的安全追逐间隔N的公式为: 来确定,其中N表示为除法结果向上取整。

实施例2

在上述实施例的基础上,本发明进一步以XILINX公司FPGA系列的 18kb双端口RAM RAMB18或36kb双端口RAM RAMB36为FPGA硬件 基础进行设计,通过不同速率数据追逐竞技的思想设计算法进行高速数据 不同速率间的快速匹配转换,使得双口RAM使用效率大幅提高,数据速率 转换效率大幅提高。

18kb双端口RAM标称RAMB18,其可配置为1,2,4,8,16位宽 数据宽度,分别对应于可实现最大16k,8k,4k,2k,1k的存储深度。36kb 双端口RAM标称RAMB36,其可配置为1,2,4,8,16,32位宽数据 宽度,分别对应于可实现最大32k,16k,8k,4k,2k,1k的存储深度。 同时每个字节及每8位数据对应1位奇偶数据位,该位也可作为普通数据 位使用,进行数据位的扩展位使用。双口RAM具备两组可独立操作的数据 总线、地址总线、控制总线,每组总线都可独立的对同一块RAM资源进行 读写操作,这是本发明方法使用其来设计数据速率匹配的主要原因,两组 总线相互独立进行读写操作,可节省大量的单总线读写等待时间。

本发明方法中,使用双口RAM的一路总线来专门进行数据写操作,如 拟定使用A路进行写操作;使用双口RAM的另一路总线来专门进行数据读 操作,如拟定使用B路进行读操作。使用两路数据来进行不同数据率数据 的读写匹配设计,为使得数据速率转换效率最大化是本发明方法的关键部 分,在本发明方法中,参考追逐竞技的思想来解决上述问题,即在数据写 入双口RAM后,读取数据永远追赶着写数据操作进行,因为数据只有被写 入后才能进行读取,才能进行数据率的转换,所以本发明算法的应用有两 个限定条件,如下所示:

一是:双口RAM写入数据的数据宽度和读取数据的数据宽度一样。

二是:双口RAM写入数据的数据速率低于读取数据的数据速率。

在以上限定条件下,以RAMB3632位宽,即1k存储深度,写入数据 速率为90MHz,读取速率为100MHz为例进行本发明方法的讲解,然后进 行通用方法的推导说明。

在最大存储深度1k的情况下,及双口RAM可最大存储1024次32位 的输入操作。此时如果从开始写入数据后,读取操作追赶着写数据进行, 在两者之间最大保持怎样的数据间隔才会使得读写操作同时进行时确保读 操作在整个1k寻址读取的过程中都赶不上写操作。即在A路数据从开始写 入多少个数据后,B路数据从开始读取在整个寻址空间都不会赶上A路数 据。首先,计算100MHz速率读取1k数据需用时10ns×1024=10240ns; 90MHz速率写入1k数据需用时约11.11ns×1024=11377.78ns;即读完全 部数据比写完全部数据快11377.78-10240=1137.78ns,该时差可写入 1137.78÷11.11=102.41个数,及在双口RAM A路从开始写入103数后再 从开始于B路不间断的进行读取操作,直到读写完整个RAM寻址空间,B 路读取操作始终处于A路后面。

当B路数据读到最后地址时,如果此时A路在下一轮的写操作中,写 入数据的个数小于103时,此时需暂停B路数据的读取操作,等到A路数 据写入大于等于103时,再开启B路数据的读取操作;当B路数据读取最 后地址时,如果此时A路在下一轮的写操作中,写入数据的个数大于等于 103时,此时B路数据的读取操作可继续重头进行,不需要暂停。依此往 复的进行,即可最大化的匹配90MHz输入数据与100MHz读取数据的协调 工作。

对于多级级联的双口RAM的应用可以使数据宽度和存储深度进行扩 展,如RAM资源可无限量的不受限制,则本发明方法则不受存储深度和数 据宽度的限制。

通过以上特例的说明,进行通用方法的推导进一步说明。首先,在以 上两个限定条件下,假设双口RAM A路数据写入的速率为S1,B路数据 读取的速率为S2,这里依限定条件需满足S1〈S2;假设双口RAM的存 储深度为L。则计算可得均从开始读写,在A路写入多少个数N时,开始 B路的读取在整个寻址范围内B路数据都赶不上A路数据,有以下公式:

N表示除法结果向上取整。

双口RAM的A路作为写入专用总线,B路作为读取专用总线使用。首 先,依据限定条件和写入速率S1、读取速率S2、存储深度L,进行计算确 定安全追逐间隔数N的大小。A路以S1速率从开始进行数据的不间断循环 写入操作,即当A路写入到地址空间的最后时,再返回地址空间的开始处 重新开始写入。当A路写入次数大于等于N后启动B路数据的读取工作。 B路以S2速率从地址空间的开始处不间断的读取RAM中的数据,直到地 址空间的最后,此时判断此刻A路数据领先B路数据的多少,当A路数据 在新一轮写入的次数大于等于N时,说明此时B路继续读取也在安全追逐 范围内,在整个地址寻址空间都不会追上A路数据操作,此时B路可继续 从地址空间开始处重新开始读取操作。如此刻A路数据在新一轮写入的次 数小于N,则说明如果此时B路继续进行重新读取工作将会在后续读取过 程中超过A路写入操作,发生错误,所以此时B路应该暂停读取,等到A 路写入的次数大于等于N后,即在安全追逐范围内后,再启动B路数据的 重新读取操作。依此往复进行,即可最大化的匹配S1速率与S2速率数据 之间的数据率转换问题。

相比于使用单端口RAM的设计方案,使用双口RAM的方案在一个寻 址空间过程就比单口RAM方案的快(L-N)×S1的时间,大大提高了数据速 率的转换效率。同样的,本发明方法相比于多个单口RAM轮循的方法,不 但转换效率较高,FPGA资源开销也少很多,同时FPGA时序复杂度也小 很多。

基于FPGA双口RAM实现的高速数据速率匹配方法,采用FPGA做 数据速率匹配实现,以高速A/D采样输出的高速数据与后端存储部分及传 输部分的速率匹配应用为背景,成功解决了FPGA中高速数据不同速率间 的快速匹配转换问题,大幅提高了速率转换匹配的效率,同时在FPGA资 源使用和逻辑复杂度等方面相对其他方式有很大优势。本发明方法采用 FPGA双口RAM资源进行不同数据速率的匹配设计,充分利用了双口RAM 的特性和工作方式,解决了其他方法所需的读写不能同时进行的长时间等 待问题,使得数据速率转换效率提升得以突破。同时在读写算法上采用追 逐竞技的思想,使得数据速率转换效率最大化,大大提高了FPGA信号处 理的工作效率。同时相对其他方法也节省了FPGA资源开销,简化了FPGA 时序逻辑的复杂度。由于双口RAM的可级联性,使得本发明方法在寻址深 度和接口宽度方面具备灵活的可扩展性。本发明方法在FPGA高速信号处 理领域有很高的推广应用价值。

本发明方法是使用FPGA双口RAM进行速率匹配的设计,双口RAM 具备两套独立的数据、地址、控制总线,可分别独立的对双口RAM资源进 行读写操作,所以在匹配速率的应用中,其一个总线端口可专供进行写操 作,另一个总线端口可专供进行读取操作,两者对同一块RAM资源的操作 可同时进行而互不干涉。所以相比于单端口RAM资源来说,可节省大量的 读写等待时间。本发明方法再通过双端口RAM资源的深度、数据写入速率、 数据读取速率等关系,通过追逐竞技的思想,使得双口RAM在进行读写时 转换速率达到最大化,工作效率得以大幅提升。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以 改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护 范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号