?? multiplier_top_bak.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 [9:0] p;
wire [15:0] z;
wire [15:0] shiftout_1;
wire [15:0] shiftout_2;
wire [15:1] shiftout_3;
wire [15:6] shiftout_4;
wire [15:0] sumout_1;
wire [15:0] sumout_2;
wire [15:1] sumout_3;
wire [15:6] sumout_4;
wire [15:0] cout1_1;
wire [15:0] cout1_2;
wire [15:1] cout1_3;
wire [15:6] cout1_4;
wire [15:0] cout2_1;
wire [15:0] cout2_2;
wire [15:1] cout2_3;
wire [15:6] cout2_4;
wire [15:0] c_1;
wire [15:0] c_2;
wire [15:1] c_3;
wire [15:6] c_4;
parameter ZERO = 1'b0;
parameter ONE = 1'b1;
parameter Y1 = 4'b0001;
parameter Y2 = 4'b0000;
assign p[0] = 0;
assign p[8:1] = y[7:0];
assign p[9] = 0;
multiplier_unit multiplier_unit_1_0(
.y (p[3:0]),
.x (x[0]),
.shiftin1 (ONE & ~p[3] | ZERO & p[3]),
.shiftin2 (ONE & ~p[3] | ZERO & p[3]),
.shiftout (shiftout_1[0]),
.sumin (ZERO),
.sumout (sumout_1[0]),
.cin1 (ZERO),
.cin2 (ZERO),
.cin3 (ZERO),
.cout1 (cout1_1[0]),
.cout2 (cout2_1[0]),
.c (c_1[0])
);
multiplier_unit multiplier_unit_1_1(
.y (p[3:0]),
.x (x[1]),
.shiftin1 (shiftout_1[0]),
.shiftin2 (ONE & ~p[3] | ZERO & p[3]),
.shiftout (shiftout_1[1]),
.sumin (ZERO),
.sumout (sumout_1[1]),
.cin1 (cout1_1[0]),
.cin2 (ZERO),
.cin3 (c_1[0]),
.cout1 (cout1_1[1]),
.cout2 (cout2_1[1]),
.c (c_1[1])
);
multiplier_unit multiplier_unit_1_2(
.y (p[3:0]),
.x (x[2]),
.shiftin1 (shiftout_1[1]),
.shiftin2 (shiftout_1[0]),
.shiftout (shiftout_1[2]),
.sumin (ZERO),
.sumout (sumout_1[2]),
.cin1 (cout1_1[1]),
.cin2 (cout2_1[0]),
.cin3 (c_1[1]),
.cout1 (cout1_1[2]),
.cout2 (cout2_1[2]),
.c (c_1[2])
);
multiplier_unit multiplier_unit_1_3(
.y (p[3:0]),
.x (x[3]),
.shiftin1 (shiftout_1[2]),
.shiftin2 (shiftout_1[1]),
.shiftout (shiftout_1[3]),
.sumin (ZERO),
.sumout (sumout_1[3]),
.cin1 (cout1_1[2]),
.cin2 (cout2_1[1]),
.cin3 (c_1[2]),
.cout1 (cout1_1[3]),
.cout2 (cout2_1[3]),
.c (c_1[3])
);
multiplier_unit multiplier_unit_1_4(
.y (p[3:0]),
.x (x[4]),
.shiftin1 (shiftout_1[3]),
.shiftin2 (shiftout_1[2]),
.shiftout (shiftout_1[4]),
.sumin (ZERO),
.sumout (sumout_1[4]),
.cin1 (cout1_1[3]),
.cin2 (cout2_1[2]),
.cin3 (c_1[3]),
.cout1 (cout1_1[4]),
.cout2 (cout2_1[4]),
.c (c_1[4])
);
multiplier_unit multiplier_unit_1_5(
.y (p[3:0]),
.x (x[5]),
.shiftin1 (shiftout_1[4]),
.shiftin2 (shiftout_1[3]),
.shiftout (shiftout_1[5]),
.sumin (ZERO),
.sumout (sumout_1[5]),
.cin1 (cout1_1[4]),
.cin2 (cout2_1[3]),
.cin3 (c_1[4]),
.cout1 (cout1_1[5]),
.cout2 (cout2_1[5]),
.c (c_1[5])
);
multiplier_unit multiplier_unit_1_6(
.y (p[3:0]),
.x (x[6]),
.shiftin1 (shiftout_1[5]),
.shiftin2 (shiftout_1[4]),
.shiftout (shiftout_1[6]),
.sumin (ZERO),
.sumout (sumout_1[6]),
.cin1 (cout1_1[5]),
.cin2 (cout2_1[4]),
.cin3 (c_1[5]),
.cout1 (cout1_1[6]),
.cout2 (cout2_1[6]),
.c (c_1[6])
);
multiplier_unit multiplier_unit_1_7(
.y (p[3:0]),
.x (x[7]),
.shiftin1 (shiftout_1[6]),
.shiftin2 (shiftout_1[5]),
.shiftout (shiftout_1[7]),
.sumin (ZERO),
.sumout (sumout_1[7]),
.cin1 (cout1_1[6]),
.cin2 (cout2_1[5]),
.cin3 (c_1[6]),
.cout1 (cout1_1[7]),
.cout2 (cout2_1[7]),
.c (c_1[7])
);
multiplier_unit multiplier_unit_1_8(
.y (p[3:0]),
.x (ZERO),
.shiftin1 (shiftout_1[7]),
.shiftin2 (shiftout_1[6]),
.shiftout (shiftout_1[8]),
.sumin (ZERO),
.sumout (sumout_1[8]),
.cin1 (cout1_1[7]),
.cin2 (cout2_1[6]),
.cin3 (c_1[7]),
.cout1 (cout1_1[8]),
.cout2 (cout2_1[8]),
.c (c_1[8])
);
multiplier_unit multiplier_unit_1_9(
.y (p[3:0]),
.x (ZERO),
.shiftin1 (shiftout_1[8]),
.shiftin2 (shiftout_1[7]),
.shiftout (shiftout_1[9]),
.sumin (ZERO),
.sumout (sumout_1[9]),
.cin1 (cout1_1[8]),
.cin2 (cout2_1[7]),
.cin3 (c_1[8]),
.cout1 (cout1_1[9]),
.cout2 (cout2_1[9]),
.c (c_1[9])
);
multiplier_unit multiplier_unit_1_10(
.y (p[3:0]),
.x (ZERO),
.shiftin1 (shiftout_1[9]),
.shiftin2 (shiftout_1[8]),
.shiftout (shiftout_1[10]),
.sumin (ZERO),
.sumout (sumout_1[10]),
.cin1 (cout1_1[9]),
.cin2 (cout2_1[8]),
.cin3 (c_1[9]),
.cout1 (cout1_1[10]),
.cout2 (cout2_1[10]),
.c (c_1[10])
);
multiplier_unit multiplier_unit_1_11(
.y (p[3:0]),
.x (ZERO),
.shiftin1 (shiftout_1[10]),
.shiftin2 (shiftout_1[9]),
.shiftout (shiftout_1[11]),
.sumin (ZERO),
.sumout (sumout_1[11]),
.cin1 (cout1_1[10]),
.cin2 (cout2_1[9]),
.cin3 (c_1[10]),
.cout1 (cout1_1[11]),
.cout2 (cout2_1[11]),
.c (c_1[11])
);
multiplier_unit multiplier_unit_1_12(
.y (p[3:0]),
.x (ZERO),
.shiftin1 (shiftout_1[11]),
.shiftin2 (shiftout_1[10]),
.shiftout (shiftout_1[12]),
.sumin (ZERO),
.sumout (sumout_1[12]),
.cin1 (cout1_1[11]),
.cin2 (cout2_1[10]),
.cin3 (c_1[11]),
.cout1 (cout1_1[12]),
.cout2 (cout2_1[12]),
.c (c_1[12])
);
multiplier_unit multiplier_unit_1_13(
.y (p[3:0]),
.x (ZERO),
.shiftin1 (shiftout_1[12]),
.shiftin2 (shiftout_1[11]),
.shiftout (shiftout_1[13]),
.sumin (ZERO),
.sumout (sumout_1[13]),
.cin1 (cout1_1[12]),
.cin2 (cout2_1[11]),
.cin3 (c_1[12]),
.cout1 (cout1_1[13]),
.cout2 (cout2_1[13]),
.c (c_1[13])
);
multiplier_unit multiplier_unit_1_14(
.y (p[3:0]),
.x (ZERO),
.shiftin1 (shiftout_1[13]),
.shiftin2 (shiftout_1[12]),
.shiftout (shiftout_1[14]),
.sumin (ZERO),
.sumout (sumout_1[14]),
.cin1 (cout1_1[13]),
.cin2 (cout2_1[12]),
.cin3 (c_1[13]),
.cout1 (cout1_1[14]),
.cout2 (cout2_1[14]),
.c (c_1[14])
);
multiplier_unit multiplier_unit_1_15(
.y (p[3:0]),
.x (ZERO),
.shiftin1 (shiftout_1[14]),
.shiftin2 (shiftout_1[13]),
.shiftout (shiftout_1[15]),
.sumin (ZERO),
.sumout (sumout_1[15]),
.cin1 (cout1_1[14]),
.cin2 (cout2_1[13]),
.cin3 (c_1[14]),
.cout1 (cout1_1[15]),
.cout2 (cout2_1[15]),
.c (c_1[15])
);
multiplier_unit multiplier_unit_2_0(
.y (Y1),
.x (y[2]),
.shiftin1 (ONE & ~p[3] | ZERO & p[3]),
.shiftin2 (ONE & ~p[3] | ZERO & p[3]),
.shiftout (shiftout_2[0]),
.sumin (sumout_1[0]),
.sumout (sumout_2[0]),
.cin1 (ZERO),
.cin2 (ZERO),
.cin3 (ZERO),
.cout1 (cout1_2[0]),
.cout2 (cout2_2[0]),
.c (c_2[0])
);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -