CN102722352B - 一种Booth乘法器 - Google Patents
一种Booth乘法器 Download PDFInfo
- Publication number
- CN102722352B CN102722352B CN201210159642.7A CN201210159642A CN102722352B CN 102722352 B CN102722352 B CN 102722352B CN 201210159642 A CN201210159642 A CN 201210159642A CN 102722352 B CN102722352 B CN 102722352B
- Authority
- CN
- China
- Prior art keywords
- booth
- multiplier
- compressor reducer
- neg
- multiplicand
- 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.)
- Active
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种Booth乘法器,包括Booth编码电路,Booth编码,用于对二进制乘数B进行编码,得到信号X1,X2,Neg;Booth解码电路,用于将信号X1,X2,Neg结合二进制被乘数A生成部分积项;压缩器,用于将对解码电路产生的多个部分积项进行累加操作,得到两个累加值;进位保留加法器,用于对多个部分积项经过压缩器后得到的两个累加值进行进位保留的相加操作,得到最终乘积结果。本发明采用混合型Wallace-Tree结构,并插入流水线,进一步提高运算速度。与现有技术相比,本发明从速度和面积上进行了综合考虑,能达到很好的效果,同时能耗低,计算结果准确。
Description
技术领域
本发明涉及乘法器,特别涉及一种Booth乘法器。
背景技术
随着计算机和信息技术的快速发展,人们对器件处理速度和性能的要求越来越高,在高速数字信号处理器(DSP)、微处理器和RISC等各类芯片中,乘法器是必不可少的算术逻辑单元,且往往处于关键延时路径中,它完成一次乘法操作的周期基本上决定了微处理器的主频,因此高性能的乘法器是现代微处理器及高速数字信号处理中的重要部件。目前乘法器设计方法主要有4种,分别为:并行乘法器、移位相加乘法器、查找表乘法器、加法树乘法器。其中,并行乘法器易于实现,运算速度快,但耗用资源多,尤其是当乘法运算位数较宽时,耗用资源会很庞大;移位相加乘法器设计思路是通过逐项移位相加实现,其耗用器件少,但耗时钟,速度慢;查找表乘法器将乘积直接放在存储器中,将操作数作为地址访问存储器,得到的输出数据就是乘法结果,该方法的速度只局限于存储器的存储速度,但随乘数的位数增加,存储器的空间会急剧增加,该方法不适合位数高的乘法操作;加法树乘法器采用流水线结构,能在一个时钟完成两数相乘,但当乘数的位数增加,流水线的级数增多,导致会使用很多寄存器,增加器件的耗用。
乘法器运算涉及两个部分:部分积的产生和部分积的累加;由此可知提高乘法速度的途径有:1)减少部分积的数目,2)加快部分积累加速度。Booth编码能减少部分积的数目,从而使基于Booth编码的乘法器能达到更快的运算速度。目前已经有几类Booth编码方案,这些编解码方案能很好地实现减少部分积的功能,但是都未曾从速度、功耗以及占用资源的角度综合考虑。
发明内容
为了克服现有技术的上述缺点与不足,本发明的目的在于提供一种Booth乘法器,采用的Booth编码及解码电路,电路简单,占用晶体管数目少,生成的部分积项数目较少,提高了乘法器的运行速度。
本发明的目的通过以下技术方案实现:
一种Booth乘法器,包括
Booth编码电路,用于对二进制乘数B进行编码;所述编码过程如下:设乘数B为n比特,当B为奇数时,B=BnBn-1Bn-2…B2B1B0,令Bn=0;当B为偶数时,B=Bn-1Bn-2…B2B1B0,Bi∈{0,1},i=0,1,..,n-1;以B2i'+1B2i'B2i'-1为一组,对乘数B进行Booth编码,得到信号X1,X2,Neg;其中i',=0,1,…,[n/2],令B-1=0,X1=B2i'+1⊕B2i',X2=B2i'⊕B2i'-1,Neg=B2i'+1;
Booth解码电路,用于将信号X1,X2,Neg结合二进制被乘数A生成部分积项;所述生成部分积过程如下:设被乘数A为m比特,A=Am-1Am-2…A2A1A0,设PPkj为第k个部分积项中的第j位,j=0,1,…m,则
压缩器,用于将对解码电路产生的多个部分积项进行累加操作,得到两个累加值;
进位保留加法器,用于对多个部分积项经过压缩器后得到的两个累加值进行进位保留的相加操作,得到最终乘积结果。
所述累加操作采用混合型Wallace-Tree结构。
所述混合型Wallace-Tree结构中插入多级流水线。
所述Booth乘法器还包括乘数及被乘数判断模块,用于判断乘数、被乘数是否为零;若乘数、被乘数中至少有一个为零,则关闭Booth编码电路、Booth解码电路、压缩器及进位保留加法器。
所述压缩器包括3-2压缩器、4-2压缩器和5-2压缩器。
与现有技术相比,本发明具有以下优点和技术效果:
(1)本发明的采用的Booth编码及解码电路,电路简单,占用晶体管数目少,生成的部分积项数目较少,提高了乘法器的运行速度,在速度和面积综合考虑,都有较好的性能;
(2)本发明采用了混合压缩器的Wallace-Tree结构对产生的各个部分积项进行累加操作,并在树中引入了多级流水线结构,解决了传统Wallace-Tree采用单一的3-2压缩器或者4-2压缩器产生的问题:当被乘数位数N偏大时,会导致树的层数偏多,造成关键路径很长,降低整个乘法器的运行速度。采用混合型Wallace-Tree结构,可以降低整个乘法器的功耗,而引入流水线可以进一步提高乘法器的计算速度;
(3)本发明的乘法器引入乘数及被乘数判断模块(可称为0通道),当检测到被乘数或乘数为0时,可以关闭基于Booth算法和Wallace-Tree部分积项累加的电路,降低功耗的同时获得准确的结果。
(4)本发明的乘法器不只适用于浮点乘法器,还可以直接用于高位数的二进制乘法器。
附图说明
图1为IEEE754-1985/2008标准中单精度浮点数二进制的表示。
图2为二进制单精度浮点数x1和x2的浮点格式表示。
图3为实施例1的Booth乘法器的原理框图。
图4为实施例1对乘数B的编码过程示意图。
图5为实施例1的Booth编码电路。
图6为实施例1的Booth解码电路。
图7为实施例1的压缩器采用的混合型Wallace-Tree结构示意图。
图8为传统的压缩器采用的Wallace-Tree结构示意图。
图9为实施例2的Booth解码电路。
具体实施方式
下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1
根据IEEE 754-1985/2008标准,二进制浮点数v可以用三个参数来表示,即符号S、尾数F和阶码(也称指数)E,其表示形式为:
v=(-1)S·2E-bias·1.F (1)
其中符号位S∈{0,1},当S取0时,表示该浮点数是非负数,取1时对应的是负数,其二进制表示如图1所示。对于二进制单精度浮点数x1和x2,它们的二进制浮点格式如图2所示,其中bias=28-1=127,v=(-1)s·2E-127×1.F;它们的乘积如式(2)所示。
其中
从式(2)来看,浮点乘法难点在于1.f1×1.f2的计算,对应为多位二进制的乘法运算。假定多位二进制数A=Am-1Am-2…A2A1A0,B=Bn-1Bn-2…B2B1B0,它们的二进制乘法运算如式(3)所示,其中Pi为部分积。
从式(3)二进制乘法运算可以看出,乘法器运算涉及两个部分:部分积的产生和部分积的累加;由此可知提高乘法速度的途径有:1)减少部分积的数目,2)加快部分积累加速度。
基于上述设计思路,本实施例设计的Booth乘法器如图3所示,包括
(1)Booth编码电路,用于对二进制乘数B进行编码;所述编码过程如下:设乘数B为n比特,当B为奇数时,B=BnBn-1Bn-2…B2B1B0,令Bn=0,当B为偶数时,B=Bn-1Bn-2…B2B1B0,Bi∈{0,1},i=0,1,..,n-1;以B2i'+1B2i'B2i'-1为一组,对乘数B进行Booth编码,得到信号X1,X2,Neg;其中i'=0,1,…,[n/2],令B-1=0,X1=B2i'+1⊕B2i',X2=B2i'⊕B2i'-1,Neg=B2i'+1;对乘数B的编码过程见图4。
表1列出了本实施例中使用到的Booth编解码真值表,在此真值表中,i'=0,1,…,[n/2],val表示根据B2i'+1B2i'B2i'-1编码得到的值。本实施例采用Radix-4形式的Booth算法,从B2i'+1B2i'B2i'-1到val的编码方式是固定的。Neg是对val进行的编码:
图5为本实施例的Booth编码电路。
表1:本实施例采用的Booth编解码真值表
B'B'B'2i+12i2i-1 | Val | Neg | X | Z | X1 | X2 |
000 | +0 | 0 | 0 | 1 | 0 | 0 |
001 | +1 | 0 | 0 | 0 | 0 | 1 |
010 | +1 | 0 | 0 | 0 | 1 | 1 |
011 | +2 | 0 | 1 | 0 | 1 | 0 |
100 | -2 | 1 | 1 | 0 | 1 | 0 |
101 | -1 | 1 | 0 | 0 | 1 | 1 |
110 | -1 | 1 | 0 | 0 | 0 | 1 |
111 | -0 | 1 | 0 | 1 | 0 | 0 |
(2)Booth解码电路,用于将信号X1,X2,Neg结合二进制被乘数A生成部分积项;所述生成部分积过程如下:设被乘数A为m比特,A=Am-1Am-2…A2A1A0,设PPkj为第k个部分积项中的第j位,j=0,1,…m,则
其中PPkj的推导过程如下:
由于Radix-4 Booth算法产生部分积项的过程中,针对val=±2会产生移位,这里用X来标记移位。同样地,val=±0时,只需直接复制被乘数或者对被乘数进行求反操作来产生部分积项,用Z来标记此操作。
令:X1=B2i'+1⊕B2i′,X2=B2i'⊕B2i'-1
则:
图6是本实施例产生PPkj的解码电路(注:电路中的端口PPij对应式(5)中的PPkj)。
(3)压缩器,用于将对解码电路产生的多个部分积项进行累加操作,得到两个累加值。
本实施例的压缩器采用混合型Wallace-Tree结构,并采用了多级流水线的Wallace-Tree形式。图7为混合型Wallace-Tree结构(即压缩器包括3-2压缩器、5:2压缩器及4:2压缩器),依据前馈割集理论在树层结构中引入延时单元,进行流水操作,以截短关键路径的长度,提高乘法器的运算速度。其中虚线表示插入流水线的位置。
图8为传统的采用3:2压缩器构成的Wallace-Tree,对比可知,本实施例采用混合型Wallace-Tree结构,使树的层数减少了2。图7及图8以24-bit×24-bit位乘法器为例。
(4)进位保留加法器,用于对多个部分积项经过压缩器后得到的两个累加值进行进位保留的相加操作,得到最终乘积结果。
实施例2
本实施例的Booth乘法器,除了Booth解码电路采用图9所示的Booth解码电路外,其余特征均与实施例1同。在本实例中,采用的解码电路(图9所示)是按照式(6)进行实现的,与实例1中不同之处在于,在代码实现过程中,没有对式(6)进行变换。
实施例3
本实施例的Booth乘法器,除了增加了乘数及被乘数判断模块,其余特征均与实施例1同。所述乘数及被乘数判断模块用于判断乘数、被乘数是否为零;若乘数、被乘数中至少有一个为零,则关闭Booth编码电路、Booth解码电路、压缩器及进位保留加法器。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (5)
1.一种Booth乘法器,其特征在于,包括
Booth编码电路,用于对二进制乘数B进行编码;所述编码过程如下:设乘数B为n比特,当B为奇数时,B=BnBn-1Bn-2…B2B1B0,令Bn=0,当B为偶数时,B=Bn-1Bn-2…B2B1B0,Bi∈{0,1},i=0,1,..,n-1;以B2i'+1B2i'B2i'-1为一组,对乘数B进行Booth编码,得到信号X1,X2,Neg;其中i'=0,1,…,[n/2],令B-1=0,X1=B2i'+1⊕B2i',X2=B2i'⊕B2i'-1,Neg=B2i'+1;
Booth解码电路,用于将信号X1,X2,Neg结合二进制被乘数A生成部分积项;所述生成部分积过程如下:设被乘数A为m比特,A=Am-1Am-2…A2A1A0,设PPkj为第k个部分积项中的第j位,j=0,1,…m,则
压缩器,用于将对解码电路产生的多个部分积项进行累加操作,得到两个累加值;
进位保留加法器,用于对多个部分积项经过压缩器后得到的两个累加值进行进位保留的相加操作,得到最终乘积结果。
2.根据权利要求1所述的Booth乘法器,其特征在于,所述累加操作采用混合型Wallace-Tree结构。
3.根据权利要求2所述的Booth乘法器,其特征在于,所述混合型Wallace-Tree结构中插入多级流水线。
4.根据权利要求1所述的Booth乘法器,其特征在于,还包括乘数及被乘数判断模块,用于判断乘数、被乘数是否为零;若乘数、被乘数中至少有一个为零,则关闭Booth编码电路、Booth解码电路、压缩器及进位保留加法器。
5.根据权利要求1或2或3所述的Booth乘法器,其特征在于,所述压缩器包括3-2压缩器、4-2压缩器和5-2压缩器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210159642.7A CN102722352B (zh) | 2012-05-21 | 2012-05-21 | 一种Booth乘法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210159642.7A CN102722352B (zh) | 2012-05-21 | 2012-05-21 | 一种Booth乘法器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102722352A CN102722352A (zh) | 2012-10-10 |
CN102722352B true CN102722352B (zh) | 2015-06-03 |
Family
ID=46948134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210159642.7A Active CN102722352B (zh) | 2012-05-21 | 2012-05-21 | 一种Booth乘法器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102722352B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808206A (zh) * | 2016-03-04 | 2016-07-27 | 广州海格通信集团股份有限公司 | 基于ram实现乘法运算的方法及其系统 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999311A (zh) * | 2012-12-10 | 2013-03-27 | 张友能 | 基于Booth算法的48x30位乘法器 |
CN103092560B (zh) * | 2013-01-18 | 2016-03-23 | 中国科学院自动化研究所 | 一种基于Bypass技术的低功耗乘法器 |
CN103607197B (zh) * | 2013-10-17 | 2016-08-10 | 陕西万达信息工程有限公司 | 一种计1器电路 |
CN105183424B (zh) * | 2015-08-21 | 2017-09-01 | 电子科技大学 | 一种具有高精度低能耗特性的固定位宽乘法器 |
CN105183425B (zh) * | 2015-08-21 | 2017-09-01 | 电子科技大学 | 一种具有高精度低复杂度特性的固定位宽乘法器 |
CN105653240A (zh) * | 2015-12-30 | 2016-06-08 | 深圳市正东源科技有限公司 | 一种用于rfid安全芯片的乘法器及实现方法 |
CN106019129B (zh) * | 2016-05-22 | 2018-11-13 | 复旦大学 | Fpga中嵌入式dsp内乘法器的测试方法 |
CN107977191B (zh) * | 2016-10-21 | 2021-07-27 | 中国科学院微电子研究所 | 一种低功耗并行乘法器 |
CN106775577B (zh) * | 2017-01-03 | 2019-05-14 | 南京航空航天大学 | 一种高性能非精确冗余二进制乘法器的设计方法 |
CN106951211B (zh) * | 2017-03-27 | 2019-10-18 | 南京大学 | 一种可重构定浮点通用乘法器 |
CN109117114B (zh) * | 2018-08-16 | 2023-06-02 | 电子科技大学 | 一种基于查找表的低复杂度近似乘法器 |
CN111258546B (zh) * | 2018-11-30 | 2022-08-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110196709B (zh) * | 2019-06-04 | 2021-06-08 | 浙江大学 | 一种基于RRAM的非易失性8位Booth乘法器 |
CN110399117B (zh) * | 2019-07-31 | 2021-05-28 | 上海燧原智能科技有限公司 | 一种混合乘法加法处理方法及装置 |
CN112732221A (zh) * | 2019-10-14 | 2021-04-30 | 安徽寒武纪信息科技有限公司 | 用于浮点运算的乘法器、方法、集成电路芯片和计算装置 |
WO2021073511A1 (zh) * | 2019-10-14 | 2021-04-22 | 安徽寒武纪信息科技有限公司 | 用于浮点运算的乘法器、方法、集成电路芯片和计算装置 |
CN111475136B (zh) * | 2020-04-10 | 2023-03-03 | 电子科技大学 | 一种零均值误差的近似4-2压缩器 |
CN112685001B (zh) * | 2020-12-30 | 2023-07-18 | 中科南京智能技术研究院 | 一种Booth乘法器及其运算方法 |
CN112764712B (zh) * | 2021-01-13 | 2022-10-04 | 合肥工业大学 | 一种高性能近似Booth乘法器及计算方法 |
CN113222132B (zh) * | 2021-05-22 | 2023-04-18 | 上海阵量智能科技有限公司 | 乘法器、数据处理方法、芯片、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1556467A (zh) * | 2004-01-09 | 2004-12-22 | 上海汉芯半导体科技有限公司 | 采用混合压缩两级流水乘加单元的数字信号处理器 |
CN102184086A (zh) * | 2011-05-11 | 2011-09-14 | 电子科技大学 | 一种Booth编码器及乘法器 |
CN102355232A (zh) * | 2011-07-29 | 2012-02-15 | 北京航空航天大学 | 基于fpga的高速fir数字滤波器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7024445B2 (en) * | 2001-12-20 | 2006-04-04 | Analog Devices, Inc. | Method and apparatus for use in booth-encoded multiplication |
US7840629B2 (en) * | 2006-02-28 | 2010-11-23 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a booth multiplier |
-
2012
- 2012-05-21 CN CN201210159642.7A patent/CN102722352B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1556467A (zh) * | 2004-01-09 | 2004-12-22 | 上海汉芯半导体科技有限公司 | 采用混合压缩两级流水乘加单元的数字信号处理器 |
CN102184086A (zh) * | 2011-05-11 | 2011-09-14 | 电子科技大学 | 一种Booth编码器及乘法器 |
CN102355232A (zh) * | 2011-07-29 | 2012-02-15 | 北京航空航天大学 | 基于fpga的高速fir数字滤波器 |
Non-Patent Citations (2)
Title |
---|
High-Speed Booth Encoded Parallel Multiplier Design;Wen-Chang Yeh et al;《IEEE TRANSACTIONS ON COMPUTERS》;20000731;第49卷(第7期);692-701 * |
基于 Radix-4 Booth编码的乘法器优化设计;陈海民等;《计算机工程》;20120105;第38卷(第1期);233-235 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808206A (zh) * | 2016-03-04 | 2016-07-27 | 广州海格通信集团股份有限公司 | 基于ram实现乘法运算的方法及其系统 |
CN105808206B (zh) * | 2016-03-04 | 2019-01-08 | 广州海格通信集团股份有限公司 | 基于ram实现乘法运算的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102722352A (zh) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102722352B (zh) | 一种Booth乘法器 | |
Liu et al. | A low-power, high-performance approximate multiplier with configurable partial error recovery | |
EP3447634B1 (en) | Non-linear function computing device and method | |
CN103176767B (zh) | 一种低功耗高吞吐的浮点数乘累加单元的实现方法 | |
Sutikno | An efficient implementation of the non restoring square root algorithm in gate level | |
CN102629189A (zh) | 基于fpga的流水浮点乘累加方法 | |
CN106951211A (zh) | 一种可重构定浮点通用乘法器 | |
Mehta et al. | Implementation of single precision floating point multiplier using karatsuba algorithm | |
CN103677737A (zh) | 基于进位节省加法器的低延时cordic三角函数实现的方法及装置 | |
CN104991757A (zh) | 一种浮点处理方法及浮点处理器 | |
CN101216753A (zh) | 一种用于浮点除法和平方根运算的预处理电路结构 | |
Agrawal et al. | ASIC based logarithmic multiplier using iterative pipelined architecture | |
Babu et al. | Design of a compact reversible fault tolerant division circuit | |
CN103809931A (zh) | 一种专用高速浮点指数运算器的设计 | |
Daud et al. | Hybrid modified booth encoded algorithm-carry save adder fast multiplier | |
Kumar et al. | VLSI architecture of pipelined booth wallace MAC unit | |
CN104615404A (zh) | 一种基于查表操作的高速浮点除法部件装置 | |
Renxi et al. | Hardware implementation of a high speed floating point multiplier based on FPGA | |
Shuang-yan et al. | Design and implementation of a 64/32-bit floating-point division, reciprocal, square root, and inverse square root unit | |
US7739323B2 (en) | Systems, methods and computer program products for providing a combined moduli-9 and 3 residue generator | |
Nandal et al. | Booth multiplier using reversible logic with low power and reduced logical complexity | |
Krishnan | A comparative study on the performance of FPGA implementations of high-speed single-precision binary floating-point multipliers | |
Wang et al. | FACCU: Enable fast accumulation for high-speed DSP systems | |
Ravi et al. | Analysis and study of different multipliers to design floating point MAC units for digital signal processing applications | |
Sokolov et al. | Self-timed fused multiply-add unit performance improvement |
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 |