求Booth乘法器的原理和Verilog代码

2020-01-27 12:39发布

老板让做,没有概念啊。555555555,求助大家了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
GoldSunMonkey
2020-01-27 19:15
假设X、Y都是用补码形式表示的机器数,[X]补和[Y]补=Ys.Y1Y2…Yn,都是任意符号表示的数。
比较法求新的部分积,取决于两个比较位的数位,即Yi+1Yi的状态。
布斯乘法规则归纳如下:
首先设置附加位Yn+1=0,部分积初值[Z0]补=0。
当n≠0时,判YnYn+1,
        若YnYn+1=00或11,即相邻位相同时,上次部分积右移一位,直接得部分积。
        若YnYn+1=01,上次部分积加[X]补,然后右移一位得新部分积。
        若YnYn+1=10,上次部分积加[-X]补,然后右移一位得新部分积。
当n=0时,判YnYn+1(对应于Y0Y1),运算规则同(1)只是不移位。即在运算的最后一步,乘积不再右移。
注意:
(A)比较法中不管乘数为正为负,符号位都参加运算,克服了校正法的缺点
(B)运算过程中采用变形补码运算(双符号位)
(C)算法运算时的关键是YnYn+1的状态:后者(Yn+1)减前者(Yn),判断是加减(+/-X)

一周热门 更多>