一种可重构信号处理运算单元及基于其的重组单元的制作方法

文档序号:22545191发布日期:2020-10-17 02:13阅读:85来源:国知局
一种可重构信号处理运算单元及基于其的重组单元的制作方法

本发明涉及数字信号处理技术领域,具体涉及一种可重构信号处理运算单元及基于其的重组单元。



背景技术:

数字信号处理技术广泛应用于多媒体、医疗、通信、航天、军事等领域。随着科技的发展,设备的高集成度和小型化的趋势愈发明显,高密集计算的应用领域对于信号处理的实时性要求也越来越高,因此如何快速灵活的实现各种信号处理算法成为热点研究问题。

常用的一种实现方案是基于处理器,包括通用处理器(generalpurposeprocessor,gpp)、数字信号处理器(digitalsignalprocessor,dsp)等。传统的gpp采用冯·诺依曼结构,程序与数据共用一个存储器空间,各种算法通过不同的指令组合来完成,具有很高的灵活性,但由于执行一条指令需要经过取指、译码、寄存器访问、执行、数据写回等多个步骤,因此算法处理速度较慢。dsp采用的是改善的哈佛结构,数据存储区与程序存储器是分开的,允许同时访问。虽然dsp对内部结构和指令进行了特殊设计,信号处理算法编译效率及指令执行速度较gpp有很大提升,但与现代信号处理系统所要求的高实时性能仍然有差距。

专用集成电路(asic)是另一种常用的实现数字信号处理方法,asic以数据流来驱动,节省指令翻译和执行过程,运算速度快,效率高。但是asic采用固化的结构,对固定信号处理算法进行加速,缺乏灵活性,而且不用的算法功能处于关断状态,导致运算资源的浪费,无法发挥最大效能。



技术实现要素:

为了解决上述问题,本发明提出了一种可重构信号处理运算单元,包括:

控制模块,接收重构信息,根据重构信息选择数据通路,配置可重构运算电路模块的工作模式;

可重构运算电路模块,根据输入数据根据进行数据的运算,得到运算结果;

输出模块,用于将可重构运算电路模块的运算结果输出。

进一步地,所述可重构运算电路模块包括五组复数输入端、两个复乘器、两个复数加减器、除法器、共轭部件、平方根部件、寄存器组、五个多路选择器和五个输出端。

进一步地,所述五组复数输入端分别为复数输入端a1、a2、b1、b2、c1、c2、d1、d2、e1和e2,所述五个输出端分别为第一复乘器、第二复乘器、除法器、第一复数加减法器和第二复数加减法器的输出;所述第一多路选择开关的1路输入连接复数输入端a1,复数输入端a2经过共轭部件后连接第一多路选择开关的2路输入端;第一多路选择开关的两路输出连接第一复乘器的两路输入端;

所述复数输入端b1、b2连接第二多路选择开关的1、2路输入端;

所述复数输入端c1连接除法器的1路输入端,复数输入端c2通过平方根部件连接除法器的2路输入端,所述除法器的输出端连接第三多路选择开关的1路输入,第三多路选择开关的输出端连接寄存器组的输入端,寄存器组的1路输出端连接第二多路选择开关的3路输入端,寄存器组的2路输出端连接第二多路选择开关的4路输入端,第二多路选择开关的1路输出端连接第一复数加减法器的1路输入端和第一多路选择开关的3路输入端,第二多路选择开关的2路输出端连接第一复数加减法器的2路输入端;

所述复数输入端d1、d2连接第四多路选择开关的3、4路输入端,第四多路选择开关的1路输入端连接第二复乘器的输出端,第四多路选择开关的2路输入端连接第一复乘器的输出端,第四多路选择开关的5路输入端连接第二复数加减法器的输出端、第三多路选择开关的2路输入端、第二多路选择开关的5路输入端和第五多路选择开关的2路输入端,第四多路选择开关的两路输出端连接第二复数加减法器的两路输入端;

所述复数输入端e1、e2连接第五多路选择开关的3、4路输入端,第五多路选择开关的1路输入端连接第一复数加减法器的输出端,第五多路选择开关的两路输出端连接第二复乘器的两路输入端,第二复乘器的输出端连接第四多路选择开关的1路输入端。

4、根据权利要求3所述的可重构信号处理运算单元,其特征在于,

所述重构信息包括重构信息表,所述重构信息包括共轭部件使能位、平方根部件使能位、第一复数加减法器模式选择位、第二复数加减法器的模式选择位、第五多路选择开关配置位、第四多路选择开关配置位、第三多路选择开关配置位、第二多路选择开关配置位、第一多路选择开关配置位;

加减模式选择位设置为‘1’时表示减法,设置为‘0’时表示加法;设置为‘1’时表示使能,设置为‘0’时表示旁路;多路选择器配置位设置为‘1’时表示选中,设置为‘0’时表示未选中。

进一步地,所述重构信息设置为“00000110011001111111000”时,控制模块配置可重构运算电路模块实现radix-4功能;

所述radix-4功能的具体实现过程为:所述复数输入端d1、d2分两个时钟周期将源数据a1、b1、c1和d1输入电路模块,第二复数加减法器计算a1±c1、b1±d1,并将结果通过第三多路选择开关的2路输入端存入寄存器组;第一复数加减法器对寄存器组中的两两中间结果进行加/减,并将加/减结果通过第五多路选择开关送至第二复乘器,第二复乘器该加/减结果与旋转因子w1的复乘,并通过第二复乘器的输出端送出radix-4蝶形运算的结果;所述旋转因子w1通过复数输入端e1输入。

进一步地,所述重构信息设置为“00000110011001111111000”时,控制模块配置可重构运算电路模块实现radix-2功能;

所述radix-2功能的具体实现过程为:第四多路选择开关的3、4路输入端开启,所述复数输入端d1、d2通过第四多路选择开关的3、4路输入端将源数据a2、b2输入电路模块,所述第五多路选择开关的3路输入端开启,第二复数加减法器计算a2±b2计算并将加/减结果送至第二复乘器,第二复乘器完成该加/减结果与旋转因子w2的复乘,并通过第二复乘器的输出端送出radix-2蝶形运算的结果;所述旋转因子w2通过复数输入端e1输入。

进一步地,所述重构信息设置为“00000000100101011000011”时,控制模块配置可重构运算电路模块实现乘累加功能;

所述乘累加功能的具体实现过程为:所述重构后的电路模块使用了第一复数加减法器、第二复数加减法器、复乘器和共轭部件,第一多路选择开关选通地1、2通路,第二多路选择开关选通4、5通路,第三多路选择开关选通2通路,第五选择器选通2、5通路;其中共轭部件用于对一路输入数据实时求共轭;源数据通过所述复数输入端a1、a2输入至运算单元,复乘器1计算输入两路数据的复数乘法操作,复数乘法结果送至复数加减法器2的输入端,同时复数加减法器2的输出反馈至输入,构成累加器结构,因为复数加减法器有1拍延迟,复数加减法器2输出的结果为2个部分累加结果,复数加减法器1将2个部分累加结果进行相加,得到最终乘累加结果由第一复数加减法器的输出端输出。

进一步地,控制模块配置可重构运算电路模块实现cholesky分解法求逆功能;

所述cholesky分解法求逆功能的具体实现过程为,

配置重构信息为“11100000001100101000101”,运算单元实现cholesky分解功能,具体为,运算单元使用了第二复数加减法器、第一复乘器、除法器、平方根部件和共轭部件;其中,除法器和平方根部件用于计算矩阵内任一数值的平方根倒数,平方根倒数结果存入寄存器组;第一多路选择开关选通1、3通路,平方根倒数结果和矩阵的列输入给第一复乘器完成对当前列的更新,并将结果通过第一复乘器输出端送出;当前列更新完成后,更新重构信息表为“11100000001100101000011”,第一多路选择开关选通1、2通路,第一复乘器和第二复数加减法器构成乘减结构,完成右下角列的数据更新,结果由第二复数加减法器的输出端输出;

配置重构信息为“00100000001100101000101”,运算单元实现下三角矩阵求逆功能,具体为,运算单元使用了第二复数加减法器、第一复乘器和除法器;其中,除法器用于计算cholesky分解结果的倒数,并将其存入寄存器组;第一多路选择开关选通1、3通路,cholesky分解结果的倒数和cholesky分解结果的列输入给第一复乘器完成对当前行的更新,并将结果通过第一复乘器的输出端输出;当前行更新完成后,更新重构信息为“00100000001100101000011”,第一多路选择开关选通1、2通路,第一复乘器和第二复数加减法器构成乘减结构,完成当前行下方列数据更新,结果由第二复数加减法器的输出端输出。

还提出了一种基于所述运算单元的重组单元,

将运算单元的重构信息配置为“00001100000110010001011”,形成内部功能结构相同的运算单元1和运算单元3,所述运算单元1或运算单元3使用了第一复数加减法器、第二复数加减法器、第一复乘器和第二复乘器;通过配置重构信息为“00001100000110000000011”,形成运算单元4,运算单元4使用了第二复数加减法器、第一复乘器和第二复乘器;通过配置重构信息为“00001100000110000011011”,形成运算单元2,使用了2个复数加减法器和2个复乘器,复乘器用于计算输入数据的复数乘法操作,

第一复乘器和第二复乘器用于计算输入数据的复数乘法操作,两路复数乘法结果送至第二复数加减法器的输入端,加减法结果送至第一复数加减法器与相邻运算单元的运算结果进行加减法,结果通第一复数加减法器的输出端送至运算单元2;

运算单元1/2/3/4的第一复乘器和第二复乘器用于计算输入数据的复数乘法操作,单个运算单元的两路复数乘法结果送至其第二复数加减法器的输入端,运算单元1和2的第二复数加减法器的输出结果送至运算单元1的第一复数加减法器;运算单元3和4的第二复数加减法器的输出结果送至运算单元3的第一复数加减法器;运算单元1和3的第一复数加减法器的输出结果送至运算单元2的第一复数加减法器;运算单元2的第一复数加减法器接收来自运算单元1和运算单元3的结果,并进行相加,形成最终乘累加树的结果,通过其第一复数加减法器的输出端输出。

与现有技术相比,本发明具有以下有益效果:

(1)通过重构方式支持对fft、fir、相关、矩阵乘法、矩阵求逆等多种复杂信号处理算法的硬件加速,在提升性能的同时具有灵活性;

(2)基于乘、加等基本算子复用,资源利用率高;

(3)实现在1ghz主频下,使用8个运算单元并行完成1k点fft,运算时间仅为0.65us;

(4)可支持运算单元间的功能重组实现高阶全流水乘累加树,大幅提升fir、相关、矩阵乘算法处理性能;

(5)可实现重构过程在2个时钟周期内完成,重构机制快速高效;

(6)面积小、结构简单,支持多个运算单元组成高并行度信号处理协处理器;

(7)重构过程与工艺无关,可应用于芯片和fpga设计中。

附图说明

图1是可重构信号处理运算单元功能框图。

图2是重构信息表定义。

图3是radix-4蝶形单元图。

图4是运算单元重构为radix-4的功能框图。

图5是radix-2蝶形单元图。

图6是运算单元重构为radix-2的功能框图。

图7是运算单元重构为乘累加功能框图。

图8是cholesky分解法求逆流程图。

图9是运算单元重构为cholesky分解功能框图。

图10是运算单元重构为下三角矩阵求逆功能框图。

图11是运算单元重组为重组单元的功能示意图

图12是重组单元中运算单元1/3的功能示意图。

图13是重组单元中运算单元2的功能示意图。

图14是重组单元中运算单元4的功能示意图。

具体实施方式

下面结合附图对本发明作进一步详细描述。

在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。

