⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wallace.v

📁 64位乘法器源码verilog,经过验证测试
💻 V
字号:
module wallace(x,y,p);
    input [7:0] x;
    input [7:0] y;
    output [15:0] p;


wire [7:0] p0, p1, p2, p3, p4, p5, p6, p7;
wire [15:0] s0, s1, ss0, ss1, sss0, ssss0, c0, c1, cc0, cc1, ccc0, cccc0;

mult_1 m0(.xi(x[0]), .y(y), .p(p0));
mult_1 m1(.xi(x[1]), .y(y), .p(p1));
mult_1 m2(.xi(x[2]), .y(y), .p(p2));
mult_1 m3(.xi(x[3]), .y(y), .p(p3));
mult_1 m4(.xi(x[4]), .y(y), .p(p4));
mult_1 m5(.xi(x[5]), .y(y), .p(p5));
mult_1 m6(.xi(x[6]), .y(y), .p(p6));
mult_1 m7(.xi(x[7]), .y(y), .p(p7)); 

// level 1
csa csa0(.a({8'b0, p0}), .b({7'b0, p1, 1'b0}), .c({6'b0, p2, 2'b0}), .s(s0), .co(c0));
csa csa1(.a({5'b0, p3, 3'b0}), .b({4'b0, p4, 4'b0}), .c({3'b0, p5, 5'b0}), .s(s1), .co(c1));

// level 2
csa csa2(.a(s0), .b(c0<<1), .c(s1), .s(ss0), .co(cc0));
csa csa3(.a(c1<<1), .b({2'b0, p6, 6'b0}), .c({1'b0, p7, 7'b0}), .s(ss1), .co(cc1));

// level 3
csa csa4(.a(ss0), .b(cc0<<1), .c(ss1), .s(sss0), .co(ccc0));

// level 4
csa csa5(.a(sss0), .b(ccc0<<1), .c(cc1<<1), .s(ssss0), .co(cccc0));

// Merging adder

assign p = ssss0 + (cccc0<<1); 


endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -