一种可重构dbf算法硬件加速器及控制方法

文档序号:10594005阅读:357来源:国知局
一种可重构dbf算法硬件加速器及控制方法
【专利摘要】本发明涉及可重构DBF算法硬件加速器及控制方法,所述加速器包括重构控制模块,接收上位机发出的DBF算法信息数据,并根据DBF算法信息决定是否发出重构控制信号;数据存储模块,用于完成对DBF算法信息数据的写入,存储和读出;DBF运算模块,从数据存储模块读取数据,完成DBF算法的运算并输出相应结果。有益效果为:解决了专用DBF处理器通用性差和通用处理器计算DBF速度慢的矛盾,可重构架构可以提升算法的灵活性,并且实现了源数据的全流水输出,提高了算法的运算效率和实时性。
【专利说明】
-种可重构DBF算法硬件加速器及控制方法
技术领域
[0001] 本发明设及基于固定资源的DBF算法处理单元及其硬件实现,尤其设及一种可重 构的DBF算法的硬件架构。
【背景技术】
[0002] 数字信号处理技术不仅广泛应用于多媒体、数据通信、雷达成像、地质探测、航空 航天等工程技术领域,近年来又成为人工智能、模式识别、神经网络等新兴学科的理论基础 之一,设及范围非常广泛。而随着随着半导体工艺技术不断提高、DSP器件的飞速发展,为大 批量数据的实时处理提供了可能。而对于实时性要求很高的雷达成像等诸多领域,采用普 遍的解决方案一一即用DSP进行信号运算,会大大受限于吞吐率,远远达不到快速处理的实 时性要求。而单纯依靠提升处理部件的主频和存储部件的通信带宽,解决不了核屯、问题,设 计架构才是瓶颈所在。
[0003] 此外,由于专用集成电路的成本随着工艺尺寸的缩小越来越高,追求快速处理速 度和高性能的同时,成本因素也被考虑的越来越多。所W,可重构架构的研究逐渐热口,该 方法试图在高性能和通用性之间寻找一个平衡点,来满足均衡的需求。

【发明内容】

[0004] 本发明目的在于基于可重构的思想,提供一种可重构的DBF算法处理单元及其硬 件架构,具体有W下技术方案实现: 所述可重构DBF算法硬件加速器,与上位机通信连接,包括: 重构控制模块,接收上位机发出的DBF算法信息数据,并根据DBF算法信息决定是否发 出重构控制信号; 数据存储模块,用于完成对DBF算法信息数据的写入,存储和读出; DBF运算模块,从数据存储模块读取数据,完成DBF算法的运算并输出相应结果。
[0005] 所述可重构DBF算法硬件加速器的进一步设计在于,所述数据存储模块包括: 片上RAM存储单元,用于存储写地址,并根据读地址将DBF运算模块需要的数据从存储 器中读出; 写地址产生模块,用于根据DBF运算模块产生的中间结果产生写地址,将数据存入存储 器; 读地址产生模块,用于产生读地址。
[0006] 所述可重构DBF算法硬件加速器的进一步设计在于,包括重构控制模块,所述重构 控制模块包括: 重构状态机,输出重构控制信号; 存储资源复选模块,用于重构数据存储模块中片上存储器RAM的排列; 运算资源复选模块,用于重构多路并行流水计算资源。
[0007] 所述可重构DBF算法硬件加速器的进一步设计在于,所述多路并行流水计算资源 为八路至十六路并行流水线。
[000引所述可重构DBF算法硬件加速器的进一步设计在于,所述重构控制模块通过GMAC 接口与上位机通信连接。
[0009] 所述可重构DBF算法硬件加速器的进一步设计在于,所述DBF运算模块包括: 矩阵运算单元,包括矩阵点乘单元、矩阵求平均单元W及求绝对值单元,用于分别对应 地实现输入数据与系数矩阵的点乘运算、求平均运算W及求绝对值运算,用于找出矩阵中 最大值及其位置; 数据存取控制单元,用于实现中间结果和最终结果的存取控制; 数据比较单元,对矩阵运算单元的输出结果的进行比较;并从数据存储模块读出所述 比较的结果,用于找出矩阵中次大值及次大值对应的位置。
[0010] 基于上述的可重构DBF算法硬件加速器的可重构DBF算法硬件加速器的控制方法, 包括如下步骤: 1) 重构控制模块解析上位机发出的配置信息,完成对数据存储模块的配置和对DBF运 算路数的配置; 2) DBF运算模块接收配置信息中的运算数据,与数据存储模块根据配置信息读取的数 据进行运算; 3) DBF运算模块将运算的中间结果存入数据存储模块,在一帖数据运算完成后,根据数 据比较单元的比较结果,得到当前帖数据对应的最大值及该最大值的位置,再在数据存储 模块中读取该最大值对应存储位置的一组数据,将该组数据再次送入数据比较单元,比较 出该组数据次大值及对应的位置,根据最大值的位置和次大值的位置进行运算,得到最终 的输出结果。
[0011]本发明的优点 本发明提供的一种可重构DBF算法硬件加速器,基于GMAC与上位机通信,基于AXI协议 进行内部模块通信。将设计出的GMAC接口挂接在重构控制模块上,通过重构控制模块的状 态机将重构的运算参数和数据分发到片上的两组RAM中进行DBF运算前数据的存储,存储完 成后,数据存储模块给出信号,告知运算数据可W输入。
[0012] 运算数据输入过后,进入多路并行的DBF运算模块,然后通过适当的控制将需要的 中间结果和最终输出结果写入存储器中,数据存储模块支持兵鸟操作W使流水不会中断。 完成整个运算过后发出结束信号,并且清空相关的寄存器和存储器,等待下一次的重构和 运算。由于运个多路并行的流水架构使得外围控制电路可W在运算期间处理其他任务,在 运算结束过后读取运算结果即可,大大增加了整个系统的处理效率。
【附图说明】
[0013] 图1是DBF算法加速器与上位机连接整体架构图。
[0014] 图2是重构控制模块内部架构示意图。
[0015] 图3是数据存储模块兵鸟操作示意图。
[0016] 图4是DBF运算模块内部架构示意图。
[0017] 图5是重构控制模块工作流程图。
[001引图6是工作流程图。
【具体实施方式】
[0019] 下面结合附图对本发明方案进行详细说明,本实施例WXilinx VC707 FPGA开发 板为实施平台。
[0020] 如图1,本实施例的可重构DBF算法硬件加速器包括GMAC接口、重构控制模块、数据 存储模块W及DBF运算模块。其中,GMAC接口用于实现DBF算法加速器中重构控制模块与上 位机之间的数据传递。重构控制模块与GMAC接口、数据存储模块和DBF运算模块相连接,用 于重构DBF算法的参数,并行路数和存储结构。数据存储模块,与DBF运算模块相连,用于完 成对数据的写入、存储和读取。DBF运算模块,与数据存储模块相连,根据需要从数据存储模 块读取数据,完成DBF算法的运算并输出相应结果。
[0021] 如图2,本实施例提供的重构控制模块包括=个部分,分别为:重构状态机、存储资 源复选模块和运算资源复选模块。整个重构流程在重构状态机的控制下完成,存储资源复 选模块和运算资源的重构主要是通过MUX,即多路复用器完成的,根据输入参数的变化选通 不同的存储资源和运算资源,并且可W达到资源复用的效果。重构完成后给出重构结束信 号。重构的流程如图5所示。
[0022] 如图3,本实施例提供的数据存储模块采用随机存储器(RAM)。该存储器包括写地 址产生单元、读地址产生单元和片上RAM存储单元。FPGA忍片的硬件设计实现了 RAM的双端 口使用,使其可W同时进行读写。在写数据阶段,将符合RAM要求的地址和需要写入的数据 写入选择的RAM中;在读数据阶段,将地址写入RAM,并接受RAM输出的数据,并将该数据输出 至化BF运算模块。W下W8路并行计算,缓存深度为16为例说明。
[0023] 写数据时,用计数器对输入的8路数据进行计数。第1个8路并行的矩阵计算结果的 数据分别存在RAMO到RAM7运8个RAM的0地址;第2个8路数据存在RAMO到RAM7的1地址,W此 类推,到第64个8路数据,同样存放在RAMO到RAM7的63地址,运样就完成了 64*8的中间矩阵1 的存放。
[0024] 接下来存放中间矩阵2,即第65到第128运64个8路输入数据,顺次存放在RAM8到 RAM15运8个RAM中的0到63地址。中间矩阵3、中间矩阵4,直到中间矩阵16顺次存回RAMO~ RAM7 中。
[0025] 中间矩阵17时再存入RAMO~RAM7的0~63地址空间中,和前16个矩阵一样,中间矩阵 18存入RAM8~RAMl 5的0~63地址,中间矩阵19~中间矩阵32存回RAMO~RAM7的64~960地址,W 此类推。
[0026] 上述做法的目的是将被操作的存储器与正在写数据的存储器分开,W避免同时对 同一个存储器的同一地址空间既读又写,产生竞争。既做到数据读写的流水,又避免读写冲 夭。
[0027] 写地址要实现按照上述存放方式每次给出8个输入数据的地址。每一个64*8的中 间矩阵为一帖数据,则帖数相对应的存放RAM及地址如表1所示。
[002引表1帖数相对应的存放RAM及地址
读数据时将输入的最大值的index值(即为最大值对应的位置)变换成相应的RAM编号 及RAM地址,读取该地址的数据。
[0029] 如图4,本实施例提供的DBF运算模块由S部分组成: 第一部分:即矩阵运算单元,将输入数据构成的输入矩阵和从数据存储模块读出的数 据构成的系数矩阵进行点乘,然后再按行求平均和求绝对值,形成中间矩阵。
[0030] 第二部分:即数据比较单元,用于完成中间矩阵最大值及其index值的比较和根据 该index值抽取的所有缓存矩阵中相同index值构成的向量中次大值及次大值index的比较 结果。
[0031] 第=部分:即数据存取控制单元,用于把中间矩阵按照一定的规则写入数据存储 模块中,并且根据最大值的index值计算出读地址,根据该地址抽取出所需的向量。
[0032] 本实例提供的DBF运算模块中的矩阵运算单元分为两个部分,分别是矩阵点乘模 块,矩阵求平均和求绝对值模块。
[0033] 本实例提供的DBF运算模块中的数据比较单元分为两个部分,分别是比较存储阵 列最大值模块和比较次大值模块。
[0034] 如图6,如上述的一种可重构DBF算法硬件加速器的可重构DBF算法硬件加速方法, 包括如下步骤: DGMAC接口接收到上位机发送的配置信息和数据信息,重构控制模块解析上位机发出 的配置信息,完成对数据存储模块的配置和对DBF运算路数的配置; 2) DBF运算模块接收配置信息中的运算数据,与数据存储模块根据配置信息读取的数 据进行运算; 3) DBF运算模块将运算的中间结果存入数据存储模块,在一帖数据运算完成后,根据数 据比较单元的比较结果,得到当前帖数据对应的最大值及该最大值的位置,再在数据存储 模块中读取该最大值对应存储位置的一组数据,将该组数据再次送入数据比较单元,比较 出运组数据次大值及对应的位置,根据最大值的位置和次大值的位置进行运算,得到最终 的输出结果。
[0035] 系统测试 首先用Modelsim完成各模块的功能仿真测试。
[0036] 然后通过Xilinx Vivado 2015.3的时序分析功能分析时序再调整时序,使得整个 系统的时序Slcak为正。
[0037] 再由Xilinx Vivado 2015.3完成系统的综合、实现,将生成的二进制文件下载到 Xilinx VC707 FPGA开发板中,并通过插入ILA核检测响应信号完成板级验证。
[0〇3引最后将Xilinx VC707 FPGA开发板与上位机相连,上位机发送配置信息和数据,然 后将运算结果通过GMAC回传给上位机,与上位机的软件运算结果进行对比验证,并计算出 f目噪比,最终完成系统的验证。
【主权项】
1. 一种可重构DBF算法硬件加速器,与上位机通信连接,其特征在于包括: 重构控制模块,接收上位机发出的DBF算法信息数据,并根据DBF算法信息决定是否发 出重构控制信号; 数据存储模块,用于完成对DBF算法信息数据的写入,存储和读出; DBF运算模块,从数据存储模块读取数据,完成DBF算法的运算并输出相应结果。2. 根据权利要求1所述的可重构DBF算法硬件加速器,其特征在于所述数据存储模块包 括: 片上RAM存储单元,用于存储写地址,并根据读地址将DBF运算模块需要的数据从存储 器中读出; 写地址产生模块,用于根据DBF运算模块产生的中间结果产生写地址,将数据存入存储 器; 读地址产生模块,用于产生读地址。3. 根据权利要求2所述的可重构DBF算法硬件加速器,其特征在于包括重构控制模块, 所述重构控制模块包括: 重构状态机,输出重构控制信号; 存储资源复选模块,用于重构数据存储模块中片上存储器RAM的排列; 运算资源复选模块,用于重构多路并行流水计算资源。4. 根据权利要求2所述的可重构DBF算法硬件加速器,其特征在于所述多路并行流水计 算资源为八路至十六路并行流水线。5. 根据权利要求1所述的可重构DBF算法硬件加速器,其特征在于所述重构控制模块通 过GMAC接口与上位机通信连接。6. 根据权利要求1所述的可重构DBF算法硬件加速器,其特征在于所述DBF运算模块包 括: 矩阵运算单元,包括矩阵点乘单元、矩阵求平均单元以及求绝对值单元,用于分别对应 地实现输入数据与系数矩阵的点乘运算、求平均运算以及求绝对值运算,用于找出矩阵中 最大值及其位置; 数据存取控制单元,用于实现中间结果和最终结果的存取控制; 数据比较单元,对矩阵运算单元的输出结果的进行比较;并从数据存储模块读出所述 比较的结果,用于找出矩阵中次大值及次大值对应的位置。7. 基于如权利要求1-6任一项所述的一种可重构DBF算法硬件加速器的可重构DBF算法 硬件加速器的控制方法,其特征在于包括如下步骤: 1) 重构控制模块解析上位机发出的配置信息,完成对数据存储模块的配置和对DBF运 算路数的配置; 2. DBF运算模块接收配置信息中的运算数据,与数据存储模块根据配置信息读取的数 据进行运算; 3. DBF运算模块将运算的中间结果存入数据存储模块,在一帧数据运算完成后,根据数 据比较单元的比较结果,得到当前帧数据对应的最大值及该最大值的位置,再在数据存储 模块中读取该最大值对应存储位置的一组数据,将该组数据再次送入数据比较单元,比较 出该组数据次大值及对应的位置,根据最大值的位置和次大值的位置进行运算,得到最终 的输出结果。
【文档编号】G06F13/40GK105955896SQ201610272042
【公开日】2016年9月21日
【申请日】2016年4月27日
【发明人】潘红兵, 李晨杰, 吕飞, 秦子迪, 陈金锐, 李丽, 李伟
【申请人】南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1