📄 smul.v
字号:
`timescale 1ns/10ps
module smul(a,b,p);
input [11:0] a; //signed input
input [7:0] b; //unsigned input
output [19:0] p; //signed output
wire fa1b_s,fa1a_s,fa19_s,fa18_s,fa17_s,fa16_s,
fa15_s,fa14_s,fa13_s,fa12_s,fa11_s;
FA5 fa1c( .x(a[0]), .y(b[0]), .s(p[0]));
FA5 fa1b( .x(a[1]), .y(b[0]), .s(fa1b_s));
FA5 fa1a( .x(a[2]), .y(b[0]), .s(fa1a_s));
FA5 fa19( .x(a[3]), .y(b[0]), .s(fa19_s));
FA5 fa18( .x(a[4]), .y(b[0]), .s(fa18_s));
FA5 fa17( .x(a[5]), .y(b[0]), .s(fa17_s));
FA5 fa16( .x(a[6]), .y(b[0]), .s(fa16_s));
FA5 fa15( .x(a[7]), .y(b[0]), .s(fa15_s));
FA5 fa14( .x(a[8]), .y(b[0]), .s(fa14_s));
FA5 fa13( .x(a[9]), .y(b[0]), .s(fa13_s));
FA5 fa12( .x(a[10]), .y(b[0]), .s(fa12_s));
FA5 fa11( .x(a[11]), .y(b[0]), .s(fa11_s));
wire fa27_s,fa26_s,fa25_s,fa24_s,fa23_s,fa22_s,fa21_s;
wire fa28_s,fa29_s,fa2a_s,fa2b_s;
wire fa28_c,fa27_c,fa26_c,fa25_c,fa24_c,fa23_c,fa22_c;
wire fa29_c,fa2a_c,fa2b_c,fa2c_c;
FA0 fa2c( .x(fa1b_s), .y(1'b0), .z(a[0] & b[1]), .s(p[1]), .c(fa2c_c));
FA0 fa2b( .x(fa1a_s), .y(1'b0), .z(a[1] & b[1]), .s(fa2b_s), .c(fa2b_c));
FA0 fa2a( .x(fa19_s), .y(1'b0), .z(a[2] & b[1]), .s(fa2a_s), .c(fa2a_c));
FA0 fa29( .x(fa18_s), .y(1'b0), .z(a[3] & b[1]), .s(fa29_s), .c(fa29_c));
FA0 fa28( .x(fa17_s), .y(1'b0), .z(a[4] & b[1]), .s(fa28_s), .c(fa28_c));
FA0 fa27( .x(fa16_s), .y(1'b0), .z(a[5] & b[1]), .s(fa27_s), .c(fa27_c));
FA0 fa26( .x(fa15_s), .y(1'b0), .z(a[6] & b[1]), .s(fa26_s), .c(fa26_c));
FA0 fa25( .x(fa14_s), .y(1'b0), .z(a[7] & b[1]), .s(fa25_s), .c(fa25_c));
FA0 fa24( .x(fa13_s), .y(1'b0), .z(a[8] & b[1]), .s(fa24_s), .c(fa24_c));
FA0 fa23( .x(fa12_s), .y(1'b0), .z(a[9] & b[1]), .s(fa23_s), .c(fa23_c));
FA2 fa22( .x(fa11_s), .y(1'b0), .z(a[10] & b[1]), .s(fa22_s), .c(fa22_c));
FA5 fa21( .x(a[11]), .y(b[1]), .s(fa21_s));
//==========================================================================
wire fa37_s,fa36_s,fa35_s,fa34_s,fa33_s,fa32_s,fa31_s;
wire fa38_s,fa39_s,fa3a_s,fa3b_s;
wire fa38_c,fa37_c,fa36_c,fa35_c,fa34_c,fa33_c,fa32_c;
wire fa39_c,fa3a_c,fa3b_c,fa3c_c;
FA0 fa3c( .x(fa2b_s), .y(fa2c_c), .z(a[0] & b[2]), .s(p[2]), .c(fa3c_c));
FA0 fa3b( .x(fa2a_s), .y(fa2b_c), .z(a[1] & b[2]), .s(fa3b_s), .c(fa3b_c));
FA0 fa3a( .x(fa29_s), .y(fa2a_c), .z(a[2] & b[2]), .s(fa3a_s), .c(fa3a_c));
FA0 fa39( .x(fa28_s), .y(fa29_c), .z(a[3] & b[2]), .s(fa39_s), .c(fa39_c));
FA0 fa38( .x(fa27_s), .y(fa28_c), .z(a[4] & b[2]), .s(fa38_s), .c(fa38_c));
FA0 fa37( .x(fa26_s), .y(fa27_c), .z(a[5] & b[2]), .s(fa37_s), .c(fa37_c));
FA0 fa36( .x(fa25_s), .y(fa26_c), .z(a[6] & b[2]), .s(fa36_s), .c(fa36_c));
FA0 fa35( .x(fa24_s), .y(fa25_c), .z(a[7] & b[2]), .s(fa35_s), .c(fa35_c));
FA0 fa34( .x(fa23_s), .y(fa24_c), .z(a[8] & b[2]), .s(fa34_s), .c(fa34_c));
FA0 fa33( .x(fa22_s), .y(fa23_c), .z(a[9] & b[2]), .s(fa33_s), .c(fa33_c));
FA2 fa32( .x(fa21_s), .y(fa22_c), .z(a[10] & b[2]), .s(fa32_s), .c(fa32_c));
FA5 fa31( .x(a[11]), .y(b[2]), .s(fa31_s));
//==========================================================================
wire fa47_s,fa46_s,fa45_s,fa44_s,fa43_s,fa42_s,fa41_s;
wire fa48_s,fa49_s,fa4a_s,fa4b_s;
wire fa48_c,fa47_c,fa46_c,fa45_c,fa44_c,fa43_c,fa42_c;
wire fa49_c,fa4a_c,fa4b_c,fa4c_c;
FA0 fa4c( .x(fa3b_s), .y(fa3c_c), .z(a[0] & b[3]), .s(p[3]), .c(fa4c_c));
FA0 fa4b( .x(fa3a_s), .y(fa3b_c), .z(a[1] & b[3]), .s(fa4b_s), .c(fa4b_c));
FA0 fa4a( .x(fa39_s), .y(fa3a_c), .z(a[2] & b[3]), .s(fa4a_s), .c(fa4a_c));
FA0 fa49( .x(fa38_s), .y(fa39_c), .z(a[3] & b[3]), .s(fa49_s), .c(fa49_c));
FA0 fa48( .x(fa37_s), .y(fa38_c), .z(a[4] & b[3]), .s(fa48_s), .c(fa48_c));
FA0 fa47( .x(fa36_s), .y(fa37_c), .z(a[5] & b[3]), .s(fa47_s), .c(fa47_c));
FA0 fa46( .x(fa35_s), .y(fa36_c), .z(a[6] & b[3]), .s(fa46_s), .c(fa46_c));
FA0 fa45( .x(fa34_s), .y(fa35_c), .z(a[7] & b[3]), .s(fa45_s), .c(fa45_c));
FA0 fa44( .x(fa33_s), .y(fa34_c), .z(a[8] & b[3]), .s(fa44_s), .c(fa44_c));
FA0 fa43( .x(fa32_s), .y(fa33_c), .z(a[9] & b[3]), .s(fa43_s), .c(fa43_c));
FA2 fa42( .x(fa31_s), .y(fa32_c), .z(a[10] & b[3]), .s(fa42_s), .c(fa42_c));
FA5 fa41( .x(a[11]), .y(b[3]), .s(fa41_s));
//==========================================================================
wire fa57_s,fa56_s,fa55_s,fa54_s,fa53_s,fa52_s,fa51_s;
wire fa58_s,fa59_s,fa5a_s,fa5b_s;
wire fa58_c,fa57_c,fa56_c,fa55_c,fa54_c,fa53_c,fa52_c;
wire fa59_c,fa5a_c,fa5b_c,fa5c_c;
FA0 fa5c( .x(fa4b_s), .y(fa4c_c), .z(a[0] & b[4]), .s(p[4]), .c(fa5c_c));
FA0 fa5b( .x(fa4a_s), .y(fa4b_c), .z(a[1] & b[4]), .s(fa5b_s), .c(fa5b_c));
FA0 fa5a( .x(fa49_s), .y(fa4a_c), .z(a[2] & b[4]), .s(fa5a_s), .c(fa5a_c));
FA0 fa59( .x(fa48_s), .y(fa49_c), .z(a[3] & b[4]), .s(fa59_s), .c(fa59_c));
FA0 fa58( .x(fa47_s), .y(fa48_c), .z(a[4] & b[4]), .s(fa58_s), .c(fa58_c));
FA0 fa57( .x(fa46_s), .y(fa47_c), .z(a[5] & b[4]), .s(fa57_s), .c(fa57_c));
FA0 fa56( .x(fa45_s), .y(fa46_c), .z(a[6] & b[4]), .s(fa56_s), .c(fa56_c));
FA0 fa55( .x(fa44_s), .y(fa45_c), .z(a[7] & b[4]), .s(fa55_s), .c(fa55_c));
FA0 fa54( .x(fa43_s), .y(fa44_c), .z(a[8] & b[4]), .s(fa54_s), .c(fa54_c));
FA0 fa53( .x(fa42_s), .y(fa43_c), .z(a[9] & b[4]), .s(fa53_s), .c(fa53_c));
FA2 fa52( .x(fa41_s), .y(fa42_c), .z(a[10] & b[4]), .s(fa52_s), .c(fa52_c));
FA5 fa51( .x(a[11]), .y(b[4]), .s(fa51_s));
//==========================================================================
wire fa67_s,fa66_s,fa65_s,fa64_s,fa63_s,fa62_s,fa61_s;
wire fa68_s,fa69_s,fa6a_s,fa6b_s;
wire fa68_c,fa67_c,fa66_c,fa65_c,fa64_c,fa63_c,fa62_c;
wire fa69_c,fa6a_c,fa6b_c,fa6c_c;
FA0 fa6c( .x(fa5b_s), .y(fa5c_c), .z(a[0] & b[5]), .s(p[5]), .c(fa6c_c));
FA0 fa6b( .x(fa5a_s), .y(fa5b_c), .z(a[1] & b[5]), .s(fa6b_s), .c(fa6b_c));
FA0 fa6a( .x(fa59_s), .y(fa5a_c), .z(a[2] & b[5]), .s(fa6a_s), .c(fa6a_c));
FA0 fa69( .x(fa58_s), .y(fa59_c), .z(a[3] & b[5]), .s(fa69_s), .c(fa69_c));
FA0 fa68( .x(fa57_s), .y(fa58_c), .z(a[4] & b[5]), .s(fa68_s), .c(fa68_c));
FA0 fa67( .x(fa56_s), .y(fa57_c), .z(a[5] & b[5]), .s(fa67_s), .c(fa67_c));
FA0 fa66( .x(fa55_s), .y(fa56_c), .z(a[6] & b[5]), .s(fa66_s), .c(fa66_c));
FA0 fa65( .x(fa54_s), .y(fa55_c), .z(a[7] & b[5]), .s(fa65_s), .c(fa65_c));
FA0 fa64( .x(fa53_s), .y(fa54_c), .z(a[8] & b[5]), .s(fa64_s), .c(fa64_c));
FA0 fa63( .x(fa52_s), .y(fa53_c), .z(a[9] & b[5]), .s(fa63_s), .c(fa63_c));
FA2 fa62( .x(fa51_s), .y(fa52_c), .z(a[10] & b[5]), .s(fa62_s), .c(fa62_c));
FA5 fa61( .x(a[11]), .y(b[5]), .s(fa61_s));
//==========================================================================
wire fa77_s,fa76_s,fa75_s,fa74_s,fa73_s,fa72_s,fa71_s;
wire fa78_s,fa79_s,fa7a_s,fa7b_s;
wire fa78_c,fa77_c,fa76_c,fa75_c,fa74_c,fa73_c,fa72_c;
wire fa79_c,fa7a_c,fa7b_c,fa7c_c;
FA0 fa7c( .x(fa6b_s), .y(fa6c_c), .z(a[0] & b[6]), .s(p[6]), .c(fa7c_c));
FA0 fa7b( .x(fa6a_s), .y(fa6b_c), .z(a[1] & b[6]), .s(fa7b_s), .c(fa7b_c));
FA0 fa7a( .x(fa69_s), .y(fa6a_c), .z(a[2] & b[6]), .s(fa7a_s), .c(fa7a_c));
FA0 fa79( .x(fa68_s), .y(fa69_c), .z(a[3] & b[6]), .s(fa79_s), .c(fa79_c));
FA0 fa78( .x(fa67_s), .y(fa68_c), .z(a[4] & b[6]), .s(fa78_s), .c(fa78_c));
FA0 fa77( .x(fa66_s), .y(fa67_c), .z(a[5] & b[6]), .s(fa77_s), .c(fa77_c));
FA0 fa76( .x(fa65_s), .y(fa66_c), .z(a[6] & b[6]), .s(fa76_s), .c(fa76_c));
FA0 fa75( .x(fa64_s), .y(fa65_c), .z(a[7] & b[6]), .s(fa75_s), .c(fa75_c));
FA0 fa74( .x(fa63_s), .y(fa64_c), .z(a[8] & b[6]), .s(fa74_s), .c(fa74_c));
FA0 fa73( .x(fa62_s), .y(fa63_c), .z(a[9] & b[6]), .s(fa73_s), .c(fa73_c));
FA2 fa72( .x(fa61_s), .y(fa62_c), .z(a[10] & b[6]), .s(fa72_s), .c(fa72_c));
FA5 fa71( .x(a[11]), .y(b[6]), .s(fa71_s));
//==========================================================================
wire fa87_s,fa86_s,fa85_s,fa84_s,fa83_s,fa82_s,fa81_s;
wire fa88_s,fa89_s,fa8a_s,fa8b_s;
wire fa88_c,fa87_c,fa86_c,fa85_c,fa84_c,fa83_c,fa82_c;
wire fa89_c,fa8a_c,fa8b_c,fa8c_c;
FA0 fa8c( .x(fa7b_s), .y(fa7c_c), .z(a[0] & b[7]), .s(p[7]), .c(fa8c_c));
FA0 fa8b( .x(fa7a_s), .y(fa7b_c), .z(a[1] & b[7]), .s(fa8b_s), .c(fa8b_c));
FA0 fa8a( .x(fa79_s), .y(fa7a_c), .z(a[2] & b[7]), .s(fa8a_s), .c(fa8a_c));
FA0 fa89( .x(fa78_s), .y(fa79_c), .z(a[3] & b[7]), .s(fa89_s), .c(fa89_c));
FA0 fa88( .x(fa77_s), .y(fa78_c), .z(a[4] & b[7]), .s(fa88_s), .c(fa88_c));
FA0 fa87( .x(fa76_s), .y(fa77_c), .z(a[5] & b[7]), .s(fa87_s), .c(fa87_c));
FA0 fa86( .x(fa75_s), .y(fa76_c), .z(a[6] & b[7]), .s(fa86_s), .c(fa86_c));
FA0 fa85( .x(fa74_s), .y(fa75_c), .z(a[7] & b[7]), .s(fa85_s), .c(fa85_c));
FA0 fa84( .x(fa73_s), .y(fa74_c), .z(a[8] & b[7]), .s(fa84_s), .c(fa84_c));
FA0 fa83( .x(fa72_s), .y(fa73_c), .z(a[9] & b[7]), .s(fa83_s), .c(fa83_c));
FA2 fa82( .x(fa71_s), .y(fa72_c), .z(a[10] & b[7]), .s(fa82_s), .c(fa82_c));
FA5 fa81( .x(a[11]), .y(b[7]), .s(fa81_s));
//==========================================================================
wire fa9c_c,fa9b_c,fa9a_c,fa99_c,fa98_c,fa97_c,fa96_c,fa95_c,fa94_c,fa93_c;
FA1 fa9c(.x(fa8b_s), .y(fa8c_c), .z(1'b0), .s(p[ 8]), .c(fa9c_c));
FA1 fa9b(.x(fa8a_s), .y(fa8b_c), .z(fa9c_c), .s(p[ 9]), .c(fa9b_c));
FA1 fa9a(.x(fa89_s), .y(fa8a_c), .z(fa9b_c), .s(p[10]), .c(fa9a_c));
FA1 fa99(.x(fa88_s), .y(fa89_c), .z(fa9a_c), .s(p[11]), .c(fa99_c));
FA1 fa98(.x(fa87_s), .y(fa88_c), .z(fa99_c), .s(p[12]), .c(fa98_c));
FA1 fa97(.x(fa86_s), .y(fa87_c), .z(fa98_c), .s(p[13]), .c(fa97_c));
FA1 fa96(.x(fa85_s), .y(fa86_c), .z(fa97_c), .s(p[14]), .c(fa96_c));
FA1 fa95(.x(fa84_s), .y(fa85_c), .z(fa96_c), .s(p[15]), .c(fa95_c));
FA1 fa94(.x(fa83_s), .y(fa84_c), .z(fa95_c), .s(p[16]), .c(fa94_c));
FA1 fa93(.x(fa82_s), .y(fa83_c), .z(fa94_c), .s(p[17]), .c(fa93_c));
FA2 fa92(.x(fa81_s), .y(fa82_c), .z(fa93_c), .s(p[18]), .c(p[19]));
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -