乘法器4位使用12个全加器

时间:2017-11-24 21:33:48

标签: verilog

这段代码是4x4二进制乘数,所以我确实模拟了它,但是当我 测试它,它对我不起作用

    module fulladder(A,B,Cin,S,cout);
input A,B,Cin;
output S,cout;
assign S=A^B^Cin;
assign cout=(A&B)|(A&Cin)|(B&Cin);
endmodule

module mult(a,b,p);
input [3:0]a,b;
output [7:0]p;
wire [11:0]c;//carry
wire [6:1]w;//out put for fulladder
assign p[0] = a[0] & b[0];
fulladder f1((b[0]&a[1]),(a[0]&b[1]),p[1],c[1]);
fulladder f2((b[0]&a[2]),(b[1]&a[1]),w[1],c[2]);
fulladder f3((b[0]&a[3]),(b[1]&a[2]),w[2],c[3]);
fulladder f4((b[1]&a[3]),w[3],c[0],c[4]);
fulladder f5((b[2]&a[0]),w[1],c[5],p[2]);
fulladder f6((b[2]&a[1]),w[4],w[2],c[6]);
fulladder f7((b[2]&a[2]),w[5],w[3],c[7]);
fulladder f8((b[2]&a[3]),w[6],c[4],c[8]);
fulladder f9((b[3]&a[0]),w[4],c[9],p[3]);
fulladder f10((b[3]&a[1]),w[5],c[10],p[4]);
fulladder f11((b[3]&a[2]),w[6],c[11],p[5]);
fulladder f12((b[3]&a[3]),c[8],p[6],p[7]);
endmodule

当我将0000 X 0000这样的二进制代码加倍时,它会给我xzxxxxz0  这段代码不需要测试工作台只是添加力,但它不起作用

0 个答案:

没有答案