11-乘法器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

部分积均为负时成立!
s 1,s ss 011
2016-11-27
Fudan University, Jinmei Lai
编码中的符号位处理


第一步假定:乘数和被乘数的符号位是0(正 数) 首先讨论:部分积为负 其次讨论:部分积可正可负 第二步推广到乘数和被乘数符号位或是0或是1 的情况
2016-11-27
Fudan University, Jinmei Lai
Booth乘法实现步骤
第一步:根据输入的被乘数与乘数,产生部分积 Booth编码:部分积无减少,但解决了符号位问题 Booth2编码:部分积减少一半,同时解决了符号位问题 Booth4,Booth8,Booth32,Booth64。。。:通过增 加预计算和Booth编码器的复杂度,部分积更少(自学) 第二步:将生成的部分积压缩得到和(Sum)和进位(Carry) 多个部分积进行压缩,需选择合理的并行方案,即选择 合理拓扑结构。 第三步:将Sum和Carry相加产生最终结果
Fudan University, Jinmei Lai
Booth 算法:免去特殊操作(减)
X被乘数,Y乘数
XY (Yi Y(i1) )2 X PP i2
i i0 i0
N 1
N 1
i
(3-5)
部分积
PP i (Y i Y (i1) ) X
式(3-5)、式(3-12)表达形式是相同的, 无符号数与符号数的乘法就统一起来了 Fudan University, Jinmei Lai 2016-11-27
CMOS Subsystem Design(2)
来金梅
2016-11-27
jmlai
Booth 乘法器

Why booth Multiplier ? 编码方法 拓扑结构
2016-11-27
Fudan University, Jinmei Lai
Basic Mathematics
2016-11-27
16 bit Booth 2 multiplication with negative partial products 部分积全部为负
数据位 17位
假定部分积全部为负,扩展符号位
2016-11-27
Fudan University, Jinmei Lai
Negative partial products with summed sign extension.
2016-11-27
Fudan University, Jinmei Lai
编码中的符号位处理


第一步假定:乘数和被乘数的符号位是0(正 数) 首先讨论:部分积全部为负 其次讨论:部分积可正可负 第二步推广到乘数和被乘数符号位或是0或是1 的情况
2016-11-27
Fudan University, Jinmei Lai
2016-11-27
Fudan University, Jinmei Lai
编码中的符号位处理


第一步正数乘法器情况:假定乘数和被乘数的 符号位是0(正数) 首先讨论:部分积全部为负 其次讨论:部分积可正可负 第二步推广到有符号乘法器:乘数和被乘数的 符号位或是0或是1的情况 部分积可正、可负
2016-11-27
Fudan University, Jinmei Lai
A为符号数

A 补 A N 1 2 N 1 A 0 2 0
A (符号数)可表示为:
2016-11-27
Fudan University, Jinmei Lai
Booth 算法:免去特殊操作(减)
2016-11-27
2016-11-27
Fudan University, Jinmei Lai
经典booth算法
X被乘数,Y乘数 PPi= (-Yi+1+ Yi)X
yi+1 yi 0 1 0 1 PPi +0 +X -X +0
y7 y6 y5 y4 y3 y2 y1 y0 y-1
0 0 1 1
Booth算法取数操作
y 7 y 6 y 5 y 4 y 3 y 2 y 1 y 0 y -1
booth编码
Y8
Y8 Y8 y 7 y 6 y 5 y 4 y 3 y 2 y 1 y 0 y -1 booth2编码
2016-11-27
Fudan University, Jinmei Lai
乘法实现
归纳为: 1. 部分积产生? 2. 部分积压缩? 3. 将Sum和Carry相加产生最终结果
Fudan University, Jinmei Lai
2016-11-27
有符号数乘法 又如何呢?
2016-11-27
Fudan University, Jinmei Lai
符号位的处理
机器数

符号数:在数的绝对值前加上正负号,就成了符号 数,例:+1101,-1101 机器数:正号用0表示、负号用1表示,称为机器数。 如“01101”“11101”。 机器数分为:
n1
i0even n2
i i y 2 y 2 i i y1 i1odd n3
n2
n3
i0even
y 2 y 2
i i i1odd i i0even i y 2 i i n2 n2
i1
2 yi 2 y1
i1 i1odd n4
表1.1:Booth算法规则
其中:Y-1=0是附加考察位,帮助分析Y0 X是被乘数 Fudan University, Jinmei Lai 2016-11-27
Booth2算法
Y yn1 2 yi 2 y1
n1 i i0 n2
yn1 2n1 yn1 2
i
i
i取偶数
部分积的个数为 [(n+1)/2]
Fudan University, Jinmei Lai
PP i (yi1 yi 2yi1)X
Booth2算法



每次交叠检验三位,每wk.baidu.com部分积 对应2比特数, 使部分积减少一 半,从而提高了运算速度并降 低了硬件复杂度 2X:左移X一位 -X:取反加 1 -2X:左移X一位,再取反加 1 电路实现时,先对补码形式的n 位乘数Y = yn-1 yn-2 ··· y1 y0扩 充附加位y-1=0 若n是奇数,还需扩充一位附加 符号位yn = yn-1 继续扩充有必要么? Fudan University, Jinmei Lai 2016-11-27
Fudan University, Jinmei Lai
提高运算速度
为了进一步提高运算速度,通常采用: 根据0/1结构的特征,对于成串的1,利用 减少部分积的数目。


变长位数移位方式: 充分考虑了乘数中不同长度的“1”串 算法的速度强烈依赖于0/1的结构 难以进行统一时序控制和阵列化设计 固定位数移位方式:booth算法



原码 反码 补码
2016-11-27
Fudan University, Jinmei Lai
原码

设X为符号数
X为正数时[X]原和X一样,即[X]原 = X X为负数时,原码是在X的符号位上写“1” 原码加减法:要判断两数的符号是否相同,相同 则两数相加,否则两数相减。在做减法前,还要 判断两数绝对值的大小,然后用大数减去小数, 最后再确定差的符号。 负数的符号位不能与其数值部分一道参加运算, 增加了硬件开销。如何将减法变成加法?
1.反码运算时,其符号位与数值一起参加运算。 2.反码的符号位相加后,如果有进位出现,则要把它送回到最低 位去相加(循环进位)。 3.用反码运算,其运算结果亦为反码。
2016-11-27
Fudan University, Jinmei Lai
补码
补码可表示为(X为符号数) :
1.补码运算时,其符号位与数值部分一起参加运算。 2.补码的符号位相加后,如果有进位出现,要把这个进位舍去 (自然丢失)。 3.用补码运算,其运算结果亦为补码。
2016-11-27
Fudan University, Jinmei Lai
Complete 16 bit Booth 2 multiplication
2016-11-27
Fudan University, Jinmei Lai
编码中的符号位处理


第一步假定:乘数和被乘数的符号位是0(正 数) 首先讨论:部分积为负 其次讨论:部分积可正可负 第二步推广到乘数和被乘数符号位或是0或是1 的情况
经典booth算法

经典的Booth算法(1951,A.D. Booth )主要是 为了解决有符号运算中复杂的符号修正问题而研 究的 对于补码表示的两数相乘无需进行符号位特殊 操作 经典Booth算法通过每次在乘数中交叠地取两 位(Yi+1, Yi)来产生部分积PPi= (-Yi+1+ Yi)X,X是 被乘数
2016-11-27
Fudan University, Jinmei Lai
反码和补码

为了减少设备,解决机器内负数的符号位参加 运算的问题,将减法运算变成加法运算,就引 进了反码和补码这两种机器数。
2016-11-27
Fudan University, Jinmei Lai
反码
反码可表示为(X为符号数) :


booth编码:通过对乘数进行编码,每个部分积对应 1比特数。 booth2编码:通过对乘数进行编码,每个部分积对 应2比特数,这样部分积个数减少了一半。
2016-11-27
Fudan University, Jinmei Lai
符号位处理


以补码表示的二进制数据,扩展其最高 位,值无影响 Booth 乘法中,在对部分积进行加法 时,对符号位进行扩展至最高位。
Booth2算法 乘上被乘数得到 X Y
i 0even
(y
n2
n 2
i 1
yi 2 yi 1 ) X 2
i
i 0even

P
n 2
P i 2
i
PP i ( yi1 yi 2yi1)X
XY
2016-11-27
i 0 even
PP 2
n3
2 y(n2)1 2n2
i2even
i i y 2 2 y 2 i1 y1 i1 i0even
i0even
(y
n2
i1
yi 2yi1) 2
2016-11-27
i取偶数 Fudan University, Jinmei Lai
G.Bewick,“Fast Multiplication:Algorithms and Implementation”, Ph.D. Dissertation, E.E. Dept. of Stanford Univ., 1994. Fudan University, Jinmei Lai 2016-11-27


部分积中扩展符号位的1能预先加好,形成一 个补偿向量,在最后一次补偿。 乘法器的字长越长,采用此方法所能节省的计 算时间和硬件资源就越多。
A.Y.Kwentus,Hing-Tsun Hung,A.N. Willson,“An architecture for high-performance / small-area multipliers for use in digital filtering applications”,IEEE Journal of SolidState Circuits , vol. 29 , Issue: 2 , Feb. 1994,pp.117 – 121;
2016-11-27
Fudan University, Jinmei Lai
Booth 乘法器

Why booth Multiplier ? 编码方法 拓扑结构
2016-11-27
Fudan University, Jinmei Lai
编码方法:如何有效地获得部分积呢?

采用booth编码方法:

即:对于任意一个有符号数SXXX,S为符 号位,XXX为数据位,当扩展符号位时有 SS…SSSXXX(至最高位)
2016-11-27
Fudan University, Jinmei Lai
符号位处理

对符号位进行扩展将带来额外的硬件开销 有效降低这种开销的方法:
S S S S S X X X 1111S X X X 1
相关文档
最新文档