📄 multiplier_top.v
字号:
//------------------------------------------
// file: multiplier_top
// module name: multiplier_top.v
// author: hejun
// simulate software: modelsim
//-----------------------------------------
`timescale 1ns/1ns
module multiplier_top(
x,
y,
z
);
input [7:0] x;
input [7:0] y;
output [15:0] z;
wire [15:0] z;
wire [15:0] sumout_2;
wire [15:1] sumout_3;
wire [15:0] cout_2;
wire [15:1] cout_3;
wire [15:0] pp1;
wire [15:0] pp2;
wire [15:0] pp3;
multiplier_patial_product multiplier_patial_product_1(
.x (x),
.y (y),
.pp1 (pp1),
.pp2 (pp2),
.pp3 (pp3)
);
multiplier_full_add multiplier_full_add_2_0(
.a (pp1[0]),
.b (pp2[0]),
.cin (1'b0),
.s (sumout_2[0]),
.cout (cout_2[0])
);
multiplier_full_add multiplier_full_add_2_1(
.a (pp1[1]),
.b (pp2[1]),
.cin (1'b0),
.s (sumout_2[1]),
.cout (cout_2[1])
);
multiplier_full_add multiplier_full_add_2_2(
.a (pp1[2]),
.b (pp2[2]),
.cin (1'b0),
.s (sumout_2[2]),
.cout (cout_2[2])
);
multiplier_full_add multiplier_full_add_2_3(
.a (pp1[3]),
.b (pp2[3]),
.cin (1'b0),
.s (sumout_2[3]),
.cout (cout_2[3])
);
multiplier_full_add multiplier_full_add_2_4(
.a (pp1[4]),
.b (pp2[4]),
.cin (1'b0),
.s (sumout_2[4]),
.cout (cout_2[4])
);
multiplier_full_add multiplier_full_add_2_5(
.a (pp1[5]),
.b (pp2[5]),
.cin (1'b0),
.s (sumout_2[5]),
.cout (cout_2[5])
);
multiplier_full_add multiplier_full_add_2_6(
.a (pp1[6]),
.b (pp2[6]),
.cin (1'b0),
.s (sumout_2[6]),
.cout (cout_2[6])
);
multiplier_full_add multiplier_full_add_2_7(
.a (pp1[7]),
.b (pp2[7]),
.cin (1'b0),
.s (sumout_2[7]),
.cout (cout_2[7])
);
multiplier_full_add multiplier_full_add_2_8(
.a (pp1[8]),
.b (pp2[8]),
.cin (1'b0),
.s (sumout_2[8]),
.cout (cout_2[8])
);
multiplier_full_add multiplier_full_add_2_9(
.a (pp1[9]),
.b (pp2[9]),
.cin (1'b0),
.s (sumout_2[9]),
.cout (cout_2[9])
);
multiplier_full_add multiplier_full_add_2_10(
.a (pp1[10]),
.b (pp2[10]),
.cin (1'b0),
.s (sumout_2[10]),
.cout (cout_2[10])
);
multiplier_full_add multiplier_full_add_2_11(
.a (pp1[11]),
.b (pp2[11]),
.cin (1'b0),
.s (sumout_2[11]),
.cout (cout_2[11])
);
multiplier_full_add multiplier_full_add_2_12(
.a (pp1[12]),
.b (pp2[12]),
.cin (1'b0),
.s (sumout_2[12]),
.cout (cout_2[12])
);
multiplier_full_add multiplier_full_add_2_13(
.a (pp1[13]),
.b (pp2[13]),
.cin (1'b0),
.s (sumout_2[13]),
.cout (cout_2[13])
);
multiplier_full_add multiplier_full_add_2_14(
.a (pp1[14]),
.b (pp2[14]),
.cin (1'b0),
.s (sumout_2[14]),
.cout (cout_2[14])
);
multiplier_full_add multiplier_full_add_2_15(
.a (pp1[15]),
.b (pp2[15]),
.cin (1'b0),
.s (sumout_2[15]),
.cout (cout_2[15])
);
multiplier_full_add multiplier_full_add_3_1(
.a (sumout_2[1]),
.b (pp3[1]),
.cin (cout_2[0]),
.s (sumout_3[1]),
.cout (cout_3[1])
);
multiplier_full_add multiplier_full_add_3_2(
.a (sumout_2[2]),
.b (pp3[2]),
.cin (cout_2[1]),
.s (sumout_3[2]),
.cout (cout_3[2])
);
multiplier_full_add multiplier_full_add_3_3(
.a (sumout_2[3]),
.b (pp3[3]),
.cin (cout_2[2]),
.s (sumout_3[3]),
.cout (cout_3[3])
);
multiplier_full_add multiplier_full_add_3_4(
.a (sumout_2[4]),
.b (pp3[4]),
.cin (cout_2[3]),
.s (sumout_3[4]),
.cout (cout_3[4])
);
multiplier_full_add multiplier_full_add_3_5(
.a (sumout_2[5]),
.b (pp3[5]),
.cin (cout_2[4]),
.s (sumout_3[5]),
.cout (cout_3[5])
);
multiplier_full_add multiplier_full_add_3_6(
.a (sumout_2[6]),
.b (pp3[6]),
.cin (cout_2[5]),
.s (sumout_3[6]),
.cout (cout_3[6])
);
multiplier_full_add multiplier_full_add_3_7(
.a (sumout_2[7]),
.b (pp3[7]),
.cin (cout_2[6]),
.s (sumout_3[7]),
.cout (cout_3[7])
);
multiplier_full_add multiplier_full_add_3_8(
.a (sumout_2[8]),
.b (pp3[8]),
.cin (cout_2[7]),
.s (sumout_3[8]),
.cout (cout_3[8])
);
multiplier_full_add multiplier_full_add_3_9(
.a (sumout_2[9]),
.b (pp3[9]),
.cin (cout_2[8]),
.s (sumout_3[9]),
.cout (cout_3[9])
);
multiplier_full_add multiplier_full_add_3_10(
.a (sumout_2[10]),
.b (pp3[10]),
.cin (cout_2[9]),
.s (sumout_3[10]),
.cout (cout_3[10])
);
multiplier_full_add multiplier_full_add_3_11(
.a (sumout_2[11]),
.b (pp3[11]),
.cin (cout_2[10]),
.s (sumout_3[11]),
.cout (cout_3[11])
);
multiplier_full_add multiplier_full_add_3_12(
.a (sumout_2[12]),
.b (pp3[12]),
.cin (cout_2[11]),
.s (sumout_3[12]),
.cout (cout_3[12])
);
multiplier_full_add multiplier_full_add_3_13(
.a (sumout_2[13]),
.b (pp3[13]),
.cin (cout_2[12]),
.s (sumout_3[13]),
.cout (cout_3[13])
);
multiplier_full_add multiplier_full_add_3_14(
.a (sumout_2[14]),
.b (pp3[14]),
.cin (cout_2[13]),
.s (sumout_3[14]),
.cout (cout_3[14])
);
multiplier_full_add multiplier_full_add_3_15(
.a (sumout_2[15]),
.b (pp3[15]),
.cin (cout_2[14]),
.s (sumout_3[15]),
.cout (cout_3[15])
);
assign z[0] = sumout_2[0];
assign z[1] = sumout_3[1];
multiplier_quick_add_4 multiplier_quick_add_4_1(
.a (sumout_3[5:2]),
.b (cout_3[4:1]),
.cin (1'b0),
.s (z[5:2]),
.cout (cout1)
);
multiplier_quick_add_5 multiplier_quick_add_5_1(
.a (sumout_3[10:6]),
.b (cout_3[9:5]),
.cin (cout1),
.s (z[10:6]),
.cout (cout2)
);
multiplier_quick_add_5 multiplier_quick_add_5_2(
.a (sumout_3[15:11]),
.b (cout_3[14:10]),
.cin (cout2),
.s (z[15:11]),
.cout (cout3)
);
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -