CN102681815A - 用加法器树状结构的有符号乘累加算法的方法 - Google Patents
用加法器树状结构的有符号乘累加算法的方法 Download PDFInfo
- Publication number
- CN102681815A CN102681815A CN2012101482002A CN201210148200A CN102681815A CN 102681815 A CN102681815 A CN 102681815A CN 2012101482002 A CN2012101482002 A CN 2012101482002A CN 201210148200 A CN201210148200 A CN 201210148200A CN 102681815 A CN102681815 A CN 102681815A
- Authority
- CN
- China
- Prior art keywords
- data
- totalizer
- output
- multiply accumulating
- algorithm
- 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.)
- Granted
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
用加法器树状结构的有符号乘累加算法的方法,它涉及硬件乘累加算法,具体涉及一种用加法器树状结构的有符号乘累加算法的方法。它采用补码形式将数据分为系数项和数据项两部分,数据项根据二进制原则进行分解为以BIT位单位,系数项根据加法分配原则与数据项的BIT位进行二进制乘,将乘积进行二进制累加获得最终输出结果。它改变了原来DA分布式算法系数固定的缺点,并且不需要大量的ROM用来作为系数表,所占用芯片的面积更小,实现了符号数的乘累加计算,扩展方便特别适合于可编程逻辑器件的实现。
Description
技术领域:
本发明涉及硬件乘累加算法,具体涉及一种用加法器树状结构的有符号乘累加算法的方法。
背景技术:
目前,数字信号处理领域常使用的乘累加算法主要为传统的乘法器和累加器算法和DA分布式算法。其中,乘法器和累加器算法在CPU中运行的步骤如下,先计算乘法然后再计算加法,根据需要计算系数项的多少循环上述过程。这种算法的缺点是每做一次乘法运算,CPU耗费的时间比较多,而且当系数比较多时,尤其是做高阶FIR滤波计算时,每计算一次就要重复几千次乘运算。而DA分布算法提前将数据计算好储存在内存中,当需要计算的时候,取出提前算好的数据,直接进行加法计算就可以获得结果。但是,因为DA分布算法需要提前算好数据,所以需要大量的CPU内存去储存数据,对一个16位字宽的1024阶FIR滤波器,其需要的内存大小为2^1024*2字节,对很多嵌入式系统来说很难有这么大的内存供使用。另一方面,由于该算法需要提前将数据计算好存入内存中,所以当系数有所变动时,该算法需要重新计算所有数据,这是它的最大缺点。
发明内容:
本发明的目的是提供用加法器树状结构的有符号乘累加算法的方法,它改变了原来DA分布式算法系数固定的缺点,并且不需要大量的ROM用来作为系数表,所占用芯片的面积更小,实现了符号数的乘累加计算,扩展方便特别适合于可编程逻辑器件的实现。
为了解决背景技术所存在的问题,本发明是采用以下技术方案:它采用补码形式将数据分为系数项和数据项两部分,数据项根据二进制原则进行分解为以BIT位单位,系数项根据加法分配原则与数据项的BIT位进行二进制乘,将乘积进行二进制累加获得最终输出结果。
本发明包含N(乘累加阶数)个数据移位寄存器、N(乘累加阶数)个数据选择开关、加法器和累加器;将要进行处理的数据输入数据移位寄存器,数据选择开关根据输入的数据最低位进行判断,当该数据最低位为1时,数据选择开关选择系数项作为输入,数据选择开关的输出连接加法器树,加法器树将所有输入项进行加法运算,得到的数据相加后的结果输出至累加器,累加器对加法器树的输出结果与累加器内部所储存的上一次的计算结果进行累加输出最终值。
本发明改变了原来DA分布式算法系数固定的缺点,并且不需要大量的ROM用来作为系数表,所占用芯片的面积更小,实现了符号数的乘累加计算,扩展方便特别适合于可编程逻辑器件的实现。
附图说明:
图1是本发明硬结构示意图;
图2是本发明加法器树结构示意图。
具体实施方式:
参看图1-2,本具体实施方式是采用以下技术方案:它采用补码形式将数据分为系数项和数据项两部分,数据项根据二进制原则进行分解为以BIT位单位,系数项根据加法分配原则与数据项的BIT位进行二进制乘,将乘积进行二进制累加获得最终输出结果。
本具体实施方式包含N(乘累加阶数)个数据移位寄存器、N(乘累加阶数)个数据选择开关、加法器和累加器;将要进行处理的数据输入数据移位寄存器,数据选择开关根据输入的数据最低位进行判断,当该数据最低位为1时,数据选择开关选择系数项作为输入,数据选择开关的输出连接加法器树,加法器树将所有输入项进行加法运算,得到的数据相加后的结果输出至累加器,累加器对加法器树的输出结果与累加器内部所储存的上一次的计算结果进行累加输出最终值。
所述的数据移位寄存器,其个数为所实现的乘累加的阶数,该数据寄存器的位宽为输入数据的位宽。数据移位寄存器在时钟信号的作用下,每一个时钟信号令移位寄存器内部的数据向数据低位移动一位。
所述的数据选择开关,其个数为所实现的乘累加的阶数,其选择开关的控制信号为对应的数据移位寄存器的移位输出,输入的数据位乘累加算法的系数项和对应数据位宽的0信号。当控制信号为1时,选择开关切换乘累加算法中的系数项输出,当控制信号为0时,选择开关切换0信号输出。
所述的加法器树为一种多项加法和计算结构,该加法器的输入项对应每个数据选择开关和数据移位寄存器,采用单级或者多级流水线结构,对所有输入的数据进行多项加和运算,输出各项和值并且结果不能溢出。
所述的累加器为一种在时钟信号的控制下将上次累加器输出的数据和本次加法树输出的数据进行加法计算,并将计算结果输出,并在时钟的控制下锁存。锁存的输出值又作为下次计算的输入值参与下次计算过程。
本具体实施方式改变了原来DA分布式算法系数固定的缺点,并且不需要大量的ROM用来作为系数表,所占用芯片的面积更小,实现了符号数的乘累加计算,扩展方便特别适合于可编程逻辑器件的实现。
实施例:
取N=6,c和x都为字长8位+1位符号位的补码操作数。当乘累加器进行运算时,操作数D[x]首先被送入移位寄存器Rx当中,操作数c[n]和它的{-c[n]补}被送入到另外的寄存器当中。在同步时钟的驱动下,所有的操作数x同时向右移位,数据选择开关M1-M6根据R1-R6移位寄存器的最低位的bit来选择输入到加法器树A1的6个操作数是c还是0,例如:在某次时钟驱动下,六个移位寄存器R1-R6的最低位分别为[1,1,0,1,0,1],则加法器树A1的输入端的六个操作数分别为{c[1],c[2],0,c[4],0,c[6]}。加法器树A1输出六个操作数之和,送入累加器M1并与先前经过移位累加的数值相加,并储存的到新的数值,新的数值右移一位后,等待下个加法器树的输出结果并与之相加。树的数值不再是c[n]和0,而是{-c[n]补}和0。当操作数x[n]完成的全部移位之后,在M1输出端y获得的结果。
对比目前的DA分布式算法和采用乘法器结构的MAC,该算法有更多的优势。传统的DA分布式算法,需要根据系数c计算累加值后储存在LUT中,这样带来两处不方便。第一,不能即刻更新系数c,每一次更新都需要重新计算大量的累加值,这限制了分布式算法的应用范围。第二,随着阶数(N)和数据位数的增加,LUT所需的ROM也将以2的N次方迅速的增加。采用乘法器结构的MAC,乘法器占用资源多,且即使高端FPGA内部的乘法器数量也满足不了并行运算的消耗。而新的乘累加器使用加法器树来代替原来的LUT,这样的处理可以使系数c可以随时更改数值,使得基于分布式算法的乘累加器不在局限于定系数乘累加运算而且对FPGA内部RAM的需求也降到了零。
Claims (5)
1.用加法器树状结构的有符号乘累加算法的方法,其特征在于它采用补码形式将数据分为系数项和数据项两部分,数据项根据二进制原则进行分解为以BIT位单位,系数项根据加法分配原则与数据项的BIT位进行二进制乘,将乘积进行二进制累加获得最终输出结果。
它包含N(乘累加阶数)个数据移位寄存器、N(乘累加阶数)个数据选择开关、加法器和累加器;将要进行处理的数据输入数据移位寄存器,数据选择开关根据输入的数据最低位进行判断,当该数据最低位为1时,数据选择开关选择系数项作为输入,数据选择开关的输出连接加法器树,加法器树将所有输入项进行加法运算,得到的数据相加后的结果输出至累加器,累加器对加法器树的输出结果与累加器内部所储存的上一次的计算结果进行累加输出最终值。
2.根据权利要求1所述的用加法器树状结构的有符号乘累加算法的方法,其特征在于所述的数据移位寄存器,其个数为所实现的乘累加的阶数,该数据寄存器的位宽为输入数据的位宽。数据移位寄存器在时钟信号的作用下,每一个时钟信号令移位寄存器内部的数据向数据低位移动一位。
3.根据权利要求1所述的用加法器树状结构的有符号乘累加算法的方法,其特征在于所述的数据选择开关,其个数为所实现的乘累加的阶数,其选择开关的控制信号为对应的数据移位寄存器的移位输出,输入的数据位乘累加算法的系数项和对应数据位宽的0信号。当控制信号为1时,选择开关切换乘累加算法中的系数项输出,当控制信号为0时,选择开关切换0信号输出。
4.根据权利要求1所述的用加法器树状结构的有符号乘累加算法的方法,其特征在于所述的加法器树为一种多项加法和计算结构,该加法器的输入项对应每个数据选择开关和数据移位寄存器,采用单级或者多级流水线结构,对所有输入的数据进行多项加和运算,输出各项和值并且结果不能溢出。
5.根据权利要求1所述的用加法器树状结构的有符号乘累加算法的方法,其特征在于所述的累加器为一种在时钟信号的控制下将上次累加器输出的数据和本次加法树输出的数据进行加法计算,并将计算结果输出,并在时钟的控制下锁存。锁存的输出值又作为下次计算的输入值参与下次计算过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210148200.2A CN102681815B (zh) | 2012-05-11 | 2012-05-11 | 用加法器树状结构的有符号乘累加算法的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210148200.2A CN102681815B (zh) | 2012-05-11 | 2012-05-11 | 用加法器树状结构的有符号乘累加算法的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102681815A true CN102681815A (zh) | 2012-09-19 |
CN102681815B CN102681815B (zh) | 2016-03-16 |
Family
ID=46813803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210148200.2A Expired - Fee Related CN102681815B (zh) | 2012-05-11 | 2012-05-11 | 用加法器树状结构的有符号乘累加算法的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102681815B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049716A (zh) * | 2012-12-19 | 2013-04-17 | 华中科技大学 | 基于一阶矩的卷积器 |
CN105528191A (zh) * | 2015-12-01 | 2016-04-27 | 中国科学院计算技术研究所 | 数据累加装置、方法及数字信号处理装置 |
CN107656899A (zh) * | 2017-09-27 | 2018-02-02 | 深圳大学 | 一种基于fpga的模板卷积实现方法和系统 |
CN108205700A (zh) * | 2016-12-20 | 2018-06-26 | 上海寒武纪信息科技有限公司 | 神经网络运算装置和方法 |
CN109634556A (zh) * | 2018-11-06 | 2019-04-16 | 海南大学 | 一种乘累加器及累加输出方法 |
CN110007285A (zh) * | 2019-04-16 | 2019-07-12 | 哈尔滨工业大学 | 一种基于fpga的探地雷达分布式滤波方法 |
CN110036384A (zh) * | 2017-09-29 | 2019-07-19 | 索尼公司 | 信息处理设备和信息处理方法 |
CN110059814A (zh) * | 2019-03-11 | 2019-07-26 | 中山大学 | 一种基于fpga的查找表式卷积运算硬件结构 |
CN110543939A (zh) * | 2019-06-12 | 2019-12-06 | 电子科技大学 | 一种基于fpga的卷积神经网络后向训练的硬件加速实现架构 |
CN111522527A (zh) * | 2020-05-09 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 防止数据寄存器饱和溢出的方法、装置及电子设备 |
CN111615700A (zh) * | 2018-01-05 | 2020-09-01 | Ntt电子股份有限公司 | 运算电路 |
CN111814972A (zh) * | 2020-07-08 | 2020-10-23 | 上海雪湖科技有限公司 | 一种基于fpga的神经网络卷积运算加速方法 |
CN112383782A (zh) * | 2020-10-10 | 2021-02-19 | 河南工程学院 | 一种位矢量变换累加移位的一维dct/idct变换器 |
CN114237550A (zh) * | 2021-11-10 | 2022-03-25 | 电子科技大学 | 一种基于Wallace树的多输入移位求和累加器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1514596A (zh) * | 2002-12-31 | 2004-07-21 | 浙江浙大中控技术有限公司 | 基于单片机的调制解调器及其实现hart协议信号传输的方法 |
US20090058775A1 (en) * | 2007-08-28 | 2009-03-05 | Kabushiki Kaisha Toshiba | Liquid crystal drive apparatus and liquid crystal display apparatus |
US20090134916A1 (en) * | 2007-11-26 | 2009-05-28 | Sachio Iida | Charge Domain Filter Circuit |
-
2012
- 2012-05-11 CN CN201210148200.2A patent/CN102681815B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1514596A (zh) * | 2002-12-31 | 2004-07-21 | 浙江浙大中控技术有限公司 | 基于单片机的调制解调器及其实现hart协议信号传输的方法 |
US20090058775A1 (en) * | 2007-08-28 | 2009-03-05 | Kabushiki Kaisha Toshiba | Liquid crystal drive apparatus and liquid crystal display apparatus |
US20090134916A1 (en) * | 2007-11-26 | 2009-05-28 | Sachio Iida | Charge Domain Filter Circuit |
Non-Patent Citations (1)
Title |
---|
向奔: "一种DSP数据通路的设计实现", 《中国优秀硕士学位论文全文数据库》, no. 2, 15 December 2011 (2011-12-15) * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049716A (zh) * | 2012-12-19 | 2013-04-17 | 华中科技大学 | 基于一阶矩的卷积器 |
CN103049716B (zh) * | 2012-12-19 | 2015-07-22 | 华中科技大学 | 基于一阶矩的卷积器 |
CN105528191A (zh) * | 2015-12-01 | 2016-04-27 | 中国科学院计算技术研究所 | 数据累加装置、方法及数字信号处理装置 |
CN105528191B (zh) * | 2015-12-01 | 2017-04-12 | 中国科学院计算技术研究所 | 数据累加装置、方法及数字信号处理装置 |
CN108205519A (zh) * | 2016-12-20 | 2018-06-26 | 上海寒武纪信息科技有限公司 | 矩阵乘加运算装置和方法 |
CN108205700A (zh) * | 2016-12-20 | 2018-06-26 | 上海寒武纪信息科技有限公司 | 神经网络运算装置和方法 |
WO2018113597A1 (zh) * | 2016-12-20 | 2018-06-28 | 上海寒武纪信息科技有限公司 | 矩阵乘加运算装置、神经网络运算装置和方法 |
CN107656899A (zh) * | 2017-09-27 | 2018-02-02 | 深圳大学 | 一种基于fpga的模板卷积实现方法和系统 |
CN110036384A (zh) * | 2017-09-29 | 2019-07-19 | 索尼公司 | 信息处理设备和信息处理方法 |
CN110036384B (zh) * | 2017-09-29 | 2021-01-05 | 索尼公司 | 信息处理设备和信息处理方法 |
CN111615700A (zh) * | 2018-01-05 | 2020-09-01 | Ntt电子股份有限公司 | 运算电路 |
CN111615700B (zh) * | 2018-01-05 | 2023-12-08 | Ntt创新器件有限公司 | 运算电路 |
CN109634556A (zh) * | 2018-11-06 | 2019-04-16 | 海南大学 | 一种乘累加器及累加输出方法 |
CN110059814A (zh) * | 2019-03-11 | 2019-07-26 | 中山大学 | 一种基于fpga的查找表式卷积运算硬件结构 |
CN110007285B (zh) * | 2019-04-16 | 2021-07-09 | 哈尔滨工业大学 | 一种基于fpga的探地雷达分布式滤波方法 |
CN110007285A (zh) * | 2019-04-16 | 2019-07-12 | 哈尔滨工业大学 | 一种基于fpga的探地雷达分布式滤波方法 |
CN110543939A (zh) * | 2019-06-12 | 2019-12-06 | 电子科技大学 | 一种基于fpga的卷积神经网络后向训练的硬件加速实现架构 |
CN110543939B (zh) * | 2019-06-12 | 2022-05-03 | 电子科技大学 | 一种基于fpga的卷积神经网络后向训练的硬件加速实现装置 |
CN111522527A (zh) * | 2020-05-09 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 防止数据寄存器饱和溢出的方法、装置及电子设备 |
CN111522527B (zh) * | 2020-05-09 | 2022-04-29 | 支付宝(杭州)信息技术有限公司 | 防止数据寄存器饱和溢出的方法、装置及电子设备 |
CN111814972A (zh) * | 2020-07-08 | 2020-10-23 | 上海雪湖科技有限公司 | 一种基于fpga的神经网络卷积运算加速方法 |
CN111814972B (zh) * | 2020-07-08 | 2024-02-02 | 上海雪湖科技有限公司 | 一种基于fpga的神经网络卷积运算加速方法 |
CN112383782A (zh) * | 2020-10-10 | 2021-02-19 | 河南工程学院 | 一种位矢量变换累加移位的一维dct/idct变换器 |
CN114237550A (zh) * | 2021-11-10 | 2022-03-25 | 电子科技大学 | 一种基于Wallace树的多输入移位求和累加器 |
CN114237550B (zh) * | 2021-11-10 | 2023-10-13 | 电子科技大学 | 一种基于Wallace树的多输入移位求和累加器 |
Also Published As
Publication number | Publication date |
---|---|
CN102681815B (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102681815A (zh) | 用加法器树状结构的有符号乘累加算法的方法 | |
Sutikno | An efficient implementation of the non restoring square root algorithm in gate level | |
CN103678257A (zh) | 基于fpga的正定矩阵浮点求逆器及其求逆方法 | |
CN103870438A (zh) | 一种利用数论变换计算循环卷积的电路结构 | |
CN103793199A (zh) | 一种支持双域的快速rsa密码协处理器 | |
CN101986259B (zh) | 无符号定点除法器 | |
CN102184086B (zh) | 一种Booth编码器及乘法器 | |
CN101840324B (zh) | 支持复数运算和子字并行的64位定浮点乘法器 | |
CN102253822B (zh) | 一种模(2^n-3)乘法器 | |
CN102063284B (zh) | 一种除法运算方法及装置 | |
CN103176948A (zh) | 一种低成本的单精度初等函数运算加速器 | |
CN101840322B (zh) | 滤波器运算单元复用的方法和滤波器的运算系统 | |
CN104731551B (zh) | 基于fpga进行除法操作的方法及装置 | |
CN101866278A (zh) | 一种异步迭代的多位整型乘法器及其计算方法 | |
CN101923459A (zh) | 一种用于数字信号处理的可重构乘加算数运算单元 | |
CN210109863U (zh) | 乘法器、装置、神经网络芯片及电子设备 | |
Meher et al. | A novel DA-based architecture for efficient computation of inner-product of variable vectors | |
CN102929575B (zh) | 一种模(2n+3)乘法器 | |
Raj et al. | A paradigm of distributed arithmetic (DA) approaches for digital FIR filter | |
Reddy et al. | A low power VLSI implementation of reconfigurable FIR filter using carry bypass adder | |
CN103699729A (zh) | 模乘法器 | |
Kamp et al. | Multiply accumulate unit optimised for fast dot-product evaluation | |
Asish et al. | A report on multiplier and its types | |
Shivaanivarsha et al. | An Efficient Design and Implementation of High-Speed Booth Multiplier using Shift-Opt Algorithm | |
Wang et al. | Iterative radix-8 multiplier structure based on a novel real-time CSD recoding |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160316 Termination date: 20200511 |