FPGA:设计一个原码一位乘法器

一、运算规则
X*Y=P
引入部分积的概念,每次Y的一位和X相乘的结果叫做部分积 ,每次相乘后需要右移一位,再处理Y下一位的数值
1.符号位单独计算(异或运算)
符号组合就4种(00.01.11.10);异或运算即相同为0,不同为1

2.被乘数X 和乘数Y 都取绝对值计算
在这里插入图片描述
3.一般把被乘数X取双符号位,并且让部分积初始值为0,长度与被乘数X相同
4.从乘数Y的最后一位开始到第一位分别于被乘数X相乘。
当Y当前位数值为1时,部分积加上 |X| (X的绝对值)
当Y当前位数值为0时,部分积加上 0
5.每次右移一位时,在最前面补0.
二、两个例子
在这里插入图片描述
在这里插入图片描述
三、设计源码(Verilog)
module array_multiplier(clk,rst_n,mul_x,mul_y,res );
input clk ;//系统时钟
input rst_n ;//复位信号
input [3:0] mul_x ;//被乘数
input [3:0] mul_y ;//乘数
output reg

  • 0
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值