一种Booth乘法器的制作方法

文档序号:6370039阅读:814来源:国知局
专利名称:一种Booth乘法器的制作方法
技术领域
本发明涉及乘法器,特别涉及一种Booth乘法器。
背景技术
随着计算机和信息技术的快速发展,人们对器件处理速度和性能的要求越来越高,在高速数字信号处理器(DSP)、微处理器和RISC等各类芯片中,乘法器是必不可少的算术逻辑单元,且往往处于关键延时路径中,它完成一次乘法操作的周期基本上决定了微处理器的主频,因此高性能的乘法器是现代微处理器及高速数字信号处理中的重要部件。目前乘法器设计方法主要有4种,分别为并行乘法器、移位相加乘法器、查找表乘法器、加法树乘法器。其中,并行乘法器易于实现,运算速度快,但耗用资源多,尤其是当乘法运算位数较宽时,耗用资源会很庞大;移位相加乘法器设计思路是通过逐项移位相加实现,其耗用器件少,但耗时钟,速度慢;查找表乘法器将乘积直接放在存储器中,将操作数作为地址访问存储器随着计算机和信息技术的快速发展,人们对器件处理速度和性能的要求越来越高,在高速数字信号处理器(DSP)、微处理器和RISC等各类芯片中,乘法器是必不可少的算术逻辑单元,且往往处于关键延时路径中,它完成一次乘法操作的周期基本上决,得到的输出数据就是乘法结果,该方法的速度只局限于存储器的存储速度,但随乘数的位数增加,存储器的空间会急剧增加,该方法不适合位数高的乘法操作;加法树乘法器采用流水线结构,能在一个时钟完成两数相乘,但当乘数的位数增加,流水线的级数增多,导致会使用很多寄存器,增加器件的耗用。乘法器运算涉及两个部分部分积的产生和部分积的累加;由此可知提高乘法速度的途径有1)减少部分积的数目,2)加快部分积累加速度。Booth编码能减少部分积的数目,从而使基于Booth编码的乘法器能达到更快的运算速度。目前已经有几类Booth编码方案,这些编解码方案能很好地实现减少部分积的功能,但是都未曾从速度、功耗以及占用资源的角度综合考虑。

发明内容
为了克服现有技术的上述缺点与不足,本发明的目的在于提供一种Booth乘法器,采用的Booth编码及解码电路,电路简单,占用晶体管数目少,生成的部分积项数目较少,提高了乘法器的运行速度。本发明的目的通过以下技术方案实现一种Booth乘法器,包括Booth编码电路,用于对二进制乘数B进行编码;所述编码过程如下设乘数B为n 比特,当 B 为奇数时,B=BnBlriBlrf…B2B1Btl,令 Bn=OBn=O;当 B 为偶数时,
Bi G {0,l},i=0,l,..,n-l Bi {0, l},i=0,;&B2i, +1B2i, B2i, < 为一组,对乘数 B 进
行 Booth 编码,得到信号 X1, X2, Neg ;其中 i ' =0,I, ...,[n/2],令 I1 = 0,X1 = B2l,+l B2i,,
—B2i, ^2i^i,Neg=B2i/ +1 ;
Booth解码电路,用于将信号X1, X2, Neg结合二进制被乘数A生成部分积项;所述生成部分积过程如下设被乘数ASm比特,AzAmAm-A2A1Atl,设PPw为第k个部分积项中
的第 j 位,j=0, 1,…m,则 P4 =X2(4 Neg)+X2 X1^1 ^eg)+X1 Neg ;压缩器,用于将对解码电路产生的多个部分积项进行累加操作,得到两个累加值;进位保留加法器,用于对多个部分积项经过压缩器后得到的两个累加值进行进位保留的相加操作,得到最终乘积结果。所述累加操作采用混合型Wallace-Tree结构。 所述混合型Wallace-Tree结构中插入多级流水线。所述Booth乘法器还包括乘数及被乘数判断模块,用于判断乘数、被乘数是否为零;若乘数、被乘数中至少有一个为零,则关闭Booth编码电路、Booth解码电路、压缩器及进位保留加法器。所述压缩器包括3-2压缩器、4-2压缩器和5-2压缩器。与现有技术相比,本发明具有以下优点和技术效果(I)本发明的采用的Booth编码及解码电路,电路简单,占用晶体管数目少,生成的部分积项数目较少,提高了乘法器的运行速度,在速度和面积综合考虑,都有较好的性倉泛;(2)本发明采用了混合压缩器的Wallace-Tree结构对产生的各个部分积项进行累加操作,并在树中引入了多级流水线结构,解决了传统Wallace-Tree采用单一的3_2压缩器或者4-2压缩器产生的问题当被乘数位数N偏大时,会导致树的层数偏多,造成关键路径很长,降低整个乘法器的运行速度。采用混合型Wallace-Tree结构,可以降低整个乘法器的功耗,而引入流水线可以进一步提高乘法器的计算速度;( 3 )本发明的乘法器弓I入乘数及被乘数判断模块(可称为0通道),当检测到被乘数或乘数为0时,可以关闭基于Booth算法和Wallace-Tree部分积项累加的电路,降低功耗的同时获得准确的结果。(4)本发明的乘法器不只适用于浮点乘法器,还可以直接用于高位数的二进制乘法器。


图I为IEEE754-1985/2008标准中单精度浮点数二进制的表示。图2为二进制单精度浮点数X1和X2的浮点格式表示。图3为实施例I的Booth乘法器的原理框图。图4为实施例I对乘数B的编码过程示意图。图5为实施例I的Booth编码电路。图6为实施例I的Booth解码电路。图7为实施例I的压缩器采用的混合型Wallace-Tree结构示意图。图8为传统的压缩器采用的Wallace-Tree结构示意图。图9为实施例2的Booth解码电路。
具体实施例方式下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。实施例I根据IEEE 754-1985/2008标准,二进制浮点数V可以用三个参数来表示,即符号
S、尾数F和阶码(也称指数)E,其表示形式为
权利要求
1.一种Booth乘法器,其特征在于,包括 Booth编码电路,用于对二进制乘数B进行编码;所述编码过程如下设乘数B为n比特,当B为奇数时,B=BnBlriBwB2B1Bc^令Bn=O,当B为偶数时,B=BlriBlrf…B2B1B0,Bi G {0, I}, i = 0,l,..,n-l ;以 B2i, +1B2i, B2i, ^ 为一组,对乘数 B 进行 Booth 编码,得到信号 X1, X2, Ne’ g;其中 i/ = 0,I,…,[n/2],令 I1 =,X2 = B2i, B2i^l,Neg=B2i, +1 ; Booth解码电路,用于将信号X1, X2, Neg结合二进制被乘数A生成部分积项;所述生成部分积过程如下设被乘数A为m比特,A2A1Atl,设PPkj为第k个部分积项中的第 j 位,j=0, 1,…m,则 Neg)+X2 Xx(am Neg)+X, Neg ; 压缩器,用于将对解码电路产生的多个部分积项进行累加操作,得到两个累加值; 进位保留加法器,用于对多个部分积项经过压缩器后得到的两个累加值进行进位保留的相加操作,得到最终乘积结果。
2.根据权利要求I所述的Booth乘法器,其特征在于,所述累加操作采用混合型Wallace-Tree 结构。
3.根据权利要求2所述的Booth乘法器,其特征在于,所述混合型Wallace-Tree结构中插入多级流水线。
4.根据权利要求I所述的Booth乘法器,其特征在于,还包括乘数及被乘数判断模块,用于判断乘数、被乘数是否为零;若乘数、被乘数中至少有一个为零,则关闭Booth编码电路、Booth解码电路、压缩器及进位保留加法器。
5.根据权利要求I或2或3所述的Booth乘法器,其特征在于,所述压缩器包括3-2压缩器、4-2压缩器和5-2压缩器。
全文摘要
本发明公开了一种Booth乘法器,包括Booth编码电路,Booth编码,用于对二进制乘数B进行编码,得到信号X1,X2,Neg;Booth解码电路,用于将信号X1,X2,Neg结合二进制被乘数A生成部分积项;压缩器,用于将对解码电路产生的多个部分积项进行累加操作,得到两个累加值;进位保留加法器,用于对多个部分积项经过压缩器后得到的两个累加值进行进位保留的相加操作,得到最终乘积结果。本发明采用混合型Wallace-Tree结构,并插入流水线,进一步提高运算速度。与现有技术相比,本发明从速度和面积上进行了综合考虑,能达到很好的效果,同时能耗低,计算结果准确。
文档编号G06F7/523GK102722352SQ20121015964
公开日2012年10月10日 申请日期2012年5月21日 优先权日2012年5月21日
发明者吴东承, 周智恒, 曾颂荣, 杨开勇 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1