布鲁斯乘法器

布鲁斯乘法器算法

1)字母定义:A,0000;Q,乘数;Q-1,0;M被乘数

2)  乘数的最低位补零;

3)  从乘数的最低两位开始循环判断,如果是00或11,则不进行加减运算,但A、Q需要右移一位;如果是01,则和被乘数进行加法运算,A、Q右移一位;如果是10,则和被乘数进行减法运算,A、Q右移一位;

4)  运算次数为4bits的整数倍

5)  乘数的最后两位为11或10时,A的最高位补1;

例1:7X6=42  (标红为下一步动作)

步骤

 

A

Q

Q-1

M

[-M]补

初始值

 

0000

0110

0

0111

1001

1

00,右移

0000

0011

0

0111

1001

2

10,A-M

1001

0011

0

0111

1001

 

右移

1100

1001

1

0111

1001

3

11,右移,A补1

1110

0100

1

0111

1001

4

01,A+M

0101

0100

0

0111

1001

 

右移

0010

1010

0

0111

1001

{A,Q}=’b00101010=’d42;

注:若被乘数M为负数,貌似不适合此方法,若大神经过,请指点一二

初次研究,欢迎指正。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值