Verilog乘法器

硬件乘法器——由组合逻辑组合的乘法器
一. 整数乘法器:
1.1整数的概念:
整数包括:短整数(short integer)、中整数(integer)和长整数(long integer)
在这里插入图片描述
① 短整数的最高位是符号位,符号位的正负表示了该值是“正还是负”,正值的表示方法一般是8位二进制数来表示,负值的表示方法是以补码来表示
+127——8’b0111_1111(表示位宽为8的二进制数)
+4——8’b0000_0010
-4——8’b1111_1100(在原码的基础上先求出反码,再在末位加上1求出补码)
比如求出-4的补码的操作:
8’b0000_0100;表示4
8’b1111_1011求出4的反码
8’b1111_1100这就是补码
② 短整数里面的一个特殊存在8’b1000_0000:
+127——8’b0111_1111
划分——8’b1000_0000
-127——8’b1000_0001(可以这么说:在8’b1000_0000之前的都是正值,在其后的都是负值)
③ 正值可以经过“求反加一成正值”,负值同样可以“负值求反加一成正值”:
-4——8’b1111_1100
求反——8’b0000_0011
加一——8’b0000_0100
1.2乘法器
在传统的概念上乘法等价于:“重复几次”,打个比方:B= 4,A * B亦即A要重复加4次才能得到答案,在乘法中,“负值正值的关系”就是异或的关系
在这里插入图片描述
从上面的内容看出:无论A值和B值是什么样的“正值和负值的关系”,结果C都是一样,所以我们可以有一个想法:“在做乘法的时候只是我们只要对正值进行操作,然而‘负值和正值的结果’,我们用异或关系来判断”
实验一:传统的乘法器(代码有点冗长,不是我现在能驾驭的)
该乘法器的大致思路是:
1) 在初始化之际,取乘数和被乘数的正负关系,然后取被乘数和乘数的正值
2) 每一次累加操作,递减一次乘数,直到乘数的值为0,表示操作结束
3) 输出结果根据正负关系取得
先来看一下简单的二位乘法器:(假设A0和B0都代表十位数字、B1和A1分别代表个位数字)A0A1B0B1,可以看见下面的表格:(P0到P3分别代表着得到的数字的各位)

  • 11
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值