Verilog笔记之booth乘法器

以3*7为例,首先写出乘数和被乘数的二进制表达式,分别为0011,0111;

其中,3是被乘数,7是乘数,将乘数的补码形式表示出来,为:1001

booth乘法器步骤

1、初始化p空间,其位数为2*n+1,n为乘数及被乘数的位数,本例中n为4,所以有

    p=0000 0000 0

2、将被乘数写入p[4:1],即

    p=0000 0011 0

3、判断p[1:0],如下:

         

 

p[1:0]的值
操作
00
无操作,右移一位
01
p[8:5]加乘数,右移一位
11
无操作,右移一位
10
p[8:5]减乘数,右移一位

对于本例,过程如下:

 

p[1:0]的值
操作
10
p[8:5]减乘数,右移一位-->p=1100 1001 1
11
无操作,右移一位         -->p=1110 0100 1
01
p[8:5]加乘数,右移一位-->p=0010 1010 0
00
无操作,右移一位         -->p=0001 0101 0

操作完成后,p[8:1]即为运算结果,即0001 0101(21)

 

你可能感兴趣的:(FPGA学习笔记)