实现本发明目的的技术解决方案为:根据算法任务特性,生成重构信息,对运算单元进行快速重构配置,实时改变内部运算资源和存储资源的配置特性和互联关系,形成新的电路拓扑结构,实现对当前算法任务的高效率硬件加速。

实施例1

如图1所示,本发明提供的一种可重构信号处理运算单元包括控制模块、可重构运算电路模块和输出模块,所述控制模块接收重构信息,根据重构信息选择数据通路,配置可重构运算电路模块的工作模式;所述可重构运算电路模块用于根据控制模块的控制信息重构电路;所述输出模块用于将可重构运算电路模块的结果输出。

所述可重构运算电路模块包括五组复数输入端、运算器、五个多路选择器和五个输出端。

(1)运算器

所述运算器由基本的算法运算部件构成,包括第一复乘器和第二复乘器、第一复数加减器和第二复数加减器、一组除法器、一组共轭部件和一组平方根部件。

所述复乘器用于执行两路复数数据的相乘操作,并输出复乘结果;

所述复数加减器根据加减模式选择位输入,用于执行两路复数数据的相加或相减操作,并输出复数相加或复数相减的结果;

所述除法器,用于完成执行两路实数数据的除法操作,并输出除法结果;

所述共轭部件,根据使能输入,对输入的复数数据执行共轭操作,并输出共轭结果;

所述平方根部件,根据使能输入,对输入的数据执行平方根倒数操作,并输出结果。

(2)多路选择器

所述多路选择器包括2个5输入多路选择开关(如图1中的第二多路选择开关mux2和第四多路选择开关mux4)、1个4输入多路选择开关(如图1中的第五多路选择开关mux5)、1个3输入多路选择开关(如图1中的第一多路选择开关mux1)和1个2输入多路选择开关(如图1中的第三多路选择开关mux3)。

第一多路选择开关mux1为3输入、2输出的选择开关,输出两路数据为第一复乘器的输入数据;第二多路选择开关mux2为5输入、2输出选择开关,输出两路数据为第一复数加减器的输入数据;第三多路选择开关mux3为2输入、1输出选择开关,输出一路数据为寄存器组的输入数据;第四多路选择开关mux4为5输入、2输出选择开关,输出两路数据为第二复数加减器的输入数据;第五多路选择开关mux5为4输入、2输出选择开关,输出两路数据为第二复乘器的输入数据。

(3)重构信息表

所述重构信息表由多条重构信息组成,每条重构信息共23位,其具体定义如图2所示,具体包括:

多路选择器配置位,每个多路选择开关输入选通位的位宽与输入通道数相同,第一多路选择开关mux1需3位,第二多路选择开关mux2需5位,第三多路选择开关mux3需2位,第四多路选择开关mux4需5位,第五多路选择开关mux5需4位,共19位,多路选择器配置位设置为‘1’时表示选中,设置为‘0’时表示未选中;

加减模式选择位,包括第一复数加减法器和第二复数加减法器的模式选择位,如图2所示分别为mod1和mod2,共2位,加减模式选择位设置为‘1’时表示减法,设置为‘0’时表示加法;

使能位,包括共轭部件使能位en1和平方根部件使能位en2,共2位,设置为‘1’时表示使能,设置为‘0’时表示旁路。

表1是可重构信号处理运算单元的具体接口定义;表2是重构信息构成的重构信息表。

表1

表2

(4)寄存器组

所述寄存器组包含4个64位寄存器,用于存放运算中间结果。

所述五组复数输入端分别为复数输入端a1、a2、b1、b2、c1、c2、d1、d2、e1和e2,所述五个输出端分别为第一复乘器、第二复乘器、除法器、第一复数加减法器和第二复数加减法器的输出;所述第一多路选择开关mux1的1路输入连接复数输入端a1,复数输入端a2经过共轭部件后连接第一多路选择开关mux1的2路输入端;第一多路选择开关mux1的两路输出连接第一复乘器的两路输入端;

所述复数输入端b1、b2连接第二多路选择开关mux2的1、2路输入端;

