booth算法举例,booth算法原理详解

首页 > 教育 > 作者:YD1662024-05-19 16:05:04

Booth提出补码乘法公式新变形

• Booth一位乘(每次乘一位)

已知[X]补和[Y]补,求[X*Y]补

[X*Y] 补 = - [X] 补 *(y 31 *2 31 ) [X] 补 * (y 30 *2 30 ) ...... [X] 补 * (y 1 *2 1 ) [X] 补 * (y 0 *2 0 )

当y i 取值0/1时,有

[X] 补 * (y n *2 n ) = [X] 补 * (y n *2 n 1 )-[X] 补 * (y n *2 n )

[X] 补 *(y a -y b ) =[X] 补 *y a - [X] 补 * y b

[X*Y] 补 = [X] 补 *(y 30 -y 31 ) *2 31 [X] 补 * (y 29 -y 30 ) *2 30 ...... [X] 补 *(y -1 -y 0 ) *2 0

• 每次循环公式相同,最高位不需额外处理,仍需N次循环

booth算法举例,booth算法原理详解(1)

• Booth两位乘(每次乘两位)

对(-y 31 *2 31 y 30 *2 30 ...... y 1 *2 1 y 0 *2 0 )进行变换

(-y 31 *2 31 y 30 *2 30 ...... y 1 *2 1 y 0 *2 0 )

= (y 29 y 30 -2*y 31 ) *2 30 (y 27 y 28 -2*y 29 ) *2 28 ...... (y 1 y 2 -2*y 3 ) *2 2 (y -1 y 0 -2*y 1 ) *2 0

• 每次循环公式相同,最高位不需额外处理,只需N/2次循环

booth算法举例,booth算法原理详解(2)

两位乘电路

[X]补表示为x 7 x 6 x 5 x 4 x 3 x 2 x 1 x 0

• 部分积表示为p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 c

• 补码减法 = 按位取反再 1

• 注意左移的处理方式

booth算法举例,booth算法原理详解(3)

booth算法举例,booth算法原理详解(4)

booth算法举例,booth算法原理详解(5)

Booth算法的串行实现

• 以二位一乘为例,32位定点乘法需要把16个数相加

• 可以用一个加法器加15次,需要15个时钟周期

booth算法举例,booth算法原理详解(6)

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.