一、乘法器原理
1、我们先看十进制的乘法过程
可以看出来,我们是分别用乘数的个位、十位、百位与被乘数相乘分别得到 ;
最后的结果 等于 A + B10 + C100 = 401050
2、二进制的乘法过程
可以看出来,二进制乘法和十进制是一致的
最后的结果 等于 A + B2 + C4 + D*8 = 1991
二、verilog代码实现
mult4bit.v
module mult4bit(
input [3:0] a,
input [3:0] b,
output [7:0] y
);
wire [7:0] temp1;
wire [7:0] temp2;
wire [7:0] temp3;
wire [7:0] temp4;
assign temp1 = {4'b0000,a&{4{b[0]}}};
assign temp2 = {3'b000,a&{4{b[1]}},1'b0};
assign temp3 = {2