所述复数输入端c1连接除法器的1路输入端,复数输入端c2通过平方根部件连接除法器的2路输入端,所述除法器的输出端连接第三多路选择开关mux3的1路输入,第三多路选择开关mux3的输出端连接寄存器组的输入端,寄存器组的1路输出端连接第二多路选择开关mux2的3路输入端,寄存器组的2路输出端连接第二多路选择开关mux2的4路输入端,第二多路选择开关mux2的1路输出端连接第一复数加减法器的1路输入端和第一多路选择开关mux1的3路输入端,第二多路选择开关mux2的2路输出端连接第一复数加减法器的2路输入端;

所述复数输入端d1、d2连接第四多路选择开关mux4的3、4路输入端,第四多路选择开关mux4的1路输入端连接第二复乘器的输出端,第四多路选择开关mux4的2路输入端连接第一复乘器的输出端,第四多路选择开关mux4的5路输入端连接第二复数加减法器的输出端、第三多路选择开关mux3的2路输入端、第二多路选择开关mux2的5路输入端和第五多路选择开关mux5的2路输入端,第四多路选择开关mux4的两路输出端连接第二复数加减法器的两路输入端;

所述复数输入端e1、e2连接第五多路选择开关mux5的3、4路输入端,第五多路选择开关mux5的1路输入端连接第一复数加减法器的输出端,第五多路选择开关mux5的两路输出端连接第二复乘器的两路输入端,第二复乘器的输出端连接第四多路选择开关mux4的1路输入端。

实施例2

本实施例在实施例1所述处理运算单元的基础上实现fft算法加速。

设fft点数为l,l=4m×2n(n=0,1),表示该点数的fft需要做m级的radix-4蝶形单元和做n级radix-2蝶形单元。

radix-4蝶形单元如图3所示,单个radix-4蝶形单元输入4个点(对应图4中的输入数据a1、b1、c1、d1),输出4个点(对应图4中的输出数据a11、b11)。如表2所示,重构信息配置为“00000101011001001100000”时,运算单元重构为radix-4蝶形功能,其功能框图如图4所示,通过表1中的cadd2_src0_i和cadd2_src1_i输入接口(复数输入端d1、d2)分两个时钟周期将源数据a1、c1、b1、d1输入处理运算单元(源数据a1和b1通过复数输入端d1输入,源数据c1和d1通过复数输入端d2输入),第二复数加减法器计算a1±c1、b1±d1,并将结果存入寄存器组,第一复数加减法器对寄存器组中的两两中间结果进行加/减,并将加/减结果通过第五多路选择开关mux5送至第二复乘器,第二复乘器完成该加/减结果与旋转因子w1的复乘,并通过cmult2_res_o输出接口(第二复乘器的输出端)送出radix-4蝶形运算的结果;所述旋转因子w1通过复数输入端e1输入。

radix-2蝶形单元如图5所示,单个蝶形单元输入2个点(对应图6中的输入数据a2、b2),输出2个点(对应图6中的输出数据a22、b22)。如表2所示,重构信息配置为“00000110011001111111000”时,运算单元重构为radix-2蝶形功能,功能框图如图6所示,通过表1中的cadd2_src0_i和cadd2_src1_i输入接口(复数输入端d1、d2)将源数据a2、b2输入处理运算单元,第二复数加减法器计算a2±b2并将加/减结果通过第五多路选择开关mux5送至第二复乘器,第二复乘器完成该加/减结果与旋转因子w2的复乘,并通过cmult2_res_o输出接口(第二复乘器的输出端)送出radix-2蝶形运算的结果;所述旋转因子w2通过复数输入端e1输入。

实施例3

本实施例在实施例1所述处理运算单元的基础上实现fir/相关/矩阵乘算法加速。

fir、相关和矩阵乘算法的核心运算功能都是乘累加卷积运算,所以只要运算单元重构为乘累加功能,就可以实现对fir、相关和矩阵乘运算的硬件加速。

如表2所示,重构信息配置为“00000000100101011000011”时,处理运算单元重构为乘累加功能,功能框图如图7所示,使用了2个复数加减法器、1个复乘器和1个共轭部件,其中共轭部件可用于对一路输入数据实时求共轭。通过cmult1_src0_i和cmult1_src1_i输入接口(复数输入端a1、a2)将源数据输入处理运算单元,第一复乘器计算两路源数据的复数乘法操作,并复数乘法结果通过第四多路选择开关mux4送至第二复数加减法器的输入端,同时第二复数加减法器的输出反馈至其输入端,构成累加器结构,由于复数加减法器有1拍延迟,所以第二复数加减法器输出的结果为2个部分累加结果,通过第一复数加减法器将部分累加结果进行累加,并通过cadd1_res_o输出接口(第一复数加减法器的输出端)送出最终乘累加结果。

实施例3

本实施例在实施例1所述处理运算单元的基础上实现矩阵求逆算法加速。

常见的矩阵求逆方法有lu分解、qr分解和cholesky分解法。因为通信、雷达中常见的求逆矩阵为共轭正定矩阵,cholesky分解法由于运算量小,正得到越来越多的应用。cholesky分解法求逆的算法流程如图8所示,分为cholesky分解、下三角矩阵求逆和矩阵乘三个步骤。

①cholesky分解

设r矩阵阶数为n,cholesky分解步骤为:

按列(n=1,2,3……n)进行更新,对当前第n列更新,取r(n,n)(r(n,n)表示r矩阵第n行第n列的数),求平方根倒数得到c,对当前列每个元素乘以c完成当前列更新;

对第n列右下角第m列(n≥m>n)进行更新,

r(m)=r(m)-r(m,n)*×r(n)

其中,公式右侧的r(m)为更新前r矩阵的第m列,公式左侧的r(m)为更新后r矩阵的第m列,r(m,n)*表示更新前的r矩阵第m行第n列的数取共轭,r(n)表示更新前的r矩阵的第n列;

当完成所有列更新后,得到cholesky分解结果矩阵l。

如表2所示,重构信息配置为参数(i)即“11100000001100101000101”,处理运算单元重构为cholesky分解功能,功能框图如图9所示,处理运算单元使用了第二复数加减法器、第一复乘器、除法器、平方根部件和共轭部件。其中,平方根部件和除法器用于计算c=1/√(r(n,n)),结果经过第三多路选择开关mux3存入寄存器组;第一多路选择开关mux1选通1、3通路,c的值和r(n)(通过复数输入端a1输入)输入给第一复乘器,第一复乘器完成对当前列的更新,并将更新结果通过cmult1_res_o输出接口(第一复乘器输出端)送出;当前列更新完成后,更新重构信息为参数(ii)即“11100000001100101000011”,第一多路选择开关mux1选通1、2通路,第一复乘器和第二复数加减法器构成乘减结构,完成右下角列数据更新,结果由cadd2_res_o输出接口(第二复数加减法器的输出端)送出。

②下三角矩阵求逆

下三角矩阵求逆步骤为:按行(m=1,2,3……n)进行更新,对当前第m行进行更新,取l(m,m),将该对角线元素更新为1/(l(m,m)),对当前行其余元素乘以l(m,m)完成当前行更新。

对第m行下的第n列(m≥n≥1)进行更新,

l(n)=l(n)-l(m,n)×l(m)

其中,公式右侧的l(n)为更新前l矩阵的第m列,公式左侧的l(n)为更新后l矩阵的第m列,l(m,n)表示更新前的l矩阵的第m行第n列,r(n)表示更新前的l矩阵的第n列;

当完成对第n行更新后,下三角矩阵求逆完成,得到逆矩阵l-1。

如表2所示,重构信息配置为参数(iii)即“00100000001100101000101”,处理运算单元重构为下三角矩阵求逆功能,功能框图如图10所示,所述重构后的处理运算单元使用了第二复数加减法器、第一复乘器和除法器。其中,1和l(m,m)分别通过复数输入端c1和c2输入除法器,除法器计算1/(l(m,m))并将结果存入寄存器组;第一多路选择开关mux1选通1、3通路,1/(l(m,m))的值和l(m)输入第一复乘器,第一复乘器完成对当前行的更新,并将结果通过cmult1_res_o输出接口(第一复乘器的输出端)送出;当前行更新完成后,更新重构信息为参数(ⅳ)即“00100000001100101000011”,第一多路选择开关mux1选通1、2通路,第一复乘器和第二复数加减法器构成乘减结构,完成当前行下的列数据的更新,结果由cadd2_res_o输出接口(第二复数加减法器的输出端)送出。

③矩阵乘

对下三角逆矩阵l-1进行共轭转置,并乘以l-1得到了最终逆矩阵结果r-1。通过配置重构信息,运算单元重构为图7所示的乘累加功能,使得使能共轭部件对一路数据进行共轭,完成矩阵乘算法的加速。

实施例4

本实施例为一种重组单元,所述重组单元在实施例1所述处理运算单元的基础上实现高阶全流水乘累加树功能,具体为通过对多个处理运算单元配置不同的重构信息,形成多个异构处理运算单元,并进行单元间重组从而形成重组单元,所述重组单元可以扩展支持任意高阶流水乘累加树结构,大幅提升fir/相关/矩阵乘算法处理性能。

图11为四个运算单元间重组形成8输入(8组输入数据分别为g1和h1、g2和h2、g3和h3、g4和h4、g5和h5、g6和h6、g7和h7、g8和h8)流水乘累加树的功能示意图。通过配置重构信息为参数(v)即“00001100000110010001011”,形成的运算单元1和运算单元3内部功能结构相同(如图12所示),运算单元1和运算单元3均使用了第一复数加减法器、第二复数加减法器、第一复乘器和第二复乘器,第一复乘器和第二复乘器用于计算输入数据的复数乘法操作,两路复数乘法结果送至第二复数加减法器的输入端,加法结果送至第一复数加减法器与相邻运算单元的运算结果进行加法,结果通过第一复数加减法器的输出端送至运算单元2(其功能框图如图13所示);通过配置重构信息为参数(ⅵ)即“00001100000110000000011”,形成运算单元4(其功能框图如图14所示),使用了第二复数加减法器、第一复乘器和第二复乘器,复乘器用于计算输入数据的复数乘法操作,两路复数乘法结果送至第二复数加减法器的输入端,加法结果通过cadd2_res_o输出接口送至运算单元3;通过配置重构信息表为参数(ⅶ)即“00001100000110000011011”,形成运算单元2,使用了2个复数加减法器和2个复乘器,复乘器用于计算输入数据的复数乘法操作,两路复数乘法结果送至第二复数加减法器的输入端,加法结果通过第二复数加减法器的输出端送至运算单元1,运算单元1第一复数加减法器接收来自运算单元1和运算单元3的结果,并进行相加,形成最终乘累加树的结果,通过其第一复数加减法器的输出端输出。

总而言之,本发明通过配置接口将重构信息写入重构信息表,以内部重构和单元间异构重组的方式,快速改变运算资源和存储资源间的互联方式,形成radix-4蝶形单元、radix-2蝶形单元、乘累加、矩阵分解、三角矩阵求逆、高阶全流水乘累加树功能单元,实现对fft、fir、相关、矩阵乘法、矩阵求逆等复杂信号处理算法的硬件加速;本发明的重构过程为通过23位并行接口将重构信息配置入重构信息表,处理单元内部解析重构信息表,通过内部配置通道完成对运算器和多路选择器的配置,整个重构过程在2个时钟周期内完成,具有很高的实时性。本发明基于乘、加等基本算子复用,资源利用率高;可实现在1ghz主频下,使用8个运算单元并行完成1k点fft,运算时间仅0.65us;能支持运算单元间的功能重组实现高阶全流水乘累加树,大幅提升fir、相关、矩阵乘算法处理性能;可实现重构过程在2个时钟周期内完成,重构机制快速高效;面积小、结构简单,支持多个运算单元组成高并行度信号处理协处理器;与工艺无关,可应用于芯片和fpga设计中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1