[6] | 1 | // ========== Copyright Header Begin ========================================== |
---|
| 2 | // |
---|
| 3 | // OpenSPARC T1 Processor File: mul64.v |
---|
| 4 | // Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. |
---|
| 5 | // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES. |
---|
| 6 | // |
---|
| 7 | // The above named program is free software; you can redistribute it and/or |
---|
| 8 | // modify it under the terms of the GNU General Public |
---|
| 9 | // License version 2 as published by the Free Software Foundation. |
---|
| 10 | // |
---|
| 11 | // The above named program is distributed in the hope that it will be |
---|
| 12 | // useful, but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
| 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
---|
| 14 | // General Public License for more details. |
---|
| 15 | // |
---|
| 16 | // You should have received a copy of the GNU General Public |
---|
| 17 | // License along with this work; if not, write to the Free Software |
---|
| 18 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. |
---|
| 19 | // |
---|
| 20 | // ========== Copyright Header End ============================================ |
---|
| 21 | /*////////////////////////////////////////////////////////////////////// |
---|
| 22 | // |
---|
| 23 | // Module Name: mul64 |
---|
| 24 | // Description: *This block implements the multiplier used in the modular multiplier |
---|
| 25 | // unit (MUL) and be shared by sparc EXU and the streaming unit (SPU). |
---|
| 26 | // It is also used as the 54x54 multiplier in the FPU. |
---|
| 27 | // *It takes two 64-bit unsign data and accumulated operand and do the |
---|
| 28 | // 64x64 MAC operation at two cycle thruput and 5 cycle latency. |
---|
| 29 | // *The mul_valid signal indicate the beginning of a new operation. |
---|
| 30 | // It MUST be dis-asserted at the next cycle to have the proper 2-cycle |
---|
| 31 | // latency operation in the csa array. If there are two back-to-back |
---|
| 32 | // cycle operation, the first operation result will be incorrect. |
---|
| 33 | // *Results are avaliable on the 5th cycle of the mul_valid as shows |
---|
| 34 | // |
---|
| 35 | // *Following inputs should tie to "0" when used as a 64x64 multiplier |
---|
| 36 | // - areg |
---|
| 37 | // - accreg |
---|
| 38 | // - x2 |
---|
| 39 | // |
---|
| 40 | // Cycle-0 | Cycle-1 | Cycle-2 | Cycle-3 | Cycle-4 | Cycle-5 |
---|
| 41 | // 1st * | | | | |
---|
| 42 | // rs1, rs2 ^ | | | | 1st results |
---|
| 43 | // valid=1 | valid=0 | * | | avaliable |
---|
| 44 | // 1st | 2nd OP ^ | | |
---|
| 45 | // setup | valid=1 | | | |
---|
| 46 | // | 2nd | | |
---|
| 47 | // | setup | | |
---|
| 48 | // |
---|
| 49 | */ |
---|
| 50 | |
---|
| 51 | //FPGA_SYN enables all FPGA related modifications |
---|
| 52 | `ifdef FPGA_SYN |
---|
| 53 | `define FPGA_SYN_MUL |
---|
| 54 | `endif |
---|
| 55 | |
---|
| 56 | `ifdef FPGA_SYN_MUL |
---|
| 57 | module mul64(rs1_l, rs2, valid, areg, accreg, x2, out, rclk, si, so, se, |
---|
| 58 | mul_rst_l, mul_step); |
---|
| 59 | |
---|
| 60 | input [63:0] rs1_l; |
---|
| 61 | input [63:0] rs2; |
---|
| 62 | input valid; |
---|
| 63 | input [96:0] areg; |
---|
| 64 | input [135:129] accreg; |
---|
| 65 | input x2; |
---|
| 66 | input rclk; |
---|
| 67 | input si; |
---|
| 68 | input se; |
---|
| 69 | input mul_rst_l; |
---|
| 70 | input mul_step; |
---|
| 71 | output so; |
---|
| 72 | output [135:0] out; |
---|
| 73 | |
---|
| 74 | reg [135:0] myout, myout_a1, myout_a2, myout_a3; |
---|
| 75 | |
---|
| 76 | reg [63:0] rs1_ff; |
---|
| 77 | reg [64:0] rs2_ff; |
---|
| 78 | |
---|
| 79 | reg [63:0] par1, par2; |
---|
| 80 | reg [64:0] par3, par4; |
---|
| 81 | |
---|
| 82 | reg [5:0] state; |
---|
| 83 | |
---|
| 84 | always @(posedge rclk) |
---|
| 85 | state <= {valid,state[5:1]}; |
---|
| 86 | |
---|
| 87 | |
---|
| 88 | always @(posedge rclk) begin |
---|
| 89 | if(mul_step) begin |
---|
| 90 | if(valid) begin |
---|
| 91 | rs1_ff <= ~rs1_l; |
---|
| 92 | rs2_ff <= x2 ? {rs2,1'b0} : {1'b0,rs2}; |
---|
| 93 | end else begin |
---|
| 94 | rs1_ff <= {32'b0, rs1_ff[63:32]}; |
---|
| 95 | end |
---|
| 96 | par1 <= (rs1_ff[31:0] * rs2_ff[31:0]); |
---|
| 97 | par3 <= rs1_ff[31:0] * rs2_ff[64:32]; |
---|
| 98 | myout_a1 <= ({32'b0, myout_a1[135:32]} & {136{state[3]}}) + par1 + {par3, 32'b0} + areg; |
---|
| 99 | myout <= {(myout_a1[103:97]+accreg),myout_a1[96:0],myout[63:32]}; |
---|
| 100 | end |
---|
| 101 | end |
---|
| 102 | |
---|
| 103 | assign out = myout; |
---|
| 104 | assign so = 1'b0; |
---|
| 105 | |
---|
| 106 | endmodule |
---|
| 107 | |
---|
| 108 | `else |
---|
| 109 | |
---|
| 110 | |
---|
| 111 | module mul64 (rs1_l, rs2, valid, areg, accreg, x2, out, rclk, si, so, se, mul_rst_l, mul_step); |
---|
| 112 | |
---|
| 113 | input [63:0] rs1_l; // op1 |
---|
| 114 | input [63:0] rs2; // op2 |
---|
| 115 | input valid; // begin of the MUL operation |
---|
| 116 | input [96:0] areg; // accumulated input for ACCUM |
---|
| 117 | input [135:129] accreg; // direct input from ACCUM [135:129] |
---|
| 118 | input x2; // for op1*op2*2 |
---|
| 119 | input rclk, si, se, mul_rst_l, mul_step; |
---|
| 120 | output so; |
---|
| 121 | output [135:0] out; |
---|
| 122 | |
---|
| 123 | wire cyc1, cyc2, cyc3; // cycle stage of MUL |
---|
| 124 | wire [2:0] b0, b1, b2, b3, b4, b5, b6, b7; |
---|
| 125 | wire [2:0] b8, b9, b10, b11, b12, b13, b14, b15; |
---|
| 126 | wire b16; |
---|
| 127 | wire [63:0] op1_l, op1; |
---|
| 128 | wire [81:0] a0sum, a1sum, a0s, a1s; |
---|
| 129 | wire [81:4] a0cout, a1cout, a0c, a1c; |
---|
| 130 | wire pcoutx2, psumx2; |
---|
| 131 | wire x2_c1, x2_c2, x2_c3, x2_c2c3; |
---|
| 132 | |
---|
| 133 | wire [98:0] psum, pcout; |
---|
| 134 | wire [98:30] pcout_in, pc; |
---|
| 135 | wire [98:31] psum_in, ps; |
---|
| 136 | wire [96:0] ary2_cout, addin_cout; |
---|
| 137 | wire [97:0] ary2_sum, addin_sum ; |
---|
| 138 | wire add_cin, addin_cin, add_co31, add_co96; |
---|
| 139 | wire [103:0] addout; |
---|
| 140 | wire clk_enb0, clk_enb1; |
---|
| 141 | wire rst; |
---|
| 142 | wire clk; |
---|
| 143 | wire tm_l; |
---|
| 144 | |
---|
| 145 | assign clk = rclk; |
---|
| 146 | assign rst = ~mul_rst_l; |
---|
| 147 | assign tm_l = ~se; |
---|
| 148 | |
---|
| 149 | clken_buf ckbuf_0(.clk(clk_enb0), .rclk(clk), .enb_l(~mul_step), .tmb_l(tm_l)); |
---|
| 150 | |
---|
| 151 | ///////////////////////////////////////////////////////////////////// |
---|
| 152 | // States count |
---|
| 153 | ///////////////////////////////////////////////////////////////////// |
---|
| 154 | dffr_s cyc1_dff(.din(valid), .clk(clk_enb0), .q(cyc1), .rst(rst), .se(se), .si(), .so()); |
---|
| 155 | dffr_s cyc2_dff(.din(cyc1), .clk(clk_enb0), .q(cyc2), .rst(rst), .se(se), .si(), .so()); |
---|
| 156 | dffr_s cyc3_dff(.din(cyc2), .clk(clk_enb0), .q(cyc3), .rst(rst), .se(se), .si(), .so()); |
---|
| 157 | dffr_s x2c1_dff(.din(x2), .clk(clk_enb0), .q(x2_c1), .rst(rst), .se(se), .si(), .so()); |
---|
| 158 | dffr_s x2c2_dff(.din(x2_c1), .clk(clk_enb0), .q(x2_c2), .rst(rst), .se(se), .si(), .so()); |
---|
| 159 | dffr_s x2c3_dff(.din(x2_c2), .clk(clk_enb0), .q(x2_c3), .rst(rst), .se(se), .si(), .so()); |
---|
| 160 | |
---|
| 161 | assign x2_c2c3 = x2_c2 | x2_c3 ; |
---|
| 162 | |
---|
| 163 | ///////////////////////////////////////////////////////////////////// |
---|
| 164 | // Enable flops for op1 |
---|
| 165 | ///////////////////////////////////////////////////////////////////// |
---|
| 166 | clken_buf ckbuf_1(.clk(clk_enb1), .rclk(clk), .enb_l(~(valid & mul_step)), .tmb_l(tm_l)); |
---|
| 167 | dff_s #(64) ffrs1 (.din(rs1_l[63:0]), .clk(clk_enb1), .q(op1_l[63:0]), |
---|
| 168 | .se(se), .si(), .so()); |
---|
| 169 | |
---|
| 170 | |
---|
| 171 | |
---|
| 172 | |
---|
| 173 | assign op1[63:0] = ~op1_l[63:0]; |
---|
| 174 | |
---|
| 175 | mul_booth booth (.head (valid), |
---|
| 176 | .b_in (rs2), |
---|
| 177 | .b0 (b0), |
---|
| 178 | .b1 (b1), |
---|
| 179 | .b2 (b2), |
---|
| 180 | .b3 (b3), |
---|
| 181 | .b4 (b4), |
---|
| 182 | .b5 (b5), |
---|
| 183 | .b6 (b6), |
---|
| 184 | .b7 (b7), |
---|
| 185 | .b8 (b8), |
---|
| 186 | .b9 (b9), |
---|
| 187 | .b10 (b10), |
---|
| 188 | .b11 (b11), |
---|
| 189 | .b12 (b12), |
---|
| 190 | .b13 (b13), |
---|
| 191 | .b14 (b14), |
---|
| 192 | .b15 (b15), |
---|
| 193 | .b16 (b16), |
---|
| 194 | .clk (clk), .se(se), .si(), .so(), .mul_step(mul_step), .tm_l(tm_l)); |
---|
| 195 | |
---|
| 196 | ///////////////////////////////////////////////////////////////////// |
---|
| 197 | // Two Array1 inst ary1_a0 & ary1_a1 with the ouput flops |
---|
| 198 | ///////////////////////////////////////////////////////////////////// |
---|
| 199 | mul_array1 ary1_a0(.cout (a0cout[81:4]), |
---|
| 200 | .sum (a0sum[81:0]), |
---|
| 201 | .a (op1), |
---|
| 202 | .b0 (b0), |
---|
| 203 | .b1 (b1), |
---|
| 204 | .b2 (b2), |
---|
| 205 | .b3 (b3), |
---|
| 206 | .b4 (b4), |
---|
| 207 | .b5 (b5), |
---|
| 208 | .b6 (b6), |
---|
| 209 | .b7 (b7), |
---|
| 210 | .b8 (3'b000), |
---|
| 211 | .head (cyc1), |
---|
| 212 | .bot (1'b0)); //array a is never at the bottom of 33-pp rows |
---|
| 213 | |
---|
| 214 | dff_s #(78) a0cot_dff (.din(a0cout[81:4]), .clk(clk_enb0), .q(a0c[81:4]), |
---|
| 215 | .se(se), .si(), .so()); |
---|
| 216 | dff_s #(82) a0sum_dff (.din(a0sum[81:0]), .clk(clk_enb0), .q(a0s[81:0]), |
---|
| 217 | .se(se), .si(), .so()); |
---|
| 218 | |
---|
| 219 | mul_array1 ary1_a1(.cout (a1cout[81:4]), |
---|
| 220 | .sum (a1sum[81:0]), |
---|
| 221 | .a (op1), |
---|
| 222 | .b0 (b8), |
---|
| 223 | .b1 (b9), |
---|
| 224 | .b2 (b10), |
---|
| 225 | .b3 (b11), |
---|
| 226 | .b4 (b12), |
---|
| 227 | .b5 (b13), |
---|
| 228 | .b6 (b14), |
---|
| 229 | .b7 (b15), |
---|
| 230 | .b8 ({1'b0,b16,1'b0}), |
---|
| 231 | .head (1'b0), //array b is never at the head of 33-pp rows |
---|
| 232 | .bot (cyc2)); |
---|
| 233 | |
---|
| 234 | dff_s #(78) a1cot_dff (.din(a1cout[81:4]), .clk(clk_enb0), .q(a1c[81:4]), |
---|
| 235 | .se(se), .si(), .so()); |
---|
| 236 | dff_s #(82) a1sum_dff (.din(a1sum[81:0]), .clk(clk_enb0), .q(a1s[81:0]), |
---|
| 237 | .se(se), .si(), .so()); |
---|
| 238 | |
---|
| 239 | ///////////////////////////////////////////////////////////////////// |
---|
| 240 | // Array2 with the reorder output mux-flops |
---|
| 241 | ///////////////////////////////////////////////////////////////////// |
---|
| 242 | mul_array2 array2(.pcoutx2 (pcoutx2), |
---|
| 243 | .psumx2 (psumx2), |
---|
| 244 | .pcout (pcout[98:0]), |
---|
| 245 | .psum (psum[98:0]), |
---|
| 246 | .a0c (a0c[81:4]), |
---|
| 247 | .a0s (a0s[81:0]), |
---|
| 248 | .a1c (a1c[81:4]), |
---|
| 249 | .a1s (a1s[81:0]), |
---|
| 250 | .pc (pc[98:30]), |
---|
| 251 | .ps (ps[98:31]), |
---|
| 252 | .areg (areg[96:0]), |
---|
| 253 | .bot (cyc3), |
---|
| 254 | .x2 (x2_c2c3)); |
---|
| 255 | |
---|
| 256 | //// Outpput re-order muxes and flops //// |
---|
| 257 | dp_mux2es #(97) ary2_cmux (.dout(ary2_cout[96:0]), |
---|
| 258 | .in0(pcout[96:0]), |
---|
| 259 | .in1({pcout[95:0],pcoutx2}), |
---|
| 260 | .sel(x2_c2c3)); |
---|
| 261 | dff_s #(97) a2cot_dff (.din(ary2_cout[96:0]), .clk(clk_enb0), .q(addin_cout[96:0]), |
---|
| 262 | .se(se), .si(), .so()); |
---|
| 263 | |
---|
| 264 | dp_mux2es #(98) ary2_smux (.dout(ary2_sum[97:0]), |
---|
| 265 | .in0(psum[97:0]), |
---|
| 266 | .in1({psum[96:0],psumx2}), |
---|
| 267 | .sel(x2_c2c3)); |
---|
| 268 | dff_s #(98) a2sum_dff (.din(ary2_sum[97:0]), .clk(clk_enb0), .q(addin_sum[97:0]), |
---|
| 269 | .se(se), .si(), .so()); |
---|
| 270 | |
---|
| 271 | //// Pseudo sum & cout logic and flops //// |
---|
| 272 | assign psum_in[98:32] = psum[98:32] & {67{cyc2}} ; |
---|
| 273 | assign psum_in[31] = psum[31] & x2_c2 ; |
---|
| 274 | |
---|
| 275 | assign pcout_in[98:31] = pcout[98:31] & {68{cyc2}} ; |
---|
| 276 | assign pcout_in[30] = pcout[30] & x2_c2 ; |
---|
| 277 | |
---|
| 278 | dff_s #(68) psum_dff (.din(psum_in[98:31]), .clk(clk_enb0), .q(ps[98:31]), |
---|
| 279 | .se(se), .si(), .so()); |
---|
| 280 | dff_s #(69) pcout_dff (.din(pcout_in[98:30]), .clk(clk_enb0), .q(pc[98:30]), |
---|
| 281 | .se(se), .si(), .so()); |
---|
| 282 | |
---|
| 283 | ///////////////////////////////////////////////////////////////////// |
---|
| 284 | // Adder (104-bit) |
---|
| 285 | ///////////////////////////////////////////////////////////////////// |
---|
| 286 | |
---|
| 287 | assign add_cin = add_co31 & cyc3 ; |
---|
| 288 | |
---|
| 289 | assign {add_co31,addout[31:0]} = {{1'b0},addin_sum[31:0]} |
---|
| 290 | + {{1'b0},addin_cout[30:0],addin_cin} ; |
---|
| 291 | |
---|
| 292 | |
---|
| 293 | assign {add_co96,addout[96:32]} = addin_sum[97:32] |
---|
| 294 | + addin_cout[96:31] |
---|
| 295 | + {{65'b0},add_co31} ; |
---|
| 296 | |
---|
| 297 | assign addout[103:97] = accreg[135:129] + {{6'b0},add_co96} ; |
---|
| 298 | |
---|
| 299 | ///////////////////////////////////////////////////////////////////// |
---|
| 300 | // Pipe adder outputs |
---|
| 301 | ///////////////////////////////////////////////////////////////////// |
---|
| 302 | |
---|
| 303 | dff_s co31_dff (.din(add_cin), .clk(clk_enb0), .q(addin_cin), |
---|
| 304 | .se(se), .si(), .so()); |
---|
| 305 | |
---|
| 306 | dff_s #(104) out_dff (.din(addout[103:0]), .clk(clk_enb0), .q(out[135:32]), |
---|
| 307 | .se(se), .si(), .so()); |
---|
| 308 | |
---|
| 309 | dff_s #(32) pip_dff (.din(out[63:32]), .clk(clk_enb0), .q(out[31:0]), |
---|
| 310 | .se(se), .si(), .so()); |
---|
| 311 | |
---|
| 312 | endmodule // mul64 |
---|
| 313 | |
---|
| 314 | |
---|
| 315 | |
---|
| 316 | |
---|
| 317 | //////////////////////////////////////////////////////////////////////// |
---|
| 318 | // Sub-moudle for mul64 |
---|
| 319 | //////////////////////////////////////////////////////////////////////// |
---|
| 320 | |
---|
| 321 | module mul_array1 ( cout, sum, a, b0, b1, b2, b3, b4, b5, b6, b7, b8, |
---|
| 322 | bot, head ); |
---|
| 323 | |
---|
| 324 | input bot, head; |
---|
| 325 | output [81:4] cout; |
---|
| 326 | output [81:0] sum; |
---|
| 327 | input [2:0] b6; |
---|
| 328 | input [2:0] b3; |
---|
| 329 | input [2:0] b8; |
---|
| 330 | input [2:0] b2; |
---|
| 331 | input [2:0] b1; |
---|
| 332 | input [2:0] b7; |
---|
| 333 | input [63:0] a; |
---|
| 334 | input [2:0] b0; |
---|
| 335 | input [2:0] b4; |
---|
| 336 | input [2:0] b5; |
---|
| 337 | |
---|
| 338 | // Buses in the design |
---|
| 339 | |
---|
| 340 | wire [1:0] b5n; |
---|
| 341 | wire [1:0] b2n; |
---|
| 342 | wire [68:1] c0; |
---|
| 343 | wire [69:0] s1; |
---|
| 344 | wire [68:1] c1; |
---|
| 345 | wire [69:0] s2; |
---|
| 346 | wire [68:1] c2; |
---|
| 347 | wire [70:4] s_1; |
---|
| 348 | wire [69:2] s0; |
---|
| 349 | wire [76:10] s_2; |
---|
| 350 | wire [70:2] c_1; |
---|
| 351 | wire [76:10] c_2; |
---|
| 352 | wire [75:11] co; |
---|
| 353 | |
---|
| 354 | mul_negen p1n ( .b(b5[2:0]), .n1(b5n[1]), .n0(b5n[0])); |
---|
| 355 | mul_negen p0n ( .b(b2[2:0]), .n1(b2n[1]), .n0(b2n[0])); |
---|
| 356 | mul_csa42 sc3_71_ ( .c(s_2[71]), .cin(co[70]), .a(c_1[70]), |
---|
| 357 | .b(c_2[70]), .cout(co[71]), .sum(sum[71]), .d(s1[65]), |
---|
| 358 | .carry(cout[71])); |
---|
| 359 | mul_csa42 sc3_75_ ( .c(s_2[75]), .cin(co[74]), .a(1'b0), |
---|
| 360 | .b(c_2[74]), .cout(co[75]), .sum(sum[75]), .d(s1[69]), |
---|
| 361 | .carry(cout[75])); |
---|
| 362 | mul_csa42 sc3_74_ ( .c(s_2[74]), .cin(co[73]), .a(1'b0), |
---|
| 363 | .b(c_2[73]), .cout(co[74]), .sum(sum[74]), .d(s1[68]), |
---|
| 364 | .carry(cout[74])); |
---|
| 365 | mul_csa42 sc3_73_ ( .c(s_2[73]), .cin(co[72]), .a(1'b0), |
---|
| 366 | .b(c_2[72]), .cout(co[73]), .sum(sum[73]), .d(s1[67]), |
---|
| 367 | .carry(cout[73])); |
---|
| 368 | mul_csa42 sc3_72_ ( .c(s_2[72]), .cin(co[71]), .a(1'b0), |
---|
| 369 | .b(c_2[71]), .cout(co[72]), .sum(sum[72]), .d(s1[66]), |
---|
| 370 | .carry(cout[72])); |
---|
| 371 | mul_csa42 sc3_76_ ( .c(s_2[76]), .cin(co[75]), .a(1'b0), |
---|
| 372 | .b(c_2[75]), .cout(), .sum(sum[76]), .d(1'b0), |
---|
| 373 | .carry(cout[76])); |
---|
| 374 | mul_csa42 sc3_70_ ( .c(s_2[70]), .cin(co[69]), .a(c_1[69]), |
---|
| 375 | .b(c_2[69]), .cout(co[70]), .sum(sum[70]), .d(s_1[70]), |
---|
| 376 | .carry(cout[70])); |
---|
| 377 | mul_csa42 sc3_69_ ( .c(s_2[69]), .cin(co[68]), .a(c_1[68]), |
---|
| 378 | .b(c_2[68]), .cout(co[69]), .sum(sum[69]), .d(s_1[69]), |
---|
| 379 | .carry(cout[69])); |
---|
| 380 | mul_csa42 sc3_68_ ( .c(s_2[68]), .cin(co[67]), .a(c_1[67]), |
---|
| 381 | .b(c_2[67]), .cout(co[68]), .sum(sum[68]), .d(s_1[68]), |
---|
| 382 | .carry(cout[68])); |
---|
| 383 | mul_csa42 sc3_67_ ( .c(s_2[67]), .cin(co[66]), .a(c_1[66]), |
---|
| 384 | .b(c_2[66]), .cout(co[67]), .sum(sum[67]), .d(s_1[67]), |
---|
| 385 | .carry(cout[67])); |
---|
| 386 | mul_csa42 sc3_66_ ( .c(s_2[66]), .cin(co[65]), .a(c_1[65]), |
---|
| 387 | .b(c_2[65]), .cout(co[66]), .sum(sum[66]), .d(s_1[66]), |
---|
| 388 | .carry(cout[66])); |
---|
| 389 | mul_csa42 sc3_65_ ( .c(s_2[65]), .cin(co[64]), .a(c_1[64]), |
---|
| 390 | .b(c_2[64]), .cout(co[65]), .sum(sum[65]), .d(s_1[65]), |
---|
| 391 | .carry(cout[65])); |
---|
| 392 | mul_csa42 sc3_64_ ( .c(s_2[64]), .cin(co[63]), .a(c_1[63]), |
---|
| 393 | .b(c_2[63]), .cout(co[64]), .sum(sum[64]), .d(s_1[64]), |
---|
| 394 | .carry(cout[64])); |
---|
| 395 | mul_csa42 sc3_63_ ( .c(s_2[63]), .cin(co[62]), .a(c_1[62]), |
---|
| 396 | .b(c_2[62]), .cout(co[63]), .sum(sum[63]), .d(s_1[63]), |
---|
| 397 | .carry(cout[63])); |
---|
| 398 | mul_csa42 sc3_62_ ( .c(s_2[62]), .cin(co[61]), .a(c_1[61]), |
---|
| 399 | .b(c_2[61]), .cout(co[62]), .sum(sum[62]), .d(s_1[62]), |
---|
| 400 | .carry(cout[62])); |
---|
| 401 | mul_csa42 sc3_61_ ( .c(s_2[61]), .cin(co[60]), .a(c_1[60]), |
---|
| 402 | .b(c_2[60]), .cout(co[61]), .sum(sum[61]), .d(s_1[61]), |
---|
| 403 | .carry(cout[61])); |
---|
| 404 | mul_csa42 sc3_60_ ( .c(s_2[60]), .cin(co[59]), .a(c_1[59]), |
---|
| 405 | .b(c_2[59]), .cout(co[60]), .sum(sum[60]), .d(s_1[60]), |
---|
| 406 | .carry(cout[60])); |
---|
| 407 | mul_csa42 sc3_59_ ( .c(s_2[59]), .cin(co[58]), .a(c_1[58]), |
---|
| 408 | .b(c_2[58]), .cout(co[59]), .sum(sum[59]), .d(s_1[59]), |
---|
| 409 | .carry(cout[59])); |
---|
| 410 | mul_csa42 sc3_58_ ( .c(s_2[58]), .cin(co[57]), .a(c_1[57]), |
---|
| 411 | .b(c_2[57]), .cout(co[58]), .sum(sum[58]), .d(s_1[58]), |
---|
| 412 | .carry(cout[58])); |
---|
| 413 | mul_csa42 sc3_57_ ( .c(s_2[57]), .cin(co[56]), .a(c_1[56]), |
---|
| 414 | .b(c_2[56]), .cout(co[57]), .sum(sum[57]), .d(s_1[57]), |
---|
| 415 | .carry(cout[57])); |
---|
| 416 | mul_csa42 sc3_56_ ( .c(s_2[56]), .cin(co[55]), .a(c_1[55]), |
---|
| 417 | .b(c_2[55]), .cout(co[56]), .sum(sum[56]), .d(s_1[56]), |
---|
| 418 | .carry(cout[56])); |
---|
| 419 | mul_csa42 sc3_55_ ( .c(s_2[55]), .cin(co[54]), .a(c_1[54]), |
---|
| 420 | .b(c_2[54]), .cout(co[55]), .sum(sum[55]), .d(s_1[55]), |
---|
| 421 | .carry(cout[55])); |
---|
| 422 | mul_csa42 sc3_54_ ( .c(s_2[54]), .cin(co[53]), .a(c_1[53]), |
---|
| 423 | .b(c_2[53]), .cout(co[54]), .sum(sum[54]), .d(s_1[54]), |
---|
| 424 | .carry(cout[54])); |
---|
| 425 | mul_csa42 sc3_53_ ( .c(s_2[53]), .cin(co[52]), .a(c_1[52]), |
---|
| 426 | .b(c_2[52]), .cout(co[53]), .sum(sum[53]), .d(s_1[53]), |
---|
| 427 | .carry(cout[53])); |
---|
| 428 | mul_csa42 sc3_52_ ( .c(s_2[52]), .cin(co[51]), .a(c_1[51]), |
---|
| 429 | .b(c_2[51]), .cout(co[52]), .sum(sum[52]), .d(s_1[52]), |
---|
| 430 | .carry(cout[52])); |
---|
| 431 | mul_csa42 sc3_51_ ( .c(s_2[51]), .cin(co[50]), .a(c_1[50]), |
---|
| 432 | .b(c_2[50]), .cout(co[51]), .sum(sum[51]), .d(s_1[51]), |
---|
| 433 | .carry(cout[51])); |
---|
| 434 | mul_csa42 sc3_50_ ( .c(s_2[50]), .cin(co[49]), .a(c_1[49]), |
---|
| 435 | .b(c_2[49]), .cout(co[50]), .sum(sum[50]), .d(s_1[50]), |
---|
| 436 | .carry(cout[50])); |
---|
| 437 | mul_csa42 sc3_49_ ( .c(s_2[49]), .cin(co[48]), .a(c_1[48]), |
---|
| 438 | .b(c_2[48]), .cout(co[49]), .sum(sum[49]), .d(s_1[49]), |
---|
| 439 | .carry(cout[49])); |
---|
| 440 | mul_csa42 sc3_48_ ( .c(s_2[48]), .cin(co[47]), .a(c_1[47]), |
---|
| 441 | .b(c_2[47]), .cout(co[48]), .sum(sum[48]), .d(s_1[48]), |
---|
| 442 | .carry(cout[48])); |
---|
| 443 | mul_csa42 sc3_47_ ( .c(s_2[47]), .cin(co[46]), .a(c_1[46]), |
---|
| 444 | .b(c_2[46]), .cout(co[47]), .sum(sum[47]), .d(s_1[47]), |
---|
| 445 | .carry(cout[47])); |
---|
| 446 | mul_csa42 sc3_46_ ( .c(s_2[46]), .cin(co[45]), .a(c_1[45]), |
---|
| 447 | .b(c_2[45]), .cout(co[46]), .sum(sum[46]), .d(s_1[46]), |
---|
| 448 | .carry(cout[46])); |
---|
| 449 | mul_csa42 sc3_45_ ( .c(s_2[45]), .cin(co[44]), .a(c_1[44]), |
---|
| 450 | .b(c_2[44]), .cout(co[45]), .sum(sum[45]), .d(s_1[45]), |
---|
| 451 | .carry(cout[45])); |
---|
| 452 | mul_csa42 sc3_44_ ( .c(s_2[44]), .cin(co[43]), .a(c_1[43]), |
---|
| 453 | .b(c_2[43]), .cout(co[44]), .sum(sum[44]), .d(s_1[44]), |
---|
| 454 | .carry(cout[44])); |
---|
| 455 | mul_csa42 sc3_43_ ( .c(s_2[43]), .cin(co[42]), .a(c_1[42]), |
---|
| 456 | .b(c_2[42]), .cout(co[43]), .sum(sum[43]), .d(s_1[43]), |
---|
| 457 | .carry(cout[43])); |
---|
| 458 | mul_csa42 sc3_42_ ( .c(s_2[42]), .cin(co[41]), .a(c_1[41]), |
---|
| 459 | .b(c_2[41]), .cout(co[42]), .sum(sum[42]), .d(s_1[42]), |
---|
| 460 | .carry(cout[42])); |
---|
| 461 | mul_csa42 sc3_41_ ( .c(s_2[41]), .cin(co[40]), .a(c_1[40]), |
---|
| 462 | .b(c_2[40]), .cout(co[41]), .sum(sum[41]), .d(s_1[41]), |
---|
| 463 | .carry(cout[41])); |
---|
| 464 | mul_csa42 sc3_40_ ( .c(s_2[40]), .cin(co[39]), .a(c_1[39]), |
---|
| 465 | .b(c_2[39]), .cout(co[40]), .sum(sum[40]), .d(s_1[40]), |
---|
| 466 | .carry(cout[40])); |
---|
| 467 | mul_csa42 sc3_39_ ( .c(s_2[39]), .cin(co[38]), .a(c_1[38]), |
---|
| 468 | .b(c_2[38]), .cout(co[39]), .sum(sum[39]), .d(s_1[39]), |
---|
| 469 | .carry(cout[39])); |
---|
| 470 | mul_csa42 sc3_38_ ( .c(s_2[38]), .cin(co[37]), .a(c_1[37]), |
---|
| 471 | .b(c_2[37]), .cout(co[38]), .sum(sum[38]), .d(s_1[38]), |
---|
| 472 | .carry(cout[38])); |
---|
| 473 | mul_csa42 sc3_37_ ( .c(s_2[37]), .cin(co[36]), .a(c_1[36]), |
---|
| 474 | .b(c_2[36]), .cout(co[37]), .sum(sum[37]), .d(s_1[37]), |
---|
| 475 | .carry(cout[37])); |
---|
| 476 | mul_csa42 sc3_36_ ( .c(s_2[36]), .cin(co[35]), .a(c_1[35]), |
---|
| 477 | .b(c_2[35]), .cout(co[36]), .sum(sum[36]), .d(s_1[36]), |
---|
| 478 | .carry(cout[36])); |
---|
| 479 | mul_csa42 sc3_35_ ( .c(s_2[35]), .cin(co[34]), .a(c_1[34]), |
---|
| 480 | .b(c_2[34]), .cout(co[35]), .sum(sum[35]), .d(s_1[35]), |
---|
| 481 | .carry(cout[35])); |
---|
| 482 | mul_csa42 sc3_34_ ( .c(s_2[34]), .cin(co[33]), .a(c_1[33]), |
---|
| 483 | .b(c_2[33]), .cout(co[34]), .sum(sum[34]), .d(s_1[34]), |
---|
| 484 | .carry(cout[34])); |
---|
| 485 | mul_csa42 sc3_33_ ( .c(s_2[33]), .cin(co[32]), .a(c_1[32]), |
---|
| 486 | .b(c_2[32]), .cout(co[33]), .sum(sum[33]), .d(s_1[33]), |
---|
| 487 | .carry(cout[33])); |
---|
| 488 | mul_csa42 sc3_32_ ( .c(s_2[32]), .cin(co[31]), .a(c_1[31]), |
---|
| 489 | .b(c_2[31]), .cout(co[32]), .sum(sum[32]), .d(s_1[32]), |
---|
| 490 | .carry(cout[32])); |
---|
| 491 | mul_csa42 sc3_31_ ( .c(s_2[31]), .cin(co[30]), .a(c_1[30]), |
---|
| 492 | .b(c_2[30]), .cout(co[31]), .sum(sum[31]), .d(s_1[31]), |
---|
| 493 | .carry(cout[31])); |
---|
| 494 | mul_csa42 sc3_30_ ( .c(s_2[30]), .cin(co[29]), .a(c_1[29]), |
---|
| 495 | .b(c_2[29]), .cout(co[30]), .sum(sum[30]), .d(s_1[30]), |
---|
| 496 | .carry(cout[30])); |
---|
| 497 | mul_csa42 sc3_29_ ( .c(s_2[29]), .cin(co[28]), .a(c_1[28]), |
---|
| 498 | .b(c_2[28]), .cout(co[29]), .sum(sum[29]), .d(s_1[29]), |
---|
| 499 | .carry(cout[29])); |
---|
| 500 | mul_csa42 sc3_28_ ( .c(s_2[28]), .cin(co[27]), .a(c_1[27]), |
---|
| 501 | .b(c_2[27]), .cout(co[28]), .sum(sum[28]), .d(s_1[28]), |
---|
| 502 | .carry(cout[28])); |
---|
| 503 | mul_csa42 sc3_27_ ( .c(s_2[27]), .cin(co[26]), .a(c_1[26]), |
---|
| 504 | .b(c_2[26]), .cout(co[27]), .sum(sum[27]), .d(s_1[27]), |
---|
| 505 | .carry(cout[27])); |
---|
| 506 | mul_csa42 sc3_26_ ( .c(s_2[26]), .cin(co[25]), .a(c_1[25]), |
---|
| 507 | .b(c_2[25]), .cout(co[26]), .sum(sum[26]), .d(s_1[26]), |
---|
| 508 | .carry(cout[26])); |
---|
| 509 | mul_csa42 sc3_25_ ( .c(s_2[25]), .cin(co[24]), .a(c_1[24]), |
---|
| 510 | .b(c_2[24]), .cout(co[25]), .sum(sum[25]), .d(s_1[25]), |
---|
| 511 | .carry(cout[25])); |
---|
| 512 | mul_csa42 sc3_24_ ( .c(s_2[24]), .cin(co[23]), .a(c_1[23]), |
---|
| 513 | .b(c_2[23]), .cout(co[24]), .sum(sum[24]), .d(s_1[24]), |
---|
| 514 | .carry(cout[24])); |
---|
| 515 | mul_csa42 sc3_23_ ( .c(s_2[23]), .cin(co[22]), .a(c_1[22]), |
---|
| 516 | .b(c_2[22]), .cout(co[23]), .sum(sum[23]), .d(s_1[23]), |
---|
| 517 | .carry(cout[23])); |
---|
| 518 | mul_csa42 sc3_22_ ( .c(s_2[22]), .cin(co[21]), .a(c_1[21]), |
---|
| 519 | .b(c_2[21]), .cout(co[22]), .sum(sum[22]), .d(s_1[22]), |
---|
| 520 | .carry(cout[22])); |
---|
| 521 | mul_csa42 sc3_21_ ( .c(s_2[21]), .cin(co[20]), .a(c_1[20]), |
---|
| 522 | .b(c_2[20]), .cout(co[21]), .sum(sum[21]), .d(s_1[21]), |
---|
| 523 | .carry(cout[21])); |
---|
| 524 | mul_csa42 sc3_20_ ( .c(s_2[20]), .cin(co[19]), .a(c_1[19]), |
---|
| 525 | .b(c_2[19]), .cout(co[20]), .sum(sum[20]), .d(s_1[20]), |
---|
| 526 | .carry(cout[20])); |
---|
| 527 | mul_csa42 sc3_19_ ( .c(s_2[19]), .cin(co[18]), .a(c_1[18]), |
---|
| 528 | .b(c_2[18]), .cout(co[19]), .sum(sum[19]), .d(s_1[19]), |
---|
| 529 | .carry(cout[19])); |
---|
| 530 | mul_csa42 sc3_18_ ( .c(s_2[18]), .cin(co[17]), .a(c_1[17]), |
---|
| 531 | .b(c_2[17]), .cout(co[18]), .sum(sum[18]), .d(s_1[18]), |
---|
| 532 | .carry(cout[18])); |
---|
| 533 | mul_csa42 sc3_17_ ( .c(s_2[17]), .cin(co[16]), .a(c_1[16]), |
---|
| 534 | .b(c_2[16]), .cout(co[17]), .sum(sum[17]), .d(s_1[17]), |
---|
| 535 | .carry(cout[17])); |
---|
| 536 | mul_csa42 sc3_16_ ( .c(s_2[16]), .cin(co[15]), .a(c_1[15]), |
---|
| 537 | .b(c_2[15]), .cout(co[16]), .sum(sum[16]), .d(s_1[16]), |
---|
| 538 | .carry(cout[16])); |
---|
| 539 | mul_csa42 sc3_15_ ( .c(s_2[15]), .cin(co[14]), .a(c_1[14]), |
---|
| 540 | .b(c_2[14]), .cout(co[15]), .sum(sum[15]), .d(s_1[15]), |
---|
| 541 | .carry(cout[15])); |
---|
| 542 | mul_csa42 sc3_14_ ( .c(s_2[14]), .cin(co[13]), .a(c_1[13]), |
---|
| 543 | .b(c_2[13]), .cout(co[14]), .sum(sum[14]), .d(s_1[14]), |
---|
| 544 | .carry(cout[14])); |
---|
| 545 | mul_csa42 sc3_13_ ( .c(s_2[13]), .cin(co[12]), .a(c_1[12]), |
---|
| 546 | .b(c_2[12]), .cout(co[13]), .sum(sum[13]), .d(s_1[13]), |
---|
| 547 | .carry(cout[13])); |
---|
| 548 | mul_csa42 sc3_12_ ( .c(s_2[12]), .cin(co[11]), .a(c_1[11]), |
---|
| 549 | .b(c_2[11]), .cout(co[12]), .sum(sum[12]), .d(s_1[12]), |
---|
| 550 | .carry(cout[12])); |
---|
| 551 | mul_csa42 sc3_11_ ( .c(s_2[11]), .cin(1'b0), |
---|
| 552 | .a(c_1[10]), .b(c_2[10]), .cout(co[11]), .sum(sum[11]), |
---|
| 553 | .d(s_1[11]), .carry(cout[11])); |
---|
| 554 | mul_csa32 sc2_2_70_ ( .c(c1[63]), .b(c2[57]), .a(s2[58]), |
---|
| 555 | .cout(c_2[70]), .sum(s_2[70])); |
---|
| 556 | mul_csa32 sc2_2_69_ ( .c(c1[62]), .b(c2[56]), .a(s2[57]), |
---|
| 557 | .cout(c_2[69]), .sum(s_2[69])); |
---|
| 558 | mul_csa32 sc2_2_68_ ( .c(c1[61]), .b(c2[55]), .a(s2[56]), |
---|
| 559 | .cout(c_2[68]), .sum(s_2[68])); |
---|
| 560 | mul_csa32 sc2_2_67_ ( .c(c1[60]), .b(c2[54]), .a(s2[55]), |
---|
| 561 | .cout(c_2[67]), .sum(s_2[67])); |
---|
| 562 | mul_csa32 sc2_2_66_ ( .c(c1[59]), .b(c2[53]), .a(s2[54]), |
---|
| 563 | .cout(c_2[66]), .sum(s_2[66])); |
---|
| 564 | mul_csa32 sc2_2_65_ ( .c(c1[58]), .b(c2[52]), .a(s2[53]), |
---|
| 565 | .cout(c_2[65]), .sum(s_2[65])); |
---|
| 566 | mul_csa32 sc2_2_64_ ( .c(c1[57]), .b(c2[51]), .a(s2[52]), |
---|
| 567 | .cout(c_2[64]), .sum(s_2[64])); |
---|
| 568 | mul_csa32 sc2_2_63_ ( .c(c1[56]), .b(c2[50]), .a(s2[51]), |
---|
| 569 | .cout(c_2[63]), .sum(s_2[63])); |
---|
| 570 | mul_csa32 sc2_2_62_ ( .c(c1[55]), .b(c2[49]), .a(s2[50]), |
---|
| 571 | .cout(c_2[62]), .sum(s_2[62])); |
---|
| 572 | mul_csa32 sc2_2_61_ ( .c(c1[54]), .b(c2[48]), .a(s2[49]), |
---|
| 573 | .cout(c_2[61]), .sum(s_2[61])); |
---|
| 574 | mul_csa32 sc2_2_60_ ( .c(c1[53]), .b(c2[47]), .a(s2[48]), |
---|
| 575 | .cout(c_2[60]), .sum(s_2[60])); |
---|
| 576 | mul_csa32 sc2_2_59_ ( .c(c1[52]), .b(c2[46]), .a(s2[47]), |
---|
| 577 | .cout(c_2[59]), .sum(s_2[59])); |
---|
| 578 | mul_csa32 sc2_2_58_ ( .c(c1[51]), .b(c2[45]), .a(s2[46]), |
---|
| 579 | .cout(c_2[58]), .sum(s_2[58])); |
---|
| 580 | mul_csa32 sc2_2_57_ ( .c(c1[50]), .b(c2[44]), .a(s2[45]), |
---|
| 581 | .cout(c_2[57]), .sum(s_2[57])); |
---|
| 582 | mul_csa32 sc2_2_56_ ( .c(c1[49]), .b(c2[43]), .a(s2[44]), |
---|
| 583 | .cout(c_2[56]), .sum(s_2[56])); |
---|
| 584 | mul_csa32 sc2_2_55_ ( .c(c1[48]), .b(c2[42]), .a(s2[43]), |
---|
| 585 | .cout(c_2[55]), .sum(s_2[55])); |
---|
| 586 | mul_csa32 sc2_2_54_ ( .c(c1[47]), .b(c2[41]), .a(s2[42]), |
---|
| 587 | .cout(c_2[54]), .sum(s_2[54])); |
---|
| 588 | mul_csa32 sc2_2_53_ ( .c(c1[46]), .b(c2[40]), .a(s2[41]), |
---|
| 589 | .cout(c_2[53]), .sum(s_2[53])); |
---|
| 590 | mul_csa32 sc2_2_52_ ( .c(c1[45]), .b(c2[39]), .a(s2[40]), |
---|
| 591 | .cout(c_2[52]), .sum(s_2[52])); |
---|
| 592 | mul_csa32 sc2_2_51_ ( .c(c1[44]), .b(c2[38]), .a(s2[39]), |
---|
| 593 | .cout(c_2[51]), .sum(s_2[51])); |
---|
| 594 | mul_csa32 sc2_2_50_ ( .c(c1[43]), .b(c2[37]), .a(s2[38]), |
---|
| 595 | .cout(c_2[50]), .sum(s_2[50])); |
---|
| 596 | mul_csa32 sc2_2_49_ ( .c(c1[42]), .b(c2[36]), .a(s2[37]), |
---|
| 597 | .cout(c_2[49]), .sum(s_2[49])); |
---|
| 598 | mul_csa32 sc2_2_48_ ( .c(c1[41]), .b(c2[35]), .a(s2[36]), |
---|
| 599 | .cout(c_2[48]), .sum(s_2[48])); |
---|
| 600 | mul_csa32 sc2_2_47_ ( .c(c1[40]), .b(c2[34]), .a(s2[35]), |
---|
| 601 | .cout(c_2[47]), .sum(s_2[47])); |
---|
| 602 | mul_csa32 sc2_2_46_ ( .c(c1[39]), .b(c2[33]), .a(s2[34]), |
---|
| 603 | .cout(c_2[46]), .sum(s_2[46])); |
---|
| 604 | mul_csa32 sc2_2_45_ ( .c(c1[38]), .b(c2[32]), .a(s2[33]), |
---|
| 605 | .cout(c_2[45]), .sum(s_2[45])); |
---|
| 606 | mul_csa32 sc2_2_44_ ( .c(c1[37]), .b(c2[31]), .a(s2[32]), |
---|
| 607 | .cout(c_2[44]), .sum(s_2[44])); |
---|
| 608 | mul_csa32 sc2_2_43_ ( .c(c1[36]), .b(c2[30]), .a(s2[31]), |
---|
| 609 | .cout(c_2[43]), .sum(s_2[43])); |
---|
| 610 | mul_csa32 sc2_2_42_ ( .c(c1[35]), .b(c2[29]), .a(s2[30]), |
---|
| 611 | .cout(c_2[42]), .sum(s_2[42])); |
---|
| 612 | mul_csa32 sc2_2_41_ ( .c(c1[34]), .b(c2[28]), .a(s2[29]), |
---|
| 613 | .cout(c_2[41]), .sum(s_2[41])); |
---|
| 614 | mul_csa32 sc2_2_40_ ( .c(c1[33]), .b(c2[27]), .a(s2[28]), |
---|
| 615 | .cout(c_2[40]), .sum(s_2[40])); |
---|
| 616 | mul_csa32 sc2_2_39_ ( .c(c1[32]), .b(c2[26]), .a(s2[27]), |
---|
| 617 | .cout(c_2[39]), .sum(s_2[39])); |
---|
| 618 | mul_csa32 sc2_2_38_ ( .c(c1[31]), .b(c2[25]), .a(s2[26]), |
---|
| 619 | .cout(c_2[38]), .sum(s_2[38])); |
---|
| 620 | mul_csa32 sc2_2_37_ ( .c(c1[30]), .b(c2[24]), .a(s2[25]), |
---|
| 621 | .cout(c_2[37]), .sum(s_2[37])); |
---|
| 622 | mul_csa32 sc2_2_36_ ( .c(c1[29]), .b(c2[23]), .a(s2[24]), |
---|
| 623 | .cout(c_2[36]), .sum(s_2[36])); |
---|
| 624 | mul_csa32 sc2_2_35_ ( .c(c1[28]), .b(c2[22]), .a(s2[23]), |
---|
| 625 | .cout(c_2[35]), .sum(s_2[35])); |
---|
| 626 | mul_csa32 sc2_2_34_ ( .c(c1[27]), .b(c2[21]), .a(s2[22]), |
---|
| 627 | .cout(c_2[34]), .sum(s_2[34])); |
---|
| 628 | mul_csa32 sc2_2_33_ ( .c(c1[26]), .b(c2[20]), .a(s2[21]), |
---|
| 629 | .cout(c_2[33]), .sum(s_2[33])); |
---|
| 630 | mul_csa32 sc2_2_32_ ( .c(c1[25]), .b(c2[19]), .a(s2[20]), |
---|
| 631 | .cout(c_2[32]), .sum(s_2[32])); |
---|
| 632 | mul_csa32 sc2_2_31_ ( .c(c1[24]), .b(c2[18]), .a(s2[19]), |
---|
| 633 | .cout(c_2[31]), .sum(s_2[31])); |
---|
| 634 | mul_csa32 sc2_2_30_ ( .c(c1[23]), .b(c2[17]), .a(s2[18]), |
---|
| 635 | .cout(c_2[30]), .sum(s_2[30])); |
---|
| 636 | mul_csa32 sc2_2_29_ ( .c(c1[22]), .b(c2[16]), .a(s2[17]), |
---|
| 637 | .cout(c_2[29]), .sum(s_2[29])); |
---|
| 638 | mul_csa32 sc2_2_28_ ( .c(c1[21]), .b(c2[15]), .a(s2[16]), |
---|
| 639 | .cout(c_2[28]), .sum(s_2[28])); |
---|
| 640 | mul_csa32 sc2_2_27_ ( .c(c1[20]), .b(c2[14]), .a(s2[15]), |
---|
| 641 | .cout(c_2[27]), .sum(s_2[27])); |
---|
| 642 | mul_csa32 sc2_2_26_ ( .c(c1[19]), .b(c2[13]), .a(s2[14]), |
---|
| 643 | .cout(c_2[26]), .sum(s_2[26])); |
---|
| 644 | mul_csa32 sc2_2_25_ ( .c(c1[18]), .b(c2[12]), .a(s2[13]), |
---|
| 645 | .cout(c_2[25]), .sum(s_2[25])); |
---|
| 646 | mul_csa32 sc2_2_24_ ( .c(c1[17]), .b(c2[11]), .a(s2[12]), |
---|
| 647 | .cout(c_2[24]), .sum(s_2[24])); |
---|
| 648 | mul_csa32 sc2_2_23_ ( .c(c1[16]), .b(c2[10]), .a(s2[11]), |
---|
| 649 | .cout(c_2[23]), .sum(s_2[23])); |
---|
| 650 | mul_csa32 sc2_2_22_ ( .c(c1[15]), .b(c2[9]), .a(s2[10]), |
---|
| 651 | .cout(c_2[22]), .sum(s_2[22])); |
---|
| 652 | mul_csa32 sc2_2_21_ ( .c(c1[14]), .b(c2[8]), .a(s2[9]), |
---|
| 653 | .cout(c_2[21]), .sum(s_2[21])); |
---|
| 654 | mul_csa32 sc2_2_20_ ( .c(c1[13]), .b(c2[7]), .a(s2[8]), |
---|
| 655 | .cout(c_2[20]), .sum(s_2[20])); |
---|
| 656 | mul_csa32 sc2_2_19_ ( .c(c1[12]), .b(c2[6]), .a(s2[7]), |
---|
| 657 | .cout(c_2[19]), .sum(s_2[19])); |
---|
| 658 | mul_csa32 sc2_2_18_ ( .c(c1[11]), .b(c2[5]), .a(s2[6]), |
---|
| 659 | .cout(c_2[18]), .sum(s_2[18])); |
---|
| 660 | mul_csa32 sc2_2_17_ ( .c(c1[10]), .b(c2[4]), .a(s2[5]), |
---|
| 661 | .cout(c_2[17]), .sum(s_2[17])); |
---|
| 662 | mul_csa32 sc2_2_16_ ( .c(c1[9]), .b(c2[3]), .a(s2[4]), |
---|
| 663 | .cout(c_2[16]), .sum(s_2[16])); |
---|
| 664 | mul_csa32 sc2_2_15_ ( .c(c1[8]), .b(c2[2]), .a(s2[3]), |
---|
| 665 | .cout(c_2[15]), .sum(s_2[15])); |
---|
| 666 | mul_csa32 sc2_2_14_ ( .c(c1[7]), .b(c2[1]), .a(s2[2]), |
---|
| 667 | .cout(c_2[14]), .sum(s_2[14])); |
---|
| 668 | mul_csa32 sc2_2_13_ ( .c(c1[6]), .b(s1[7]), .a(s2[1]), |
---|
| 669 | .cout(c_2[13]), .sum(s_2[13])); |
---|
| 670 | mul_csa32 sc2_2_12_ ( .c(c1[5]), .b(s1[6]), .a(s2[0]), |
---|
| 671 | .cout(c_2[12]), .sum(s_2[12])); |
---|
| 672 | mul_csa32 sc2_2_11_ ( .c(c1[4]), .b(s1[5]), .a(b5n[1]), |
---|
| 673 | .cout(c_2[11]), .sum(s_2[11])); |
---|
| 674 | mul_csa32 sc2_2_10_ ( .c(c1[3]), .b(s1[4]), .a(b5n[0]), |
---|
| 675 | .cout(c_2[10]), .sum(s_2[10])); |
---|
| 676 | mul_csa32 sc2_2_76_ ( .c(1'b1), .b(c2[63]), .a(s2[64]), |
---|
| 677 | .cout(c_2[76]), .sum(s_2[76])); |
---|
| 678 | mul_csa32 sc2_2_77_ ( .c(c_2[76]), .b(c2[64]), .a(s2[65]), |
---|
| 679 | .cout(cout[77]), .sum(sum[77])); |
---|
| 680 | mul_csa32 sc2_1_9_ ( .c(s1[3]), .b(c0[8]), .a(s0[9]), .cout(c_1[9]), |
---|
| 681 | .sum(s_1[9])); |
---|
| 682 | mul_csa32 sc2_1_8_ ( .c(s1[2]), .b(c0[7]), .a(s0[8]), .cout(c_1[8]), |
---|
| 683 | .sum(s_1[8])); |
---|
| 684 | mul_csa32 sc2_1_3_ ( .c(c_1[2]), .b(c0[2]), .a(s0[3]), |
---|
| 685 | .cout(c_1[3]), .sum(sum[3])); |
---|
| 686 | mul_csa32 sc3_10_ ( .c(s_2[10]), .b(s_1[10]), .a(c_1[9]), |
---|
| 687 | .cout(cout[10]), .sum(sum[10])); |
---|
| 688 | mul_csa32 sc3_9_ ( .c(c1[2]), .sum(sum[9]), .cout(cout[9]), |
---|
| 689 | .a(c_1[8]), .b(s_1[9])); |
---|
| 690 | mul_csa32 sc3_8_ ( .c(c1[1]), .sum(sum[8]), .cout(cout[8]), |
---|
| 691 | .a(c_1[7]), .b(s_1[8])); |
---|
| 692 | mul_csa32 sc2_2_71_ ( .c(c1[64]), .b(c2[58]), .a(s2[59]), |
---|
| 693 | .cout(c_2[71]), .sum(s_2[71])); |
---|
| 694 | mul_csa32 sc2_2_75_ ( .c(c1[68]), .b(c2[62]), .a(s2[63]), |
---|
| 695 | .cout(c_2[75]), .sum(s_2[75])); |
---|
| 696 | mul_csa32 sc2_2_74_ ( .c(c1[67]), .b(c2[61]), .a(s2[62]), |
---|
| 697 | .cout(c_2[74]), .sum(s_2[74])); |
---|
| 698 | mul_csa32 sc2_2_73_ ( .c(c1[66]), .b(c2[60]), .a(s2[61]), |
---|
| 699 | .cout(c_2[73]), .sum(s_2[73])); |
---|
| 700 | mul_csa32 sc2_2_72_ ( .c(c1[65]), .b(c2[59]), .a(s2[60]), |
---|
| 701 | .cout(c_2[72]), .sum(s_2[72])); |
---|
| 702 | mul_csa32 sc2_1_69_ ( .c(s1[63]), .sum(s_1[69]), .cout(c_1[69]), |
---|
| 703 | .a(s0[69]), .b(c0[68])); |
---|
| 704 | mul_csa32 sc2_1_68_ ( .c(s1[62]), .sum(s_1[68]), .cout(c_1[68]), |
---|
| 705 | .a(s0[68]), .b(c0[67])); |
---|
| 706 | mul_csa32 sc2_1_67_ ( .c(s1[61]), .sum(s_1[67]), .cout(c_1[67]), |
---|
| 707 | .a(s0[67]), .b(c0[66])); |
---|
| 708 | mul_csa32 sc2_1_66_ ( .c(s1[60]), .sum(s_1[66]), .cout(c_1[66]), |
---|
| 709 | .a(s0[66]), .b(c0[65])); |
---|
| 710 | mul_csa32 sc2_1_65_ ( .c(s1[59]), .sum(s_1[65]), .cout(c_1[65]), |
---|
| 711 | .a(s0[65]), .b(c0[64])); |
---|
| 712 | mul_csa32 sc2_1_64_ ( .c(s1[58]), .sum(s_1[64]), .cout(c_1[64]), |
---|
| 713 | .a(s0[64]), .b(c0[63])); |
---|
| 714 | mul_csa32 sc2_1_63_ ( .c(s1[57]), .sum(s_1[63]), .cout(c_1[63]), |
---|
| 715 | .a(s0[63]), .b(c0[62])); |
---|
| 716 | mul_csa32 sc2_1_62_ ( .c(s1[56]), .sum(s_1[62]), .cout(c_1[62]), |
---|
| 717 | .a(s0[62]), .b(c0[61])); |
---|
| 718 | mul_csa32 sc2_1_61_ ( .c(s1[55]), .sum(s_1[61]), .cout(c_1[61]), |
---|
| 719 | .a(s0[61]), .b(c0[60])); |
---|
| 720 | mul_csa32 sc2_1_60_ ( .c(s1[54]), .sum(s_1[60]), .cout(c_1[60]), |
---|
| 721 | .a(s0[60]), .b(c0[59])); |
---|
| 722 | mul_csa32 sc2_1_59_ ( .c(s1[53]), .sum(s_1[59]), .cout(c_1[59]), |
---|
| 723 | .a(s0[59]), .b(c0[58])); |
---|
| 724 | mul_csa32 sc2_1_58_ ( .c(s1[52]), .sum(s_1[58]), .cout(c_1[58]), |
---|
| 725 | .a(s0[58]), .b(c0[57])); |
---|
| 726 | mul_csa32 sc2_1_57_ ( .c(s1[51]), .sum(s_1[57]), .cout(c_1[57]), |
---|
| 727 | .a(s0[57]), .b(c0[56])); |
---|
| 728 | mul_csa32 sc2_1_56_ ( .c(s1[50]), .sum(s_1[56]), .cout(c_1[56]), |
---|
| 729 | .a(s0[56]), .b(c0[55])); |
---|
| 730 | mul_csa32 sc2_1_55_ ( .c(s1[49]), .sum(s_1[55]), .cout(c_1[55]), |
---|
| 731 | .a(s0[55]), .b(c0[54])); |
---|
| 732 | mul_csa32 sc2_1_54_ ( .c(s1[48]), .sum(s_1[54]), .cout(c_1[54]), |
---|
| 733 | .a(s0[54]), .b(c0[53])); |
---|
| 734 | mul_csa32 sc2_1_53_ ( .c(s1[47]), .sum(s_1[53]), .cout(c_1[53]), |
---|
| 735 | .a(s0[53]), .b(c0[52])); |
---|
| 736 | mul_csa32 sc2_1_52_ ( .c(s1[46]), .sum(s_1[52]), .cout(c_1[52]), |
---|
| 737 | .a(s0[52]), .b(c0[51])); |
---|
| 738 | mul_csa32 sc2_1_51_ ( .c(s1[45]), .sum(s_1[51]), .cout(c_1[51]), |
---|
| 739 | .a(s0[51]), .b(c0[50])); |
---|
| 740 | mul_csa32 sc2_1_50_ ( .c(s1[44]), .sum(s_1[50]), .cout(c_1[50]), |
---|
| 741 | .a(s0[50]), .b(c0[49])); |
---|
| 742 | mul_csa32 sc2_1_49_ ( .c(s1[43]), .sum(s_1[49]), .cout(c_1[49]), |
---|
| 743 | .a(s0[49]), .b(c0[48])); |
---|
| 744 | mul_csa32 sc2_1_48_ ( .c(s1[42]), .sum(s_1[48]), .cout(c_1[48]), |
---|
| 745 | .a(s0[48]), .b(c0[47])); |
---|
| 746 | mul_csa32 sc2_1_47_ ( .c(s1[41]), .sum(s_1[47]), .cout(c_1[47]), |
---|
| 747 | .a(s0[47]), .b(c0[46])); |
---|
| 748 | mul_csa32 sc2_1_46_ ( .c(s1[40]), .sum(s_1[46]), .cout(c_1[46]), |
---|
| 749 | .a(s0[46]), .b(c0[45])); |
---|
| 750 | mul_csa32 sc2_1_45_ ( .c(s1[39]), .sum(s_1[45]), .cout(c_1[45]), |
---|
| 751 | .a(s0[45]), .b(c0[44])); |
---|
| 752 | mul_csa32 sc2_1_44_ ( .c(s1[38]), .sum(s_1[44]), .cout(c_1[44]), |
---|
| 753 | .a(s0[44]), .b(c0[43])); |
---|
| 754 | mul_csa32 sc2_1_43_ ( .c(s1[37]), .sum(s_1[43]), .cout(c_1[43]), |
---|
| 755 | .a(s0[43]), .b(c0[42])); |
---|
| 756 | mul_csa32 sc2_1_42_ ( .c(s1[36]), .sum(s_1[42]), .cout(c_1[42]), |
---|
| 757 | .a(s0[42]), .b(c0[41])); |
---|
| 758 | mul_csa32 sc2_1_41_ ( .c(s1[35]), .sum(s_1[41]), .cout(c_1[41]), |
---|
| 759 | .a(s0[41]), .b(c0[40])); |
---|
| 760 | mul_csa32 sc2_1_40_ ( .c(s1[34]), .sum(s_1[40]), .cout(c_1[40]), |
---|
| 761 | .a(s0[40]), .b(c0[39])); |
---|
| 762 | mul_csa32 sc2_1_39_ ( .c(s1[33]), .sum(s_1[39]), .cout(c_1[39]), |
---|
| 763 | .a(s0[39]), .b(c0[38])); |
---|
| 764 | mul_csa32 sc2_1_38_ ( .c(s1[32]), .sum(s_1[38]), .cout(c_1[38]), |
---|
| 765 | .a(s0[38]), .b(c0[37])); |
---|
| 766 | mul_csa32 sc2_1_37_ ( .c(s1[31]), .sum(s_1[37]), .cout(c_1[37]), |
---|
| 767 | .a(s0[37]), .b(c0[36])); |
---|
| 768 | mul_csa32 sc2_1_36_ ( .c(s1[30]), .sum(s_1[36]), .cout(c_1[36]), |
---|
| 769 | .a(s0[36]), .b(c0[35])); |
---|
| 770 | mul_csa32 sc2_1_35_ ( .c(s1[29]), .sum(s_1[35]), .cout(c_1[35]), |
---|
| 771 | .a(s0[35]), .b(c0[34])); |
---|
| 772 | mul_csa32 sc2_1_34_ ( .c(s1[28]), .sum(s_1[34]), .cout(c_1[34]), |
---|
| 773 | .a(s0[34]), .b(c0[33])); |
---|
| 774 | mul_csa32 sc2_1_33_ ( .c(s1[27]), .sum(s_1[33]), .cout(c_1[33]), |
---|
| 775 | .a(s0[33]), .b(c0[32])); |
---|
| 776 | mul_csa32 sc2_1_32_ ( .c(s1[26]), .sum(s_1[32]), .cout(c_1[32]), |
---|
| 777 | .a(s0[32]), .b(c0[31])); |
---|
| 778 | mul_csa32 sc2_1_31_ ( .c(s1[25]), .sum(s_1[31]), .cout(c_1[31]), |
---|
| 779 | .a(s0[31]), .b(c0[30])); |
---|
| 780 | mul_csa32 sc2_1_30_ ( .c(s1[24]), .sum(s_1[30]), .cout(c_1[30]), |
---|
| 781 | .a(s0[30]), .b(c0[29])); |
---|
| 782 | mul_csa32 sc2_1_29_ ( .c(s1[23]), .sum(s_1[29]), .cout(c_1[29]), |
---|
| 783 | .a(s0[29]), .b(c0[28])); |
---|
| 784 | mul_csa32 sc2_1_28_ ( .c(s1[22]), .sum(s_1[28]), .cout(c_1[28]), |
---|
| 785 | .a(s0[28]), .b(c0[27])); |
---|
| 786 | mul_csa32 sc2_1_27_ ( .c(s1[21]), .sum(s_1[27]), .cout(c_1[27]), |
---|
| 787 | .a(s0[27]), .b(c0[26])); |
---|
| 788 | mul_csa32 sc2_1_26_ ( .c(s1[20]), .sum(s_1[26]), .cout(c_1[26]), |
---|
| 789 | .a(s0[26]), .b(c0[25])); |
---|
| 790 | mul_csa32 sc2_1_25_ ( .c(s1[19]), .sum(s_1[25]), .cout(c_1[25]), |
---|
| 791 | .a(s0[25]), .b(c0[24])); |
---|
| 792 | mul_csa32 sc2_1_24_ ( .c(s1[18]), .sum(s_1[24]), .cout(c_1[24]), |
---|
| 793 | .a(s0[24]), .b(c0[23])); |
---|
| 794 | mul_csa32 sc2_1_23_ ( .c(s1[17]), .sum(s_1[23]), .cout(c_1[23]), |
---|
| 795 | .a(s0[23]), .b(c0[22])); |
---|
| 796 | mul_csa32 sc2_1_22_ ( .c(s1[16]), .sum(s_1[22]), .cout(c_1[22]), |
---|
| 797 | .a(s0[22]), .b(c0[21])); |
---|
| 798 | mul_csa32 sc2_1_21_ ( .c(s1[15]), .sum(s_1[21]), .cout(c_1[21]), |
---|
| 799 | .a(s0[21]), .b(c0[20])); |
---|
| 800 | mul_csa32 sc2_1_20_ ( .c(s1[14]), .sum(s_1[20]), .cout(c_1[20]), |
---|
| 801 | .a(s0[20]), .b(c0[19])); |
---|
| 802 | mul_csa32 sc2_1_19_ ( .c(s1[13]), .sum(s_1[19]), .cout(c_1[19]), |
---|
| 803 | .a(s0[19]), .b(c0[18])); |
---|
| 804 | mul_csa32 sc2_1_18_ ( .c(s1[12]), .sum(s_1[18]), .cout(c_1[18]), |
---|
| 805 | .a(s0[18]), .b(c0[17])); |
---|
| 806 | mul_csa32 sc2_1_17_ ( .c(s1[11]), .sum(s_1[17]), .cout(c_1[17]), |
---|
| 807 | .a(s0[17]), .b(c0[16])); |
---|
| 808 | mul_csa32 sc2_1_16_ ( .c(s1[10]), .sum(s_1[16]), .cout(c_1[16]), |
---|
| 809 | .a(s0[16]), .b(c0[15])); |
---|
| 810 | mul_csa32 sc2_1_15_ ( .c(s1[9]), .sum(s_1[15]), .cout(c_1[15]), |
---|
| 811 | .a(s0[15]), .b(c0[14])); |
---|
| 812 | mul_csa32 sc2_1_14_ ( .c(s1[8]), .sum(s_1[14]), .cout(c_1[14]), |
---|
| 813 | .a(s0[14]), .b(c0[13])); |
---|
| 814 | mul_csa32 sc2_1_7_ ( .c(s1[1]), .b(c0[6]), .a(s0[7]), .cout(c_1[7]), |
---|
| 815 | .sum(s_1[7])); |
---|
| 816 | mul_csa32 sc2_1_6_ ( .c(s1[0]), .b(c0[5]), .a(s0[6]), .cout(c_1[6]), |
---|
| 817 | .sum(s_1[6])); |
---|
| 818 | mul_csa32 sc2_1_5_ ( .c(b2n[1]), .b(c0[4]), .a(s0[5]), |
---|
| 819 | .cout(c_1[5]), .sum(s_1[5])); |
---|
| 820 | mul_csa32 sc2_1_4_ ( .c(b2n[0]), .b(c0[3]), .a(s0[4]), |
---|
| 821 | .cout(c_1[4]), .sum(s_1[4])); |
---|
| 822 | mul_ha sc2_1_10_ ( .sum(s_1[10]), .cout(c_1[10]), .a(s0[10]), |
---|
| 823 | .b(c0[9])); |
---|
| 824 | mul_ha sc3_7_ ( .sum(sum[7]), .cout(cout[7]), .a(c_1[6]), |
---|
| 825 | .b(s_1[7])); |
---|
| 826 | mul_ha sc3_6_ ( .sum(sum[6]), .cout(cout[6]), .a(c_1[5]), |
---|
| 827 | .b(s_1[6])); |
---|
| 828 | mul_ha sc3_5_ ( .sum(sum[5]), .cout(cout[5]), .a(c_1[4]), |
---|
| 829 | .b(s_1[5])); |
---|
| 830 | mul_ha sc3_4_ ( .sum(sum[4]), .cout(cout[4]), .a(c_1[3]), |
---|
| 831 | .b(s_1[4])); |
---|
| 832 | mul_ha sc2_2_81_ ( .sum(sum[81]), .cout(cout[81]), .a(s2[69]), |
---|
| 833 | .b(c2[68])); |
---|
| 834 | mul_ha sc2_2_80_ ( .sum(sum[80]), .cout(cout[80]), .a(s2[68]), |
---|
| 835 | .b(c2[67])); |
---|
| 836 | mul_ha sc2_2_79_ ( .sum(sum[79]), .cout(cout[79]), .a(s2[67]), |
---|
| 837 | .b(c2[66])); |
---|
| 838 | mul_ha sc2_2_78_ ( .sum(sum[78]), .cout(cout[78]), .a(s2[66]), |
---|
| 839 | .b(c2[65])); |
---|
| 840 | mul_ha sc2_1_70_ ( .sum(s_1[70]), .cout(c_1[70]), |
---|
| 841 | .a(1'b1), .b(s1[64])); |
---|
| 842 | mul_ha sc2_1_2_ ( .sum(sum[2]), .cout(c_1[2]), .a(s0[2]), .b(c0[1])); |
---|
| 843 | mul_ha sc2_1_13_ ( .sum(s_1[13]), .cout(c_1[13]), .a(s0[13]), |
---|
| 844 | .b(c0[12])); |
---|
| 845 | mul_ha sc2_1_12_ ( .sum(s_1[12]), .cout(c_1[12]), .a(s0[12]), |
---|
| 846 | .b(c0[11])); |
---|
| 847 | mul_ha sc2_1_11_ ( .sum(s_1[11]), .cout(c_1[11]), .a(s0[11]), |
---|
| 848 | .b(c0[10])); |
---|
| 849 | mul_ppgenrow3 I2 ( .head(1'b0), .bot(bot), .b2(b8[2:0]), |
---|
| 850 | .b1(b7[2:0]), .b0(b6[2:0]), .a(a[63:0]), .sum(s2[69:0]), |
---|
| 851 | .cout(c2[68:1])); |
---|
| 852 | mul_ppgenrow3 I1 ( .head(1'b0), .bot(1'b1), |
---|
| 853 | .b2(b5[2:0]), .b1(b4[2:0]), .b0(b3[2:0]), .a(a[63:0]), |
---|
| 854 | .sum(s1[69:0]), .cout(c1[68:1])); |
---|
| 855 | mul_ppgenrow3 I0 ( .head(head), .bot(1'b1), .b2(b2[2:0]), |
---|
| 856 | .b1(b1[2:0]), .b0(b0[2:0]), .a(a[63:0]), .sum({s0[69:2], |
---|
| 857 | sum[1:0]}), .cout(c0[68:1])); |
---|
| 858 | |
---|
| 859 | endmodule // mul_array1 |
---|
| 860 | |
---|
| 861 | module mul_array2 ( pcout, pcoutx2, psum, psumx2, a0c, a0s, a1c, a1s, |
---|
| 862 | areg, bot, pc, ps, x2 ); |
---|
| 863 | |
---|
| 864 | output pcoutx2, psumx2; |
---|
| 865 | input bot, x2; |
---|
| 866 | output [98:0] psum; |
---|
| 867 | output [98:0] pcout; |
---|
| 868 | input [81:4] a1c; |
---|
| 869 | input [98:30] pc; |
---|
| 870 | input [98:31] ps; |
---|
| 871 | input [81:0] a0s; |
---|
| 872 | input [96:0] areg; |
---|
| 873 | input [81:0] a1s; |
---|
| 874 | input [81:4] a0c; |
---|
| 875 | |
---|
| 876 | // Buses in the design |
---|
| 877 | wire [81:15] s3; |
---|
| 878 | wire [81:15] c3; |
---|
| 879 | wire [96:0] ain; |
---|
| 880 | wire [67:20] co; |
---|
| 881 | wire [82:0] s1; |
---|
| 882 | wire [96:0] c2; |
---|
| 883 | wire [82:0] c1; |
---|
| 884 | wire [96:0] s2; |
---|
| 885 | wire ainx2, s1x2, c1x2; |
---|
| 886 | |
---|
| 887 | mul_mux2 sh_82_ ( .d1(areg[83]), .z(ain[82]), .d0(areg[82]), .s(x2)); |
---|
| 888 | mul_mux2 sh_68_ ( .d1(areg[69]), .z(ain[68]), .d0(areg[68]), .s(x2)); |
---|
| 889 | mul_mux2 sh_67_ ( .d1(areg[68]), .z(ain[67]), .d0(areg[67]), .s(x2)); |
---|
| 890 | mul_mux2 sh_66_ ( .d1(areg[67]), .z(ain[66]), .d0(areg[66]), .s(x2)); |
---|
| 891 | mul_mux2 sh_65_ ( .d1(areg[66]), .z(ain[65]), .d0(areg[65]), .s(x2)); |
---|
| 892 | mul_mux2 sh_64_ ( .d1(areg[65]), .z(ain[64]), .d0(areg[64]), .s(x2)); |
---|
| 893 | mul_mux2 sh_63_ ( .d1(areg[64]), .z(ain[63]), .d0(areg[63]), .s(x2)); |
---|
| 894 | mul_mux2 sh_62_ ( .d1(areg[63]), .z(ain[62]), .d0(areg[62]), .s(x2)); |
---|
| 895 | mul_mux2 sh_61_ ( .d1(areg[62]), .z(ain[61]), .d0(areg[61]), .s(x2)); |
---|
| 896 | mul_mux2 sh_60_ ( .d1(areg[61]), .z(ain[60]), .d0(areg[60]), .s(x2)); |
---|
| 897 | mul_mux2 sh_59_ ( .d1(areg[60]), .z(ain[59]), .d0(areg[59]), .s(x2)); |
---|
| 898 | mul_mux2 sh_58_ ( .d1(areg[59]), .z(ain[58]), .d0(areg[58]), .s(x2)); |
---|
| 899 | mul_mux2 sh_57_ ( .d1(areg[58]), .z(ain[57]), .d0(areg[57]), .s(x2)); |
---|
| 900 | mul_mux2 sh_56_ ( .d1(areg[57]), .z(ain[56]), .d0(areg[56]), .s(x2)); |
---|
| 901 | mul_mux2 sh_55_ ( .d1(areg[56]), .z(ain[55]), .d0(areg[55]), .s(x2)); |
---|
| 902 | mul_mux2 sh_54_ ( .d1(areg[55]), .z(ain[54]), .d0(areg[54]), .s(x2)); |
---|
| 903 | mul_mux2 sh_53_ ( .d1(areg[54]), .z(ain[53]), .d0(areg[53]), .s(x2)); |
---|
| 904 | mul_mux2 sh_52_ ( .d1(areg[53]), .z(ain[52]), .d0(areg[52]), .s(x2)); |
---|
| 905 | mul_mux2 sh_51_ ( .d1(areg[52]), .z(ain[51]), .d0(areg[51]), .s(x2)); |
---|
| 906 | mul_mux2 sh_50_ ( .d1(areg[51]), .z(ain[50]), .d0(areg[50]), .s(x2)); |
---|
| 907 | mul_mux2 sh_49_ ( .d1(areg[50]), .z(ain[49]), .d0(areg[49]), .s(x2)); |
---|
| 908 | mul_mux2 sh_48_ ( .d1(areg[49]), .z(ain[48]), .d0(areg[48]), .s(x2)); |
---|
| 909 | mul_mux2 sh_47_ ( .d1(areg[48]), .z(ain[47]), .d0(areg[47]), .s(x2)); |
---|
| 910 | mul_mux2 sh_46_ ( .d1(areg[47]), .z(ain[46]), .d0(areg[46]), .s(x2)); |
---|
| 911 | mul_mux2 sh_45_ ( .d1(areg[46]), .z(ain[45]), .d0(areg[45]), .s(x2)); |
---|
| 912 | mul_mux2 sh_44_ ( .d1(areg[45]), .z(ain[44]), .d0(areg[44]), .s(x2)); |
---|
| 913 | mul_mux2 sh_43_ ( .d1(areg[44]), .z(ain[43]), .d0(areg[43]), .s(x2)); |
---|
| 914 | mul_mux2 sh_42_ ( .d1(areg[43]), .z(ain[42]), .d0(areg[42]), .s(x2)); |
---|
| 915 | mul_mux2 sh_41_ ( .d1(areg[42]), .z(ain[41]), .d0(areg[41]), .s(x2)); |
---|
| 916 | mul_mux2 sh_40_ ( .d1(areg[41]), .z(ain[40]), .d0(areg[40]), .s(x2)); |
---|
| 917 | mul_mux2 sh_39_ ( .d1(areg[40]), .z(ain[39]), .d0(areg[39]), .s(x2)); |
---|
| 918 | mul_mux2 sh_38_ ( .d1(areg[39]), .z(ain[38]), .d0(areg[38]), .s(x2)); |
---|
| 919 | mul_mux2 sh_37_ ( .d1(areg[38]), .z(ain[37]), .d0(areg[37]), .s(x2)); |
---|
| 920 | mul_mux2 sh_36_ ( .d1(areg[37]), .z(ain[36]), .d0(areg[36]), .s(x2)); |
---|
| 921 | mul_mux2 sh_35_ ( .d1(areg[36]), .z(ain[35]), .d0(areg[35]), .s(x2)); |
---|
| 922 | mul_mux2 sh_34_ ( .d1(areg[35]), .z(ain[34]), .d0(areg[34]), .s(x2)); |
---|
| 923 | mul_mux2 sh_33_ ( .d1(areg[34]), .z(ain[33]), .d0(areg[33]), .s(x2)); |
---|
| 924 | mul_mux2 sh_32_ ( .d1(areg[33]), .z(ain[32]), .d0(areg[32]), .s(x2)); |
---|
| 925 | mul_mux2 sh_31_ ( .d1(areg[32]), .z(ain[31]), .d0(areg[31]), .s(x2)); |
---|
| 926 | mul_mux2 sh_30_ ( .d1(areg[31]), .z(ain[30]), .d0(areg[30]), .s(x2)); |
---|
| 927 | mul_mux2 sh_29_ ( .d1(areg[30]), .z(ain[29]), .d0(areg[29]), .s(x2)); |
---|
| 928 | mul_mux2 sh_28_ ( .d1(areg[29]), .z(ain[28]), .d0(areg[28]), .s(x2)); |
---|
| 929 | mul_mux2 sh_27_ ( .d1(areg[28]), .z(ain[27]), .d0(areg[27]), .s(x2)); |
---|
| 930 | mul_mux2 sh_26_ ( .d1(areg[27]), .z(ain[26]), .d0(areg[26]), .s(x2)); |
---|
| 931 | mul_mux2 sh_25_ ( .d1(areg[26]), .z(ain[25]), .d0(areg[25]), .s(x2)); |
---|
| 932 | mul_mux2 sh_24_ ( .d1(areg[25]), .z(ain[24]), .d0(areg[24]), .s(x2)); |
---|
| 933 | mul_mux2 sh_23_ ( .d1(areg[24]), .z(ain[23]), .d0(areg[23]), .s(x2)); |
---|
| 934 | mul_mux2 sh_22_ ( .d1(areg[23]), .z(ain[22]), .d0(areg[22]), .s(x2)); |
---|
| 935 | mul_mux2 sh_21_ ( .d1(areg[22]), .z(ain[21]), .d0(areg[21]), .s(x2)); |
---|
| 936 | mul_mux2 sh_20_ ( .d1(areg[21]), .z(ain[20]), .d0(areg[20]), .s(x2)); |
---|
| 937 | mul_mux2 sh_96_ ( .d1(1'b0), .z(ain[96]), .d0(areg[96]), |
---|
| 938 | .s(x2)); |
---|
| 939 | mul_mux2 sh_95_ ( .d1(areg[96]), .z(ain[95]), .d0(areg[95]), .s(x2)); |
---|
| 940 | mul_mux2 sh_94_ ( .d1(areg[95]), .z(ain[94]), .d0(areg[94]), .s(x2)); |
---|
| 941 | mul_mux2 sh_93_ ( .d1(areg[94]), .z(ain[93]), .d0(areg[93]), .s(x2)); |
---|
| 942 | mul_mux2 sh_92_ ( .d1(areg[93]), .z(ain[92]), .d0(areg[92]), .s(x2)); |
---|
| 943 | mul_mux2 sh_91_ ( .d1(areg[92]), .z(ain[91]), .d0(areg[91]), .s(x2)); |
---|
| 944 | mul_mux2 sh_90_ ( .d1(areg[91]), .z(ain[90]), .d0(areg[90]), .s(x2)); |
---|
| 945 | mul_mux2 sh_89_ ( .d1(areg[90]), .z(ain[89]), .d0(areg[89]), .s(x2)); |
---|
| 946 | mul_mux2 sh_88_ ( .d1(areg[89]), .z(ain[88]), .d0(areg[88]), .s(x2)); |
---|
| 947 | mul_mux2 sh_87_ ( .d1(areg[88]), .z(ain[87]), .d0(areg[87]), .s(x2)); |
---|
| 948 | mul_mux2 sh_86_ ( .d1(areg[87]), .z(ain[86]), .d0(areg[86]), .s(x2)); |
---|
| 949 | mul_mux2 sh_85_ ( .d1(areg[86]), .z(ain[85]), .d0(areg[85]), .s(x2)); |
---|
| 950 | mul_mux2 sh_84_ ( .d1(areg[85]), .z(ain[84]), .d0(areg[84]), .s(x2)); |
---|
| 951 | mul_mux2 sh_0_ ( .d1(areg[1]), .z(ain[0]), .d0(areg[0]), .s(x2)); |
---|
| 952 | mul_mux2 sh_81_ ( .d1(areg[82]), .z(ain[81]), .d0(areg[81]), .s(x2)); |
---|
| 953 | mul_mux2 sh_80_ ( .d1(areg[81]), .z(ain[80]), .d0(areg[80]), .s(x2)); |
---|
| 954 | mul_mux2 sh_79_ ( .d1(areg[80]), .z(ain[79]), .d0(areg[79]), .s(x2)); |
---|
| 955 | mul_mux2 sh_78_ ( .d1(areg[79]), .z(ain[78]), .d0(areg[78]), .s(x2)); |
---|
| 956 | mul_mux2 sh_77_ ( .d1(areg[78]), .z(ain[77]), .d0(areg[77]), .s(x2)); |
---|
| 957 | mul_mux2 sh_76_ ( .d1(areg[77]), .z(ain[76]), .d0(areg[76]), .s(x2)); |
---|
| 958 | mul_mux2 sh_75_ ( .d1(areg[76]), .z(ain[75]), .d0(areg[75]), .s(x2)); |
---|
| 959 | mul_mux2 sh_74_ ( .d1(areg[75]), .z(ain[74]), .d0(areg[74]), .s(x2)); |
---|
| 960 | mul_mux2 sh_73_ ( .d1(areg[74]), .z(ain[73]), .d0(areg[73]), .s(x2)); |
---|
| 961 | mul_mux2 sh_72_ ( .d1(areg[73]), .z(ain[72]), .d0(areg[72]), .s(x2)); |
---|
| 962 | mul_mux2 sh_71_ ( .d1(areg[72]), .z(ain[71]), .d0(areg[71]), .s(x2)); |
---|
| 963 | mul_mux2 sh_70_ ( .d1(areg[71]), .z(ain[70]), .d0(areg[70]), .s(x2)); |
---|
| 964 | mul_mux2 sh_69_ ( .d1(areg[70]), .z(ain[69]), .d0(areg[69]), .s(x2)); |
---|
| 965 | mul_mux2 sh_19_ ( .d1(areg[20]), .z(ain[19]), .d0(areg[19]), .s(x2)); |
---|
| 966 | mul_mux2 sh_18_ ( .d1(areg[19]), .z(ain[18]), .d0(areg[18]), .s(x2)); |
---|
| 967 | mul_mux2 sh_17_ ( .d1(areg[18]), .z(ain[17]), .d0(areg[17]), .s(x2)); |
---|
| 968 | mul_mux2 sh_16_ ( .d1(areg[17]), .z(ain[16]), .d0(areg[16]), .s(x2)); |
---|
| 969 | mul_mux2 sh_15_ ( .d1(areg[16]), .z(ain[15]), .d0(areg[15]), .s(x2)); |
---|
| 970 | mul_mux2 sh_4_ ( .d1(areg[5]), .z(ain[4]), .d0(areg[4]), .s(x2)); |
---|
| 971 | mul_mux2 sh_3_ ( .d1(areg[4]), .z(ain[3]), .d0(areg[3]), .s(x2)); |
---|
| 972 | mul_mux2 sh_2_ ( .d1(areg[3]), .z(ain[2]), .d0(areg[2]), .s(x2)); |
---|
| 973 | mul_mux2 sh_1_ ( .d1(areg[2]), .z(ain[1]), .d0(areg[1]), .s(x2)); |
---|
| 974 | mul_mux2 shx2 ( .d1(areg[0]), .z(ainx2), .d0(1'b0), |
---|
| 975 | .s(x2)); |
---|
| 976 | mul_mux2 sh_83_ ( .d1(areg[84]), .z(ain[83]), .d0(areg[83]), .s(x2)); |
---|
| 977 | mul_mux2 sh_14_ ( .d1(areg[15]), .z(ain[14]), .d0(areg[14]), .s(x2)); |
---|
| 978 | mul_mux2 sh_13_ ( .d1(areg[14]), .z(ain[13]), .d0(areg[13]), .s(x2)); |
---|
| 979 | mul_mux2 sh_12_ ( .d1(areg[13]), .z(ain[12]), .d0(areg[12]), .s(x2)); |
---|
| 980 | mul_mux2 sh_11_ ( .d1(areg[12]), .z(ain[11]), .d0(areg[11]), .s(x2)); |
---|
| 981 | mul_mux2 sh_10_ ( .d1(areg[11]), .z(ain[10]), .d0(areg[10]), .s(x2)); |
---|
| 982 | mul_mux2 sh_9_ ( .d1(areg[10]), .z(ain[9]), .d0(areg[9]), .s(x2)); |
---|
| 983 | mul_mux2 sh_8_ ( .d1(areg[9]), .z(ain[8]), .d0(areg[8]), .s(x2)); |
---|
| 984 | mul_mux2 sh_7_ ( .d1(areg[8]), .z(ain[7]), .d0(areg[7]), .s(x2)); |
---|
| 985 | mul_mux2 sh_6_ ( .d1(areg[7]), .z(ain[6]), .d0(areg[6]), .s(x2)); |
---|
| 986 | mul_mux2 sh_5_ ( .d1(areg[6]), .z(ain[5]), .d0(areg[5]), .s(x2)); |
---|
| 987 | mul_csa42 sc3_68_ ( .cin(co[67]), .d(1'b0), |
---|
| 988 | .carry(c3[68]), .c(c2[67]), .b(s2[68]), .a(1'b0), |
---|
| 989 | .cout(), .sum(s3[68])); |
---|
| 990 | mul_csa42 sc3_67_ ( .cin(co[66]), .d(1'b0), |
---|
| 991 | .carry(c3[67]), .c(c2[66]), .b(s2[67]), .a(s1[67]), .cout(co[67]), |
---|
| 992 | .sum(s3[67])); |
---|
| 993 | mul_csa42 sc3_66_ ( .cin(co[65]), .d(c1[65]), .carry(c3[66]), |
---|
| 994 | .c(c2[65]), .b(s2[66]), .a(s1[66]), .cout(co[66]), .sum(s3[66])); |
---|
| 995 | mul_csa42 sc3_65_ ( .cin(co[64]), .d(c1[64]), .carry(c3[65]), |
---|
| 996 | .c(c2[64]), .b(s2[65]), .a(s1[65]), .cout(co[65]), .sum(s3[65])); |
---|
| 997 | mul_csa42 sc3_64_ ( .cin(co[63]), .d(c1[63]), .carry(c3[64]), |
---|
| 998 | .c(c2[63]), .b(s2[64]), .a(s1[64]), .cout(co[64]), .sum(s3[64])); |
---|
| 999 | mul_csa42 sc3_63_ ( .cin(co[62]), .d(c1[62]), .carry(c3[63]), |
---|
| 1000 | .c(c2[62]), .b(s2[63]), .a(s1[63]), .cout(co[63]), .sum(s3[63])); |
---|
| 1001 | mul_csa42 sc3_62_ ( .cin(co[61]), .d(c1[61]), .carry(c3[62]), |
---|
| 1002 | .c(c2[61]), .b(s2[62]), .a(s1[62]), .cout(co[62]), .sum(s3[62])); |
---|
| 1003 | mul_csa42 sc3_61_ ( .cin(co[60]), .d(c1[60]), .carry(c3[61]), |
---|
| 1004 | .c(c2[60]), .b(s2[61]), .a(s1[61]), .cout(co[61]), .sum(s3[61])); |
---|
| 1005 | mul_csa42 sc3_60_ ( .cin(co[59]), .d(c1[59]), .carry(c3[60]), |
---|
| 1006 | .c(c2[59]), .b(s2[60]), .a(s1[60]), .cout(co[60]), .sum(s3[60])); |
---|
| 1007 | mul_csa42 sc3_59_ ( .cin(co[58]), .d(c1[58]), .carry(c3[59]), |
---|
| 1008 | .c(c2[58]), .b(s2[59]), .a(s1[59]), .cout(co[59]), .sum(s3[59])); |
---|
| 1009 | mul_csa42 sc3_58_ ( .cin(co[57]), .d(c1[57]), .carry(c3[58]), |
---|
| 1010 | .c(c2[57]), .b(s2[58]), .a(s1[58]), .cout(co[58]), .sum(s3[58])); |
---|
| 1011 | mul_csa42 sc3_57_ ( .cin(co[56]), .d(c1[56]), .carry(c3[57]), |
---|
| 1012 | .c(c2[56]), .b(s2[57]), .a(s1[57]), .cout(co[57]), .sum(s3[57])); |
---|
| 1013 | mul_csa42 sc3_56_ ( .cin(co[55]), .d(c1[55]), .carry(c3[56]), |
---|
| 1014 | .c(c2[55]), .b(s2[56]), .a(s1[56]), .cout(co[56]), .sum(s3[56])); |
---|
| 1015 | mul_csa42 sc3_55_ ( .cin(co[54]), .d(c1[54]), .carry(c3[55]), |
---|
| 1016 | .c(c2[54]), .b(s2[55]), .a(s1[55]), .cout(co[55]), .sum(s3[55])); |
---|
| 1017 | mul_csa42 sc3_54_ ( .cin(co[53]), .d(c1[53]), .carry(c3[54]), |
---|
| 1018 | .c(c2[53]), .b(s2[54]), .a(s1[54]), .cout(co[54]), .sum(s3[54])); |
---|
| 1019 | mul_csa42 sc3_53_ ( .cin(co[52]), .d(c1[52]), .carry(c3[53]), |
---|
| 1020 | .c(c2[52]), .b(s2[53]), .a(s1[53]), .cout(co[53]), .sum(s3[53])); |
---|
| 1021 | mul_csa42 sc3_52_ ( .cin(co[51]), .d(c1[51]), .carry(c3[52]), |
---|
| 1022 | .c(c2[51]), .b(s2[52]), .a(s1[52]), .cout(co[52]), .sum(s3[52])); |
---|
| 1023 | mul_csa42 sc3_51_ ( .cin(co[50]), .d(c1[50]), .carry(c3[51]), |
---|
| 1024 | .c(c2[50]), .b(s2[51]), .a(s1[51]), .cout(co[51]), .sum(s3[51])); |
---|
| 1025 | mul_csa42 sc3_50_ ( .cin(co[49]), .d(c1[49]), .carry(c3[50]), |
---|
| 1026 | .c(c2[49]), .b(s2[50]), .a(s1[50]), .cout(co[50]), .sum(s3[50])); |
---|
| 1027 | mul_csa42 sc3_49_ ( .cin(co[48]), .d(c1[48]), .carry(c3[49]), |
---|
| 1028 | .c(c2[48]), .b(s2[49]), .a(s1[49]), .cout(co[49]), .sum(s3[49])); |
---|
| 1029 | mul_csa42 sc3_48_ ( .cin(co[47]), .d(c1[47]), .carry(c3[48]), |
---|
| 1030 | .c(c2[47]), .b(s2[48]), .a(s1[48]), .cout(co[48]), .sum(s3[48])); |
---|
| 1031 | mul_csa42 sc3_47_ ( .cin(co[46]), .d(c1[46]), .carry(c3[47]), |
---|
| 1032 | .c(c2[46]), .b(s2[47]), .a(s1[47]), .cout(co[47]), .sum(s3[47])); |
---|
| 1033 | mul_csa42 sc3_46_ ( .cin(co[45]), .d(c1[45]), .carry(c3[46]), |
---|
| 1034 | .c(c2[45]), .b(s2[46]), .a(s1[46]), .cout(co[46]), .sum(s3[46])); |
---|
| 1035 | mul_csa42 sc3_45_ ( .cin(co[44]), .d(c1[44]), .carry(c3[45]), |
---|
| 1036 | .c(c2[44]), .b(s2[45]), .a(s1[45]), .cout(co[45]), .sum(s3[45])); |
---|
| 1037 | mul_csa42 sc3_44_ ( .cin(co[43]), .d(c1[43]), .carry(c3[44]), |
---|
| 1038 | .c(c2[43]), .b(s2[44]), .a(s1[44]), .cout(co[44]), .sum(s3[44])); |
---|
| 1039 | mul_csa42 sc3_43_ ( .cin(co[42]), .d(c1[42]), .carry(c3[43]), |
---|
| 1040 | .c(c2[42]), .b(s2[43]), .a(s1[43]), .cout(co[43]), .sum(s3[43])); |
---|
| 1041 | mul_csa42 sc3_42_ ( .cin(co[41]), .d(c1[41]), .carry(c3[42]), |
---|
| 1042 | .c(c2[41]), .b(s2[42]), .a(s1[42]), .cout(co[42]), .sum(s3[42])); |
---|
| 1043 | mul_csa42 sc3_41_ ( .cin(co[40]), .d(c1[40]), .carry(c3[41]), |
---|
| 1044 | .c(c2[40]), .b(s2[41]), .a(s1[41]), .cout(co[41]), .sum(s3[41])); |
---|
| 1045 | mul_csa42 sc3_40_ ( .cin(co[39]), .d(c1[39]), .carry(c3[40]), |
---|
| 1046 | .c(c2[39]), .b(s2[40]), .a(s1[40]), .cout(co[40]), .sum(s3[40])); |
---|
| 1047 | mul_csa42 sc3_39_ ( .cin(co[38]), .d(c1[38]), .carry(c3[39]), |
---|
| 1048 | .c(c2[38]), .b(s2[39]), .a(s1[39]), .cout(co[39]), .sum(s3[39])); |
---|
| 1049 | mul_csa42 sc3_38_ ( .cin(co[37]), .d(c1[37]), .carry(c3[38]), |
---|
| 1050 | .c(c2[37]), .b(s2[38]), .a(s1[38]), .cout(co[38]), .sum(s3[38])); |
---|
| 1051 | mul_csa42 sc3_37_ ( .cin(co[36]), .d(c1[36]), .carry(c3[37]), |
---|
| 1052 | .c(c2[36]), .b(s2[37]), .a(s1[37]), .cout(co[37]), .sum(s3[37])); |
---|
| 1053 | mul_csa42 sc3_36_ ( .cin(co[35]), .d(c1[35]), .carry(c3[36]), |
---|
| 1054 | .c(c2[35]), .b(s2[36]), .a(s1[36]), .cout(co[36]), .sum(s3[36])); |
---|
| 1055 | mul_csa42 sc3_35_ ( .cin(co[34]), .d(c1[34]), .carry(c3[35]), |
---|
| 1056 | .c(c2[34]), .b(s2[35]), .a(s1[35]), .cout(co[35]), .sum(s3[35])); |
---|
| 1057 | mul_csa42 sc3_34_ ( .cin(co[33]), .d(c1[33]), .carry(c3[34]), |
---|
| 1058 | .c(c2[33]), .b(s2[34]), .a(s1[34]), .cout(co[34]), .sum(s3[34])); |
---|
| 1059 | mul_csa42 sc3_33_ ( .cin(co[32]), .d(c1[32]), .carry(c3[33]), |
---|
| 1060 | .c(c2[32]), .b(s2[33]), .a(s1[33]), .cout(co[33]), .sum(s3[33])); |
---|
| 1061 | mul_csa42 sc3_32_ ( .cin(co[31]), .d(c1[31]), .carry(c3[32]), |
---|
| 1062 | .c(c2[31]), .b(s2[32]), .a(s1[32]), .cout(co[32]), .sum(s3[32])); |
---|
| 1063 | mul_csa42 sc3_31_ ( .cin(co[30]), .d(c1[30]), .carry(c3[31]), |
---|
| 1064 | .c(c2[30]), .b(s2[31]), .a(s1[31]), .cout(co[31]), .sum(s3[31])); |
---|
| 1065 | mul_csa42 sc3_30_ ( .cin(co[29]), .d(c1[29]), .carry(c3[30]), |
---|
| 1066 | .c(c2[29]), .b(s2[30]), .a(s1[30]), .cout(co[30]), .sum(s3[30])); |
---|
| 1067 | mul_csa42 sc3_29_ ( .cin(co[28]), .d(c1[28]), .carry(c3[29]), |
---|
| 1068 | .c(c2[28]), .b(s2[29]), .a(s1[29]), .cout(co[29]), .sum(s3[29])); |
---|
| 1069 | mul_csa42 sc3_28_ ( .cin(co[27]), .d(c1[27]), .carry(c3[28]), |
---|
| 1070 | .c(c2[27]), .b(s2[28]), .a(s1[28]), .cout(co[28]), .sum(s3[28])); |
---|
| 1071 | mul_csa42 sc3_27_ ( .cin(co[26]), .d(c1[26]), .carry(c3[27]), |
---|
| 1072 | .c(c2[26]), .b(s2[27]), .a(s1[27]), .cout(co[27]), .sum(s3[27])); |
---|
| 1073 | mul_csa42 sc3_26_ ( .cin(co[25]), .d(c1[25]), .carry(c3[26]), |
---|
| 1074 | .c(c2[25]), .b(s2[26]), .a(s1[26]), .cout(co[26]), .sum(s3[26])); |
---|
| 1075 | mul_csa42 sc3_25_ ( .cin(co[24]), .d(c1[24]), .carry(c3[25]), |
---|
| 1076 | .c(c2[24]), .b(s2[25]), .a(s1[25]), .cout(co[25]), .sum(s3[25])); |
---|
| 1077 | mul_csa42 sc3_24_ ( .cin(co[23]), .d(c1[23]), .carry(c3[24]), |
---|
| 1078 | .c(c2[23]), .b(s2[24]), .a(s1[24]), .cout(co[24]), .sum(s3[24])); |
---|
| 1079 | mul_csa42 sc3_23_ ( .cin(co[22]), .d(c1[22]), .carry(c3[23]), |
---|
| 1080 | .c(c2[22]), .b(s2[23]), .a(s1[23]), .cout(co[23]), .sum(s3[23])); |
---|
| 1081 | mul_csa42 sc3_22_ ( .cin(co[21]), .d(c1[21]), .carry(c3[22]), |
---|
| 1082 | .c(c2[21]), .b(s2[22]), .a(s1[22]), .cout(co[22]), .sum(s3[22])); |
---|
| 1083 | mul_csa42 sc3_21_ ( .cin(co[20]), .d(c1[20]), .carry(c3[21]), |
---|
| 1084 | .c(c2[20]), .b(s2[21]), .a(s1[21]), .cout(co[21]), .sum(s3[21])); |
---|
| 1085 | mul_csa42 sc3_20_ ( .cin(1'b0), .d(c1[19]), |
---|
| 1086 | .carry(c3[20]), .c(c2[19]), .b(s2[20]), .a(s1[20]), .cout(co[20]), |
---|
| 1087 | .sum(s3[20])); |
---|
| 1088 | mul_csa32 sc4_82_ ( .c(c3[81]), .b(s2[82]), .a(ain[82]), |
---|
| 1089 | .cout(pcout[82]), .sum(psum[82])); |
---|
| 1090 | mul_csa32 sc4_68_ ( .c(c3[67]), .b(s3[68]), .a(ain[68]), |
---|
| 1091 | .cout(pcout[68]), .sum(psum[68])); |
---|
| 1092 | mul_csa32 sc4_67_ ( .c(c3[66]), .b(s3[67]), .a(ain[67]), |
---|
| 1093 | .cout(pcout[67]), .sum(psum[67])); |
---|
| 1094 | mul_csa32 sc4_66_ ( .c(c3[65]), .b(s3[66]), .a(ain[66]), |
---|
| 1095 | .cout(pcout[66]), .sum(psum[66])); |
---|
| 1096 | mul_csa32 sc4_65_ ( .c(c3[64]), .b(s3[65]), .a(ain[65]), |
---|
| 1097 | .cout(pcout[65]), .sum(psum[65])); |
---|
| 1098 | mul_csa32 sc4_64_ ( .c(c3[63]), .b(s3[64]), .a(ain[64]), |
---|
| 1099 | .cout(pcout[64]), .sum(psum[64])); |
---|
| 1100 | mul_csa32 sc4_63_ ( .c(c3[62]), .b(s3[63]), .a(ain[63]), |
---|
| 1101 | .cout(pcout[63]), .sum(psum[63])); |
---|
| 1102 | mul_csa32 sc4_62_ ( .c(c3[61]), .b(s3[62]), .a(ain[62]), |
---|
| 1103 | .cout(pcout[62]), .sum(psum[62])); |
---|
| 1104 | mul_csa32 sc4_61_ ( .c(c3[60]), .b(s3[61]), .a(ain[61]), |
---|
| 1105 | .cout(pcout[61]), .sum(psum[61])); |
---|
| 1106 | mul_csa32 sc4_60_ ( .c(c3[59]), .b(s3[60]), .a(ain[60]), |
---|
| 1107 | .cout(pcout[60]), .sum(psum[60])); |
---|
| 1108 | mul_csa32 sc4_59_ ( .c(c3[58]), .b(s3[59]), .a(ain[59]), |
---|
| 1109 | .cout(pcout[59]), .sum(psum[59])); |
---|
| 1110 | mul_csa32 sc4_58_ ( .c(c3[57]), .b(s3[58]), .a(ain[58]), |
---|
| 1111 | .cout(pcout[58]), .sum(psum[58])); |
---|
| 1112 | mul_csa32 sc4_57_ ( .c(c3[56]), .b(s3[57]), .a(ain[57]), |
---|
| 1113 | .cout(pcout[57]), .sum(psum[57])); |
---|
| 1114 | mul_csa32 sc4_56_ ( .c(c3[55]), .b(s3[56]), .a(ain[56]), |
---|
| 1115 | .cout(pcout[56]), .sum(psum[56])); |
---|
| 1116 | mul_csa32 sc4_55_ ( .c(c3[54]), .b(s3[55]), .a(ain[55]), |
---|
| 1117 | .cout(pcout[55]), .sum(psum[55])); |
---|
| 1118 | mul_csa32 sc4_54_ ( .c(c3[53]), .b(s3[54]), .a(ain[54]), |
---|
| 1119 | .cout(pcout[54]), .sum(psum[54])); |
---|
| 1120 | mul_csa32 sc4_53_ ( .c(c3[52]), .b(s3[53]), .a(ain[53]), |
---|
| 1121 | .cout(pcout[53]), .sum(psum[53])); |
---|
| 1122 | mul_csa32 sc4_52_ ( .c(c3[51]), .b(s3[52]), .a(ain[52]), |
---|
| 1123 | .cout(pcout[52]), .sum(psum[52])); |
---|
| 1124 | mul_csa32 sc4_51_ ( .c(c3[50]), .b(s3[51]), .a(ain[51]), |
---|
| 1125 | .cout(pcout[51]), .sum(psum[51])); |
---|
| 1126 | mul_csa32 sc4_50_ ( .c(c3[49]), .b(s3[50]), .a(ain[50]), |
---|
| 1127 | .cout(pcout[50]), .sum(psum[50])); |
---|
| 1128 | mul_csa32 sc4_49_ ( .c(c3[48]), .b(s3[49]), .a(ain[49]), |
---|
| 1129 | .cout(pcout[49]), .sum(psum[49])); |
---|
| 1130 | mul_csa32 sc4_48_ ( .c(c3[47]), .b(s3[48]), .a(ain[48]), |
---|
| 1131 | .cout(pcout[48]), .sum(psum[48])); |
---|
| 1132 | mul_csa32 sc4_47_ ( .c(c3[46]), .b(s3[47]), .a(ain[47]), |
---|
| 1133 | .cout(pcout[47]), .sum(psum[47])); |
---|
| 1134 | mul_csa32 sc4_46_ ( .c(c3[45]), .b(s3[46]), .a(ain[46]), |
---|
| 1135 | .cout(pcout[46]), .sum(psum[46])); |
---|
| 1136 | mul_csa32 sc4_45_ ( .c(c3[44]), .b(s3[45]), .a(ain[45]), |
---|
| 1137 | .cout(pcout[45]), .sum(psum[45])); |
---|
| 1138 | mul_csa32 sc4_44_ ( .c(c3[43]), .b(s3[44]), .a(ain[44]), |
---|
| 1139 | .cout(pcout[44]), .sum(psum[44])); |
---|
| 1140 | mul_csa32 sc4_43_ ( .c(c3[42]), .b(s3[43]), .a(ain[43]), |
---|
| 1141 | .cout(pcout[43]), .sum(psum[43])); |
---|
| 1142 | mul_csa32 sc4_42_ ( .c(c3[41]), .b(s3[42]), .a(ain[42]), |
---|
| 1143 | .cout(pcout[42]), .sum(psum[42])); |
---|
| 1144 | mul_csa32 sc4_41_ ( .c(c3[40]), .b(s3[41]), .a(ain[41]), |
---|
| 1145 | .cout(pcout[41]), .sum(psum[41])); |
---|
| 1146 | mul_csa32 sc4_40_ ( .c(c3[39]), .b(s3[40]), .a(ain[40]), |
---|
| 1147 | .cout(pcout[40]), .sum(psum[40])); |
---|
| 1148 | mul_csa32 sc4_39_ ( .c(c3[38]), .b(s3[39]), .a(ain[39]), |
---|
| 1149 | .cout(pcout[39]), .sum(psum[39])); |
---|
| 1150 | mul_csa32 sc4_38_ ( .c(c3[37]), .b(s3[38]), .a(ain[38]), |
---|
| 1151 | .cout(pcout[38]), .sum(psum[38])); |
---|
| 1152 | mul_csa32 sc4_37_ ( .c(c3[36]), .b(s3[37]), .a(ain[37]), |
---|
| 1153 | .cout(pcout[37]), .sum(psum[37])); |
---|
| 1154 | mul_csa32 sc4_36_ ( .c(c3[35]), .b(s3[36]), .a(ain[36]), |
---|
| 1155 | .cout(pcout[36]), .sum(psum[36])); |
---|
| 1156 | mul_csa32 sc4_35_ ( .c(c3[34]), .b(s3[35]), .a(ain[35]), |
---|
| 1157 | .cout(pcout[35]), .sum(psum[35])); |
---|
| 1158 | mul_csa32 sc4_34_ ( .c(c3[33]), .b(s3[34]), .a(ain[34]), |
---|
| 1159 | .cout(pcout[34]), .sum(psum[34])); |
---|
| 1160 | mul_csa32 sc4_33_ ( .c(c3[32]), .b(s3[33]), .a(ain[33]), |
---|
| 1161 | .cout(pcout[33]), .sum(psum[33])); |
---|
| 1162 | mul_csa32 sc4_32_ ( .c(c3[31]), .b(s3[32]), .a(ain[32]), |
---|
| 1163 | .cout(pcout[32]), .sum(psum[32])); |
---|
| 1164 | mul_csa32 sc4_31_ ( .c(c3[30]), .b(s3[31]), .a(ain[31]), |
---|
| 1165 | .cout(pcout[31]), .sum(psum[31])); |
---|
| 1166 | mul_csa32 sc4_30_ ( .c(c3[29]), .b(s3[30]), .a(ain[30]), |
---|
| 1167 | .cout(pcout[30]), .sum(psum[30])); |
---|
| 1168 | mul_csa32 sc4_29_ ( .c(c3[28]), .b(s3[29]), .a(ain[29]), |
---|
| 1169 | .cout(pcout[29]), .sum(psum[29])); |
---|
| 1170 | mul_csa32 sc4_28_ ( .c(c3[27]), .b(s3[28]), .a(ain[28]), |
---|
| 1171 | .cout(pcout[28]), .sum(psum[28])); |
---|
| 1172 | mul_csa32 sc4_27_ ( .c(c3[26]), .b(s3[27]), .a(ain[27]), |
---|
| 1173 | .cout(pcout[27]), .sum(psum[27])); |
---|
| 1174 | mul_csa32 sc4_26_ ( .c(c3[25]), .b(s3[26]), .a(ain[26]), |
---|
| 1175 | .cout(pcout[26]), .sum(psum[26])); |
---|
| 1176 | mul_csa32 sc4_25_ ( .c(c3[24]), .b(s3[25]), .a(ain[25]), |
---|
| 1177 | .cout(pcout[25]), .sum(psum[25])); |
---|
| 1178 | mul_csa32 sc4_24_ ( .c(c3[23]), .b(s3[24]), .a(ain[24]), |
---|
| 1179 | .cout(pcout[24]), .sum(psum[24])); |
---|
| 1180 | mul_csa32 sc4_23_ ( .c(c3[22]), .b(s3[23]), .a(ain[23]), |
---|
| 1181 | .cout(pcout[23]), .sum(psum[23])); |
---|
| 1182 | mul_csa32 sc4_22_ ( .c(c3[21]), .b(s3[22]), .a(ain[22]), |
---|
| 1183 | .cout(pcout[22]), .sum(psum[22])); |
---|
| 1184 | mul_csa32 sc4_21_ ( .c(c3[20]), .b(s3[21]), .a(ain[21]), |
---|
| 1185 | .cout(pcout[21]), .sum(psum[21])); |
---|
| 1186 | mul_csa32 sc4_20_ ( .c(c3[19]), .b(s3[20]), .a(ain[20]), |
---|
| 1187 | .cout(pcout[20]), .sum(psum[20])); |
---|
| 1188 | mul_csa32 sc4_96_ ( .c(c2[95]), .b(s2[96]), .a(ain[96]), |
---|
| 1189 | .cout(pcout[96]), .sum(psum[96])); |
---|
| 1190 | mul_csa32 sc4_95_ ( .c(c2[94]), .b(s2[95]), .a(ain[95]), |
---|
| 1191 | .cout(pcout[95]), .sum(psum[95])); |
---|
| 1192 | mul_csa32 sc4_94_ ( .c(c2[93]), .b(s2[94]), .a(ain[94]), |
---|
| 1193 | .cout(pcout[94]), .sum(psum[94])); |
---|
| 1194 | mul_csa32 sc4_93_ ( .c(c2[92]), .b(s2[93]), .a(ain[93]), |
---|
| 1195 | .cout(pcout[93]), .sum(psum[93])); |
---|
| 1196 | mul_csa32 sc4_92_ ( .c(c2[91]), .b(s2[92]), .a(ain[92]), |
---|
| 1197 | .cout(pcout[92]), .sum(psum[92])); |
---|
| 1198 | mul_csa32 sc4_91_ ( .c(c2[90]), .b(s2[91]), .a(ain[91]), |
---|
| 1199 | .cout(pcout[91]), .sum(psum[91])); |
---|
| 1200 | mul_csa32 sc4_90_ ( .c(c2[89]), .b(s2[90]), .a(ain[90]), |
---|
| 1201 | .cout(pcout[90]), .sum(psum[90])); |
---|
| 1202 | mul_csa32 sc4_89_ ( .c(c2[88]), .b(s2[89]), .a(ain[89]), |
---|
| 1203 | .cout(pcout[89]), .sum(psum[89])); |
---|
| 1204 | mul_csa32 sc4_88_ ( .c(c2[87]), .b(s2[88]), .a(ain[88]), |
---|
| 1205 | .cout(pcout[88]), .sum(psum[88])); |
---|
| 1206 | mul_csa32 sc4_87_ ( .c(c2[86]), .b(s2[87]), .a(ain[87]), |
---|
| 1207 | .cout(pcout[87]), .sum(psum[87])); |
---|
| 1208 | mul_csa32 sc4_86_ ( .c(c2[85]), .b(s2[86]), .a(ain[86]), |
---|
| 1209 | .cout(pcout[86]), .sum(psum[86])); |
---|
| 1210 | mul_csa32 sc4_85_ ( .c(c2[84]), .b(s2[85]), .a(ain[85]), |
---|
| 1211 | .cout(pcout[85]), .sum(psum[85])); |
---|
| 1212 | mul_csa32 sc4_84_ ( .c(c2[83]), .b(s2[84]), .a(ain[84]), |
---|
| 1213 | .cout(pcout[84]), .sum(psum[84])); |
---|
| 1214 | mul_csa32 sc4_81_ ( .c(c3[80]), .b(s3[81]), .a(ain[81]), |
---|
| 1215 | .cout(pcout[81]), .sum(psum[81])); |
---|
| 1216 | mul_csa32 sc4_80_ ( .c(c3[79]), .b(s3[80]), .a(ain[80]), |
---|
| 1217 | .cout(pcout[80]), .sum(psum[80])); |
---|
| 1218 | mul_csa32 sc4_79_ ( .c(c3[78]), .b(s3[79]), .a(ain[79]), |
---|
| 1219 | .cout(pcout[79]), .sum(psum[79])); |
---|
| 1220 | mul_csa32 sc4_78_ ( .c(c3[77]), .b(s3[78]), .a(ain[78]), |
---|
| 1221 | .cout(pcout[78]), .sum(psum[78])); |
---|
| 1222 | mul_csa32 sc4_77_ ( .c(c3[76]), .b(s3[77]), .a(ain[77]), |
---|
| 1223 | .cout(pcout[77]), .sum(psum[77])); |
---|
| 1224 | mul_csa32 sc4_76_ ( .c(c3[75]), .b(s3[76]), .a(ain[76]), |
---|
| 1225 | .cout(pcout[76]), .sum(psum[76])); |
---|
| 1226 | mul_csa32 sc4_75_ ( .c(c3[74]), .b(s3[75]), .a(ain[75]), |
---|
| 1227 | .cout(pcout[75]), .sum(psum[75])); |
---|
| 1228 | mul_csa32 sc4_74_ ( .c(c3[73]), .b(s3[74]), .a(ain[74]), |
---|
| 1229 | .cout(pcout[74]), .sum(psum[74])); |
---|
| 1230 | mul_csa32 sc4_73_ ( .c(c3[72]), .b(s3[73]), .a(ain[73]), |
---|
| 1231 | .cout(pcout[73]), .sum(psum[73])); |
---|
| 1232 | mul_csa32 sc4_72_ ( .c(c3[71]), .b(s3[72]), .a(ain[72]), |
---|
| 1233 | .cout(pcout[72]), .sum(psum[72])); |
---|
| 1234 | mul_csa32 sc4_71_ ( .c(c3[70]), .b(s3[71]), .a(ain[71]), |
---|
| 1235 | .cout(pcout[71]), .sum(psum[71])); |
---|
| 1236 | mul_csa32 sc4_70_ ( .c(c3[69]), .b(s3[70]), .a(ain[70]), |
---|
| 1237 | .cout(pcout[70]), .sum(psum[70])); |
---|
| 1238 | mul_csa32 sc4_69_ ( .c(c3[68]), .b(s3[69]), .a(ain[69]), |
---|
| 1239 | .cout(pcout[69]), .sum(psum[69])); |
---|
| 1240 | mul_csa32 acc_4_ ( .c(c2[3]), .sum(psum[4]), .cout(pcout[4]), |
---|
| 1241 | .a(ain[4]), .b(s2[4])); |
---|
| 1242 | mul_csa32 acc_3_ ( .c(c2[2]), .sum(psum[3]), .cout(pcout[3]), |
---|
| 1243 | .a(ain[3]), .b(s2[3])); |
---|
| 1244 | mul_csa32 acc_2_ ( .c(c2[1]), .sum(psum[2]), .cout(pcout[2]), |
---|
| 1245 | .a(ain[2]), .b(s2[2])); |
---|
| 1246 | mul_csa32 acc_1_ ( .c(c2[0]), .sum(psum[1]), .cout(pcout[1]), |
---|
| 1247 | .a(ain[1]), .b(s2[1])); |
---|
| 1248 | mul_csa32 sc3_97_ ( .c(c2[96]), .sum(psum[97]), .cout(pcout[97]), |
---|
| 1249 | .a(a1s[81]), .b(a1c[80])); |
---|
| 1250 | mul_csa32 sc1_19_ ( .c(a1s[3]), .b(pc[50]), .a(ps[51]), |
---|
| 1251 | .cout(c1[19]), .sum(s1[19])); |
---|
| 1252 | mul_csa32 sc1_18_ ( .c(a1s[2]), .b(pc[49]), .a(ps[50]), |
---|
| 1253 | .cout(c1[18]), .sum(s1[18])); |
---|
| 1254 | mul_csa32 sc1_17_ ( .c(a1s[1]), .b(pc[48]), .a(ps[49]), |
---|
| 1255 | .cout(c1[17]), .sum(s1[17])); |
---|
| 1256 | mul_csa32 sc1_16_ ( .c(a1s[0]), .b(pc[47]), .a(ps[48]), |
---|
| 1257 | .cout(c1[16]), .sum(s1[16])); |
---|
| 1258 | mul_csa32 sc1_15_ ( .c(1'b0), .b(pc[46]), .a(ps[47]), |
---|
| 1259 | .cout(c1[15]), .sum(s1[15])); |
---|
| 1260 | mul_csa32 sc4_83_ ( .c(c2[82]), .b(s2[83]), .a(ain[83]), |
---|
| 1261 | .cout(pcout[83]), .sum(psum[83])); |
---|
| 1262 | mul_csa32 sc2_83_ ( .c(c1[82]), .b(a1c[66]), .a(a1s[67]), |
---|
| 1263 | .cout(c2[83]), .sum(s2[83])); |
---|
| 1264 | mul_csa32 sc2_19_ ( .c(a0c[18]), .b(a0s[19]), .a(s1[19]), |
---|
| 1265 | .cout(c2[19]), .sum(s2[19])); |
---|
| 1266 | mul_csa32 sc2_18_ ( .c(a0c[17]), .b(a0s[18]), .a(s1[18]), |
---|
| 1267 | .cout(c2[18]), .sum(s2[18])); |
---|
| 1268 | mul_csa32 sc2_17_ ( .c(a0c[16]), .b(a0s[17]), .a(s1[17]), |
---|
| 1269 | .cout(c2[17]), .sum(s2[17])); |
---|
| 1270 | mul_csa32 sc2_16_ ( .c(a0c[15]), .b(a0s[16]), .a(s1[16]), |
---|
| 1271 | .cout(c2[16]), .sum(s2[16])); |
---|
| 1272 | mul_csa32 sc2_15_ ( .c(a0c[14]), .b(a0s[15]), .a(s1[15]), |
---|
| 1273 | .cout(c2[15]), .sum(s2[15])); |
---|
| 1274 | mul_csa32 sc1_81_ ( .c(a0s[81]), .b(a1c[64]), .a(a1s[65]), |
---|
| 1275 | .cout(c1[81]), .sum(s1[81])); |
---|
| 1276 | mul_csa32 sc1_80_ ( .c(a0s[80]), .b(a1c[63]), .a(a1s[64]), |
---|
| 1277 | .cout(c1[80]), .sum(s1[80])); |
---|
| 1278 | mul_csa32 sc1_79_ ( .c(a0s[79]), .b(a1c[62]), .a(a1s[63]), |
---|
| 1279 | .cout(c1[79]), .sum(s1[79])); |
---|
| 1280 | mul_csa32 sc1_78_ ( .c(a0s[78]), .b(a1c[61]), .a(a1s[62]), |
---|
| 1281 | .cout(c1[78]), .sum(s1[78])); |
---|
| 1282 | mul_csa32 sc1_77_ ( .c(a0s[77]), .b(a1c[60]), .a(a1s[61]), |
---|
| 1283 | .cout(c1[77]), .sum(s1[77])); |
---|
| 1284 | mul_csa32 sc1_76_ ( .c(a0s[76]), .b(a1c[59]), .a(a1s[60]), |
---|
| 1285 | .cout(c1[76]), .sum(s1[76])); |
---|
| 1286 | mul_csa32 sc1_75_ ( .c(a0s[75]), .b(a1c[58]), .a(a1s[59]), |
---|
| 1287 | .cout(c1[75]), .sum(s1[75])); |
---|
| 1288 | mul_csa32 sc1_74_ ( .c(a0s[74]), .b(a1c[57]), .a(a1s[58]), |
---|
| 1289 | .cout(c1[74]), .sum(s1[74])); |
---|
| 1290 | mul_csa32 sc1_73_ ( .c(a0s[73]), .b(a1c[56]), .a(a1s[57]), |
---|
| 1291 | .cout(c1[73]), .sum(s1[73])); |
---|
| 1292 | mul_csa32 sc1_72_ ( .c(a0s[72]), .b(a1c[55]), .a(a1s[56]), |
---|
| 1293 | .cout(c1[72]), .sum(s1[72])); |
---|
| 1294 | mul_csa32 sc1_71_ ( .c(a0s[71]), .b(a1c[54]), .a(a1s[55]), |
---|
| 1295 | .cout(c1[71]), .sum(s1[71])); |
---|
| 1296 | mul_csa32 sc1_70_ ( .c(a0s[70]), .b(a1c[53]), .a(a1s[54]), |
---|
| 1297 | .cout(c1[70]), .sum(s1[70])); |
---|
| 1298 | mul_csa32 sc1_69_ ( .c(a0s[69]), .b(a1c[52]), .a(a1s[53]), |
---|
| 1299 | .cout(c1[69]), .sum(s1[69])); |
---|
| 1300 | mul_csa32 sc1_68_ ( .c(a0s[68]), .b(a1c[51]), .a(a1s[52]), |
---|
| 1301 | .cout(c1[68]), .sum(s1[68])); |
---|
| 1302 | mul_csa32 sc3_19_ ( .c(c2[18]), .b(c1[18]), .a(s2[19]), |
---|
| 1303 | .cout(c3[19]), .sum(s3[19])); |
---|
| 1304 | mul_csa32 sc3_18_ ( .c(c2[17]), .b(c1[17]), .a(s2[18]), |
---|
| 1305 | .cout(c3[18]), .sum(s3[18])); |
---|
| 1306 | mul_csa32 sc3_17_ ( .c(c2[16]), .b(c1[16]), .a(s2[17]), |
---|
| 1307 | .cout(c3[17]), .sum(s3[17])); |
---|
| 1308 | mul_csa32 sc3_16_ ( .c(c2[15]), .b(c1[15]), .a(s2[16]), |
---|
| 1309 | .cout(c3[16]), .sum(s3[16])); |
---|
| 1310 | mul_csa32 sc3_15_ ( .c(c2[14]), .b(c1[14]), .a(s2[15]), |
---|
| 1311 | .cout(c3[15]), .sum(s3[15])); |
---|
| 1312 | mul_csa32 sc1_82_ ( .c(a0c[81]), .b(a1c[65]), .a(a1s[66]), |
---|
| 1313 | .cout(c1[82]), .sum(s1[82])); |
---|
| 1314 | mul_csa32 acc_14_ ( .c(c2[13]), .sum(psum[14]), .cout(pcout[14]), |
---|
| 1315 | .a(ain[14]), .b(s2[14])); |
---|
| 1316 | mul_csa32 acc_13_ ( .c(c2[12]), .sum(psum[13]), .cout(pcout[13]), |
---|
| 1317 | .a(ain[13]), .b(s2[13])); |
---|
| 1318 | mul_csa32 acc_12_ ( .c(c2[11]), .sum(psum[12]), .cout(pcout[12]), |
---|
| 1319 | .a(ain[12]), .b(s2[12])); |
---|
| 1320 | mul_csa32 acc_11_ ( .c(c2[10]), .sum(psum[11]), .cout(pcout[11]), |
---|
| 1321 | .a(ain[11]), .b(s2[11])); |
---|
| 1322 | mul_csa32 acc_10_ ( .c(c2[9]), .sum(psum[10]), .cout(pcout[10]), |
---|
| 1323 | .a(ain[10]), .b(s2[10])); |
---|
| 1324 | mul_csa32 acc_9_ ( .c(c2[8]), .sum(psum[9]), .cout(pcout[9]), |
---|
| 1325 | .a(ain[9]), .b(s2[9])); |
---|
| 1326 | mul_csa32 acc_8_ ( .c(c2[7]), .sum(psum[8]), .cout(pcout[8]), |
---|
| 1327 | .a(ain[8]), .b(s2[8])); |
---|
| 1328 | mul_csa32 acc_7_ ( .c(c2[6]), .sum(psum[7]), .cout(pcout[7]), |
---|
| 1329 | .a(ain[7]), .b(s2[7])); |
---|
| 1330 | mul_csa32 acc_6_ ( .c(c2[5]), .sum(psum[6]), .cout(pcout[6]), |
---|
| 1331 | .a(ain[6]), .b(s2[6])); |
---|
| 1332 | mul_csa32 acc_5_ ( .c(c2[4]), .sum(psum[5]), .cout(pcout[5]), |
---|
| 1333 | .a(ain[5]), .b(s2[5])); |
---|
| 1334 | mul_csa32 sc2_67_ ( .c(a0c[66]), .b(c1[66]), .a(a0s[67]), |
---|
| 1335 | .cout(c2[67]), .sum(s2[67])); |
---|
| 1336 | mul_csa32 sc1_14_ ( .c(a0s[14]), .b(pc[45]), .a(ps[46]), |
---|
| 1337 | .cout(c1[14]), .sum(s1[14])); |
---|
| 1338 | mul_csa32 sc1_13_ ( .c(a0s[13]), .b(pc[44]), .a(ps[45]), |
---|
| 1339 | .cout(c1[13]), .sum(s1[13])); |
---|
| 1340 | mul_csa32 sc1_12_ ( .c(a0s[12]), .b(pc[43]), .a(ps[44]), |
---|
| 1341 | .cout(c1[12]), .sum(s1[12])); |
---|
| 1342 | mul_csa32 sc1_11_ ( .c(a0s[11]), .b(pc[42]), .a(ps[43]), |
---|
| 1343 | .cout(c1[11]), .sum(s1[11])); |
---|
| 1344 | mul_csa32 sc1_10_ ( .c(a0s[10]), .b(pc[41]), .a(ps[42]), |
---|
| 1345 | .cout(c1[10]), .sum(s1[10])); |
---|
| 1346 | mul_csa32 sc1_9_ ( .c(a0s[9]), .b(pc[40]), .a(ps[41]), .cout(c1[9]), |
---|
| 1347 | .sum(s1[9])); |
---|
| 1348 | mul_csa32 sc1_8_ ( .c(a0s[8]), .b(pc[39]), .a(ps[40]), .cout(c1[8]), |
---|
| 1349 | .sum(s1[8])); |
---|
| 1350 | mul_csa32 sc1_7_ ( .c(a0s[7]), .b(pc[38]), .a(ps[39]), .cout(c1[7]), |
---|
| 1351 | .sum(s1[7])); |
---|
| 1352 | mul_csa32 sc1_6_ ( .c(a0s[6]), .b(pc[37]), .a(ps[38]), .cout(c1[6]), |
---|
| 1353 | .sum(s1[6])); |
---|
| 1354 | mul_csa32 sc1_5_ ( .c(a0s[5]), .b(pc[36]), .a(ps[37]), .cout(c1[5]), |
---|
| 1355 | .sum(s1[5])); |
---|
| 1356 | mul_csa32 sc2_14_ ( .c(a0c[13]), .b(c1[13]), .a(s1[14]), |
---|
| 1357 | .cout(c2[14]), .sum(s2[14])); |
---|
| 1358 | mul_csa32 sc2_13_ ( .c(a0c[12]), .b(c1[12]), .a(s1[13]), |
---|
| 1359 | .cout(c2[13]), .sum(s2[13])); |
---|
| 1360 | mul_csa32 sc2_12_ ( .c(a0c[11]), .b(c1[11]), .a(s1[12]), |
---|
| 1361 | .cout(c2[12]), .sum(s2[12])); |
---|
| 1362 | mul_csa32 sc2_11_ ( .c(a0c[10]), .b(c1[10]), .a(s1[11]), |
---|
| 1363 | .cout(c2[11]), .sum(s2[11])); |
---|
| 1364 | mul_csa32 sc2_10_ ( .c(a0c[9]), .b(c1[9]), .a(s1[10]), |
---|
| 1365 | .cout(c2[10]), .sum(s2[10])); |
---|
| 1366 | mul_csa32 sc2_9_ ( .c(a0c[8]), .b(c1[8]), .a(s1[9]), .cout(c2[9]), |
---|
| 1367 | .sum(s2[9])); |
---|
| 1368 | mul_csa32 sc2_8_ ( .c(a0c[7]), .b(c1[7]), .a(s1[8]), .cout(c2[8]), |
---|
| 1369 | .sum(s2[8])); |
---|
| 1370 | mul_csa32 sc2_7_ ( .c(a0c[6]), .b(c1[6]), .a(s1[7]), .cout(c2[7]), |
---|
| 1371 | .sum(s2[7])); |
---|
| 1372 | mul_csa32 sc2_6_ ( .c(a0c[5]), .b(c1[5]), .a(s1[6]), .cout(c2[6]), |
---|
| 1373 | .sum(s2[6])); |
---|
| 1374 | mul_csa32 sc2_5_ ( .c(a0c[4]), .b(c1[4]), .a(s1[5]), .cout(c2[5]), |
---|
| 1375 | .sum(s2[5])); |
---|
| 1376 | mul_csa32 sc2_82_ ( .c(c2[81]), .b(c1[81]), .a(s1[82]), |
---|
| 1377 | .cout(c2[82]), .sum(s2[82])); |
---|
| 1378 | mul_csa32 sc1_4_ ( .c(a0s[4]), .b(pc[35]), .a(ps[36]), .cout(c1[4]), |
---|
| 1379 | .sum(s1[4])); |
---|
| 1380 | mul_csa32 sc1_3_ ( .c(a0s[3]), .b(pc[34]), .a(ps[35]), .cout(c1[3]), |
---|
| 1381 | .sum(s1[3])); |
---|
| 1382 | mul_csa32 sc1_2_ ( .c(a0s[2]), .b(pc[33]), .a(ps[34]), .cout(c1[2]), |
---|
| 1383 | .sum(s1[2])); |
---|
| 1384 | mul_csa32 sc1_1_ ( .c(a0s[1]), .b(pc[32]), .a(ps[33]), .cout(c1[1]), |
---|
| 1385 | .sum(s1[1])); |
---|
| 1386 | mul_csa32 sc2_66_ ( .c(a0c[65]), .b(a0s[66]), .a(a1c[49]), |
---|
| 1387 | .cout(c2[66]), .sum(s2[66])); |
---|
| 1388 | mul_csa32 sc2_65_ ( .c(a0c[64]), .b(a0s[65]), .a(a1c[48]), |
---|
| 1389 | .cout(c2[65]), .sum(s2[65])); |
---|
| 1390 | mul_csa32 sc2_64_ ( .c(a0c[63]), .b(a0s[64]), .a(a1c[47]), |
---|
| 1391 | .cout(c2[64]), .sum(s2[64])); |
---|
| 1392 | mul_csa32 sc2_63_ ( .c(a0c[62]), .b(a0s[63]), .a(a1c[46]), |
---|
| 1393 | .cout(c2[63]), .sum(s2[63])); |
---|
| 1394 | mul_csa32 sc2_62_ ( .c(a0c[61]), .b(a0s[62]), .a(a1c[45]), |
---|
| 1395 | .cout(c2[62]), .sum(s2[62])); |
---|
| 1396 | mul_csa32 sc2_61_ ( .c(a0c[60]), .b(a0s[61]), .a(a1c[44]), |
---|
| 1397 | .cout(c2[61]), .sum(s2[61])); |
---|
| 1398 | mul_csa32 sc2_60_ ( .c(a0c[59]), .b(a0s[60]), .a(a1c[43]), |
---|
| 1399 | .cout(c2[60]), .sum(s2[60])); |
---|
| 1400 | mul_csa32 sc2_59_ ( .c(a0c[58]), .b(a0s[59]), .a(a1c[42]), |
---|
| 1401 | .cout(c2[59]), .sum(s2[59])); |
---|
| 1402 | mul_csa32 sc2_58_ ( .c(a0c[57]), .b(a0s[58]), .a(a1c[41]), |
---|
| 1403 | .cout(c2[58]), .sum(s2[58])); |
---|
| 1404 | mul_csa32 sc2_57_ ( .c(a0c[56]), .b(a0s[57]), .a(a1c[40]), |
---|
| 1405 | .cout(c2[57]), .sum(s2[57])); |
---|
| 1406 | mul_csa32 sc2_56_ ( .c(a0c[55]), .b(a0s[56]), .a(a1c[39]), |
---|
| 1407 | .cout(c2[56]), .sum(s2[56])); |
---|
| 1408 | mul_csa32 sc2_55_ ( .c(a0c[54]), .b(a0s[55]), .a(a1c[38]), |
---|
| 1409 | .cout(c2[55]), .sum(s2[55])); |
---|
| 1410 | mul_csa32 sc2_54_ ( .c(a0c[53]), .b(a0s[54]), .a(a1c[37]), |
---|
| 1411 | .cout(c2[54]), .sum(s2[54])); |
---|
| 1412 | mul_csa32 sc2_53_ ( .c(a0c[52]), .b(a0s[53]), .a(a1c[36]), |
---|
| 1413 | .cout(c2[53]), .sum(s2[53])); |
---|
| 1414 | mul_csa32 sc2_52_ ( .c(a0c[51]), .b(a0s[52]), .a(a1c[35]), |
---|
| 1415 | .cout(c2[52]), .sum(s2[52])); |
---|
| 1416 | mul_csa32 sc2_51_ ( .c(a0c[50]), .b(a0s[51]), .a(a1c[34]), |
---|
| 1417 | .cout(c2[51]), .sum(s2[51])); |
---|
| 1418 | mul_csa32 sc2_50_ ( .c(a0c[49]), .b(a0s[50]), .a(a1c[33]), |
---|
| 1419 | .cout(c2[50]), .sum(s2[50])); |
---|
| 1420 | mul_csa32 sc2_49_ ( .c(a0c[48]), .b(a0s[49]), .a(a1c[32]), |
---|
| 1421 | .cout(c2[49]), .sum(s2[49])); |
---|
| 1422 | mul_csa32 sc2_48_ ( .c(a0c[47]), .b(a0s[48]), .a(a1c[31]), |
---|
| 1423 | .cout(c2[48]), .sum(s2[48])); |
---|
| 1424 | mul_csa32 sc2_47_ ( .c(a0c[46]), .b(a0s[47]), .a(a1c[30]), |
---|
| 1425 | .cout(c2[47]), .sum(s2[47])); |
---|
| 1426 | mul_csa32 sc2_46_ ( .c(a0c[45]), .b(a0s[46]), .a(a1c[29]), |
---|
| 1427 | .cout(c2[46]), .sum(s2[46])); |
---|
| 1428 | mul_csa32 sc2_45_ ( .c(a0c[44]), .b(a0s[45]), .a(a1c[28]), |
---|
| 1429 | .cout(c2[45]), .sum(s2[45])); |
---|
| 1430 | mul_csa32 sc2_44_ ( .c(a0c[43]), .b(a0s[44]), .a(a1c[27]), |
---|
| 1431 | .cout(c2[44]), .sum(s2[44])); |
---|
| 1432 | mul_csa32 sc2_43_ ( .c(a0c[42]), .b(a0s[43]), .a(a1c[26]), |
---|
| 1433 | .cout(c2[43]), .sum(s2[43])); |
---|
| 1434 | mul_csa32 sc2_42_ ( .c(a0c[41]), .b(a0s[42]), .a(a1c[25]), |
---|
| 1435 | .cout(c2[42]), .sum(s2[42])); |
---|
| 1436 | mul_csa32 sc2_41_ ( .c(a0c[40]), .b(a0s[41]), .a(a1c[24]), |
---|
| 1437 | .cout(c2[41]), .sum(s2[41])); |
---|
| 1438 | mul_csa32 sc2_40_ ( .c(a0c[39]), .b(a0s[40]), .a(a1c[23]), |
---|
| 1439 | .cout(c2[40]), .sum(s2[40])); |
---|
| 1440 | mul_csa32 sc2_39_ ( .c(a0c[38]), .b(a0s[39]), .a(a1c[22]), |
---|
| 1441 | .cout(c2[39]), .sum(s2[39])); |
---|
| 1442 | mul_csa32 sc2_38_ ( .c(a0c[37]), .b(a0s[38]), .a(a1c[21]), |
---|
| 1443 | .cout(c2[38]), .sum(s2[38])); |
---|
| 1444 | mul_csa32 sc2_37_ ( .c(a0c[36]), .b(a0s[37]), .a(a1c[20]), |
---|
| 1445 | .cout(c2[37]), .sum(s2[37])); |
---|
| 1446 | mul_csa32 sc2_36_ ( .c(a0c[35]), .b(a0s[36]), .a(a1c[19]), |
---|
| 1447 | .cout(c2[36]), .sum(s2[36])); |
---|
| 1448 | mul_csa32 sc2_35_ ( .c(a0c[34]), .b(a0s[35]), .a(a1c[18]), |
---|
| 1449 | .cout(c2[35]), .sum(s2[35])); |
---|
| 1450 | mul_csa32 sc2_34_ ( .c(a0c[33]), .b(a0s[34]), .a(a1c[17]), |
---|
| 1451 | .cout(c2[34]), .sum(s2[34])); |
---|
| 1452 | mul_csa32 sc2_33_ ( .c(a0c[32]), .b(a0s[33]), .a(a1c[16]), |
---|
| 1453 | .cout(c2[33]), .sum(s2[33])); |
---|
| 1454 | mul_csa32 sc2_32_ ( .c(a0c[31]), .b(a0s[32]), .a(a1c[15]), |
---|
| 1455 | .cout(c2[32]), .sum(s2[32])); |
---|
| 1456 | mul_csa32 sc2_31_ ( .c(a0c[30]), .b(a0s[31]), .a(a1c[14]), |
---|
| 1457 | .cout(c2[31]), .sum(s2[31])); |
---|
| 1458 | mul_csa32 sc2_30_ ( .c(a0c[29]), .b(a0s[30]), .a(a1c[13]), |
---|
| 1459 | .cout(c2[30]), .sum(s2[30])); |
---|
| 1460 | mul_csa32 sc2_29_ ( .c(a0c[28]), .b(a0s[29]), .a(a1c[12]), |
---|
| 1461 | .cout(c2[29]), .sum(s2[29])); |
---|
| 1462 | mul_csa32 sc2_28_ ( .c(a0c[27]), .b(a0s[28]), .a(a1c[11]), |
---|
| 1463 | .cout(c2[28]), .sum(s2[28])); |
---|
| 1464 | mul_csa32 sc2_27_ ( .c(a0c[26]), .b(a0s[27]), .a(a1c[10]), |
---|
| 1465 | .cout(c2[27]), .sum(s2[27])); |
---|
| 1466 | mul_csa32 sc2_26_ ( .c(a0c[25]), .b(a0s[26]), .a(a1c[9]), |
---|
| 1467 | .cout(c2[26]), .sum(s2[26])); |
---|
| 1468 | mul_csa32 sc2_25_ ( .c(a0c[24]), .b(a0s[25]), .a(a1c[8]), |
---|
| 1469 | .cout(c2[25]), .sum(s2[25])); |
---|
| 1470 | mul_csa32 sc2_24_ ( .c(a0c[23]), .b(a0s[24]), .a(a1c[7]), |
---|
| 1471 | .cout(c2[24]), .sum(s2[24])); |
---|
| 1472 | mul_csa32 sc2_23_ ( .c(a0c[22]), .b(a0s[23]), .a(a1c[6]), |
---|
| 1473 | .cout(c2[23]), .sum(s2[23])); |
---|
| 1474 | mul_csa32 sc2_22_ ( .c(a0c[21]), .b(a0s[22]), .a(a1c[5]), |
---|
| 1475 | .cout(c2[22]), .sum(s2[22])); |
---|
| 1476 | mul_csa32 sc2_21_ ( .c(a0c[20]), .b(a0s[21]), .a(a1c[4]), |
---|
| 1477 | .cout(c2[21]), .sum(s2[21])); |
---|
| 1478 | mul_csa32 sc2_20_ ( .c(a0c[19]), .b(a0s[20]), .a(1'b0), |
---|
| 1479 | .cout(c2[20]), .sum(s2[20])); |
---|
| 1480 | mul_csa32 sc1_66_ ( .c(a1s[50]), .b(pc[97]), .a(ps[98]), |
---|
| 1481 | .cout(c1[66]), .sum(s1[66])); |
---|
| 1482 | mul_csa32 sc1_65_ ( .c(a1s[49]), .b(pc[96]), .a(ps[97]), |
---|
| 1483 | .cout(c1[65]), .sum(s1[65])); |
---|
| 1484 | mul_csa32 sc1_64_ ( .c(a1s[48]), .b(pc[95]), .a(ps[96]), |
---|
| 1485 | .cout(c1[64]), .sum(s1[64])); |
---|
| 1486 | mul_csa32 sc1_63_ ( .c(a1s[47]), .b(pc[94]), .a(ps[95]), |
---|
| 1487 | .cout(c1[63]), .sum(s1[63])); |
---|
| 1488 | mul_csa32 sc1_62_ ( .c(a1s[46]), .b(pc[93]), .a(ps[94]), |
---|
| 1489 | .cout(c1[62]), .sum(s1[62])); |
---|
| 1490 | mul_csa32 sc1_61_ ( .c(a1s[45]), .b(pc[92]), .a(ps[93]), |
---|
| 1491 | .cout(c1[61]), .sum(s1[61])); |
---|
| 1492 | mul_csa32 sc1_60_ ( .c(a1s[44]), .b(pc[91]), .a(ps[92]), |
---|
| 1493 | .cout(c1[60]), .sum(s1[60])); |
---|
| 1494 | mul_csa32 sc1_59_ ( .c(a1s[43]), .b(pc[90]), .a(ps[91]), |
---|
| 1495 | .cout(c1[59]), .sum(s1[59])); |
---|
| 1496 | mul_csa32 sc1_58_ ( .c(a1s[42]), .b(pc[89]), .a(ps[90]), |
---|
| 1497 | .cout(c1[58]), .sum(s1[58])); |
---|
| 1498 | mul_csa32 sc1_57_ ( .c(a1s[41]), .b(pc[88]), .a(ps[89]), |
---|
| 1499 | .cout(c1[57]), .sum(s1[57])); |
---|
| 1500 | mul_csa32 sc1_56_ ( .c(a1s[40]), .b(pc[87]), .a(ps[88]), |
---|
| 1501 | .cout(c1[56]), .sum(s1[56])); |
---|
| 1502 | mul_csa32 sc1_55_ ( .c(a1s[39]), .b(pc[86]), .a(ps[87]), |
---|
| 1503 | .cout(c1[55]), .sum(s1[55])); |
---|
| 1504 | mul_csa32 sc1_54_ ( .c(a1s[38]), .b(pc[85]), .a(ps[86]), |
---|
| 1505 | .cout(c1[54]), .sum(s1[54])); |
---|
| 1506 | mul_csa32 sc1_53_ ( .c(a1s[37]), .b(pc[84]), .a(ps[85]), |
---|
| 1507 | .cout(c1[53]), .sum(s1[53])); |
---|
| 1508 | mul_csa32 sc1_52_ ( .c(a1s[36]), .b(pc[83]), .a(ps[84]), |
---|
| 1509 | .cout(c1[52]), .sum(s1[52])); |
---|
| 1510 | mul_csa32 sc1_51_ ( .c(a1s[35]), .b(pc[82]), .a(ps[83]), |
---|
| 1511 | .cout(c1[51]), .sum(s1[51])); |
---|
| 1512 | mul_csa32 sc1_50_ ( .c(a1s[34]), .b(pc[81]), .a(ps[82]), |
---|
| 1513 | .cout(c1[50]), .sum(s1[50])); |
---|
| 1514 | mul_csa32 sc1_49_ ( .c(a1s[33]), .b(pc[80]), .a(ps[81]), |
---|
| 1515 | .cout(c1[49]), .sum(s1[49])); |
---|
| 1516 | mul_csa32 sc1_48_ ( .c(a1s[32]), .b(pc[79]), .a(ps[80]), |
---|
| 1517 | .cout(c1[48]), .sum(s1[48])); |
---|
| 1518 | mul_csa32 sc1_47_ ( .c(a1s[31]), .b(pc[78]), .a(ps[79]), |
---|
| 1519 | .cout(c1[47]), .sum(s1[47])); |
---|
| 1520 | mul_csa32 sc1_46_ ( .c(a1s[30]), .b(pc[77]), .a(ps[78]), |
---|
| 1521 | .cout(c1[46]), .sum(s1[46])); |
---|
| 1522 | mul_csa32 sc1_45_ ( .c(a1s[29]), .b(pc[76]), .a(ps[77]), |
---|
| 1523 | .cout(c1[45]), .sum(s1[45])); |
---|
| 1524 | mul_csa32 sc1_44_ ( .c(a1s[28]), .b(pc[75]), .a(ps[76]), |
---|
| 1525 | .cout(c1[44]), .sum(s1[44])); |
---|
| 1526 | mul_csa32 sc1_43_ ( .c(a1s[27]), .b(pc[74]), .a(ps[75]), |
---|
| 1527 | .cout(c1[43]), .sum(s1[43])); |
---|
| 1528 | mul_csa32 sc1_42_ ( .c(a1s[26]), .b(pc[73]), .a(ps[74]), |
---|
| 1529 | .cout(c1[42]), .sum(s1[42])); |
---|
| 1530 | mul_csa32 sc1_41_ ( .c(a1s[25]), .b(pc[72]), .a(ps[73]), |
---|
| 1531 | .cout(c1[41]), .sum(s1[41])); |
---|
| 1532 | mul_csa32 sc1_40_ ( .c(a1s[24]), .b(pc[71]), .a(ps[72]), |
---|
| 1533 | .cout(c1[40]), .sum(s1[40])); |
---|
| 1534 | mul_csa32 sc1_39_ ( .c(a1s[23]), .b(pc[70]), .a(ps[71]), |
---|
| 1535 | .cout(c1[39]), .sum(s1[39])); |
---|
| 1536 | mul_csa32 sc1_38_ ( .c(a1s[22]), .b(pc[69]), .a(ps[70]), |
---|
| 1537 | .cout(c1[38]), .sum(s1[38])); |
---|
| 1538 | mul_csa32 sc1_37_ ( .c(a1s[21]), .b(pc[68]), .a(ps[69]), |
---|
| 1539 | .cout(c1[37]), .sum(s1[37])); |
---|
| 1540 | mul_csa32 sc1_36_ ( .c(a1s[20]), .b(pc[67]), .a(ps[68]), |
---|
| 1541 | .cout(c1[36]), .sum(s1[36])); |
---|
| 1542 | mul_csa32 sc1_35_ ( .c(a1s[19]), .b(pc[66]), .a(ps[67]), |
---|
| 1543 | .cout(c1[35]), .sum(s1[35])); |
---|
| 1544 | mul_csa32 sc1_34_ ( .c(a1s[18]), .b(pc[65]), .a(ps[66]), |
---|
| 1545 | .cout(c1[34]), .sum(s1[34])); |
---|
| 1546 | mul_csa32 sc1_33_ ( .c(a1s[17]), .b(pc[64]), .a(ps[65]), |
---|
| 1547 | .cout(c1[33]), .sum(s1[33])); |
---|
| 1548 | mul_csa32 sc1_32_ ( .c(a1s[16]), .b(pc[63]), .a(ps[64]), |
---|
| 1549 | .cout(c1[32]), .sum(s1[32])); |
---|
| 1550 | mul_csa32 sc1_31_ ( .c(a1s[15]), .b(pc[62]), .a(ps[63]), |
---|
| 1551 | .cout(c1[31]), .sum(s1[31])); |
---|
| 1552 | mul_csa32 sc1_30_ ( .c(a1s[14]), .b(pc[61]), .a(ps[62]), |
---|
| 1553 | .cout(c1[30]), .sum(s1[30])); |
---|
| 1554 | mul_csa32 sc1_29_ ( .c(a1s[13]), .b(pc[60]), .a(ps[61]), |
---|
| 1555 | .cout(c1[29]), .sum(s1[29])); |
---|
| 1556 | mul_csa32 sc1_28_ ( .c(a1s[12]), .b(pc[59]), .a(ps[60]), |
---|
| 1557 | .cout(c1[28]), .sum(s1[28])); |
---|
| 1558 | mul_csa32 sc1_27_ ( .c(a1s[11]), .b(pc[58]), .a(ps[59]), |
---|
| 1559 | .cout(c1[27]), .sum(s1[27])); |
---|
| 1560 | mul_csa32 sc1_26_ ( .c(a1s[10]), .b(pc[57]), .a(ps[58]), |
---|
| 1561 | .cout(c1[26]), .sum(s1[26])); |
---|
| 1562 | mul_csa32 sc1_25_ ( .c(a1s[9]), .b(pc[56]), .a(ps[57]), |
---|
| 1563 | .cout(c1[25]), .sum(s1[25])); |
---|
| 1564 | mul_csa32 sc1_24_ ( .c(a1s[8]), .b(pc[55]), .a(ps[56]), |
---|
| 1565 | .cout(c1[24]), .sum(s1[24])); |
---|
| 1566 | mul_csa32 sc1_23_ ( .c(a1s[7]), .b(pc[54]), .a(ps[55]), |
---|
| 1567 | .cout(c1[23]), .sum(s1[23])); |
---|
| 1568 | mul_csa32 sc1_22_ ( .c(a1s[6]), .b(pc[53]), .a(ps[54]), |
---|
| 1569 | .cout(c1[22]), .sum(s1[22])); |
---|
| 1570 | mul_csa32 sc1_21_ ( .c(a1s[5]), .b(pc[52]), .a(ps[53]), |
---|
| 1571 | .cout(c1[21]), .sum(s1[21])); |
---|
| 1572 | mul_csa32 sc1_20_ ( .c(a1s[4]), .b(pc[51]), .a(ps[52]), |
---|
| 1573 | .cout(c1[20]), .sum(s1[20])); |
---|
| 1574 | mul_csa32 sc2_81_ ( .c(a0c[80]), .b(c1[80]), .a(s1[81]), |
---|
| 1575 | .cout(c2[81]), .sum(s2[81])); |
---|
| 1576 | mul_csa32 sc2_80_ ( .c(a0c[79]), .b(c1[79]), .a(s1[80]), |
---|
| 1577 | .cout(c2[80]), .sum(s2[80])); |
---|
| 1578 | mul_csa32 sc2_79_ ( .c(a0c[78]), .b(c1[78]), .a(s1[79]), |
---|
| 1579 | .cout(c2[79]), .sum(s2[79])); |
---|
| 1580 | mul_csa32 sc2_78_ ( .c(a0c[77]), .b(c1[77]), .a(s1[78]), |
---|
| 1581 | .cout(c2[78]), .sum(s2[78])); |
---|
| 1582 | mul_csa32 sc2_77_ ( .c(a0c[76]), .b(c1[76]), .a(s1[77]), |
---|
| 1583 | .cout(c2[77]), .sum(s2[77])); |
---|
| 1584 | mul_csa32 sc2_76_ ( .c(a0c[75]), .b(c1[75]), .a(s1[76]), |
---|
| 1585 | .cout(c2[76]), .sum(s2[76])); |
---|
| 1586 | mul_csa32 sc2_75_ ( .c(a0c[74]), .b(c1[74]), .a(s1[75]), |
---|
| 1587 | .cout(c2[75]), .sum(s2[75])); |
---|
| 1588 | mul_csa32 sc2_74_ ( .c(a0c[73]), .b(c1[73]), .a(s1[74]), |
---|
| 1589 | .cout(c2[74]), .sum(s2[74])); |
---|
| 1590 | mul_csa32 sc2_73_ ( .c(a0c[72]), .b(c1[72]), .a(s1[73]), |
---|
| 1591 | .cout(c2[73]), .sum(s2[73])); |
---|
| 1592 | mul_csa32 sc2_72_ ( .c(a0c[71]), .b(c1[71]), .a(s1[72]), |
---|
| 1593 | .cout(c2[72]), .sum(s2[72])); |
---|
| 1594 | mul_csa32 sc2_71_ ( .c(a0c[70]), .b(c1[70]), .a(s1[71]), |
---|
| 1595 | .cout(c2[71]), .sum(s2[71])); |
---|
| 1596 | mul_csa32 sc2_70_ ( .c(a0c[69]), .b(c1[69]), .a(s1[70]), |
---|
| 1597 | .cout(c2[70]), .sum(s2[70])); |
---|
| 1598 | mul_csa32 sc2_69_ ( .c(a0c[68]), .b(c1[68]), .a(s1[69]), |
---|
| 1599 | .cout(c2[69]), .sum(s2[69])); |
---|
| 1600 | mul_csa32 sc2_68_ ( .c(a0c[67]), .b(c1[67]), .a(s1[68]), |
---|
| 1601 | .cout(c2[68]), .sum(s2[68])); |
---|
| 1602 | mul_csa32 acc_19_ ( .c(c3[18]), .b(s3[19]), .a(ain[19]), |
---|
| 1603 | .cout(pcout[19]), .sum(psum[19])); |
---|
| 1604 | mul_csa32 acc_18_ ( .c(c3[17]), .b(s3[18]), .a(ain[18]), |
---|
| 1605 | .cout(pcout[18]), .sum(psum[18])); |
---|
| 1606 | mul_csa32 acc_17_ ( .c(c3[16]), .b(s3[17]), .a(ain[17]), |
---|
| 1607 | .cout(pcout[17]), .sum(psum[17])); |
---|
| 1608 | mul_csa32 acc_16_ ( .c(c3[15]), .b(s3[16]), .a(ain[16]), |
---|
| 1609 | .cout(pcout[16]), .sum(psum[16])); |
---|
| 1610 | mul_csa32 acc_15_ ( .c(1'b0), .b(s3[15]), .a(ain[15]), |
---|
| 1611 | .cout(pcout[15]), .sum(psum[15])); |
---|
| 1612 | mul_csa32 sc1_0_ ( .c(a0s[0]), .sum(s1[0]), .cout(c1[0]), |
---|
| 1613 | .a(ps[32]), .b(pc[31])); |
---|
| 1614 | mul_csa32 sc1_67_ ( .c(a1c[50]), .b(pc[98]), .a(a1s[51]), |
---|
| 1615 | .cout(c1[67]), .sum(s1[67])); |
---|
| 1616 | mul_ha acc_0_ ( .sum(psum[0]), .cout(pcout[0]), .a(ain[0]), |
---|
| 1617 | .b(s2[0])); |
---|
| 1618 | mul_ha sc3_98_ ( .sum(psum[98]), .cout(pcout[98]), .a(bot), |
---|
| 1619 | .b(a1c[81])); |
---|
| 1620 | mul_ha sc2_96_ ( .b(a1c[79]), .a(a1s[80]), .cout(c2[96]), |
---|
| 1621 | .sum(s2[96])); |
---|
| 1622 | mul_ha sc2_95_ ( .b(a1c[78]), .a(a1s[79]), .cout(c2[95]), |
---|
| 1623 | .sum(s2[95])); |
---|
| 1624 | mul_ha sc2_94_ ( .b(a1c[77]), .a(a1s[78]), .cout(c2[94]), |
---|
| 1625 | .sum(s2[94])); |
---|
| 1626 | mul_ha sc2_93_ ( .b(a1c[76]), .a(a1s[77]), .cout(c2[93]), |
---|
| 1627 | .sum(s2[93])); |
---|
| 1628 | mul_ha sc2_92_ ( .b(a1c[75]), .a(a1s[76]), .cout(c2[92]), |
---|
| 1629 | .sum(s2[92])); |
---|
| 1630 | mul_ha sc2_91_ ( .b(a1c[74]), .a(a1s[75]), .cout(c2[91]), |
---|
| 1631 | .sum(s2[91])); |
---|
| 1632 | mul_ha sc2_90_ ( .b(a1c[73]), .a(a1s[74]), .cout(c2[90]), |
---|
| 1633 | .sum(s2[90])); |
---|
| 1634 | mul_ha sc2_89_ ( .b(a1c[72]), .a(a1s[73]), .cout(c2[89]), |
---|
| 1635 | .sum(s2[89])); |
---|
| 1636 | mul_ha sc2_88_ ( .b(a1c[71]), .a(a1s[72]), .cout(c2[88]), |
---|
| 1637 | .sum(s2[88])); |
---|
| 1638 | mul_ha sc2_87_ ( .b(a1c[70]), .a(a1s[71]), .cout(c2[87]), |
---|
| 1639 | .sum(s2[87])); |
---|
| 1640 | mul_ha sc2_86_ ( .b(a1c[69]), .a(a1s[70]), .cout(c2[86]), |
---|
| 1641 | .sum(s2[86])); |
---|
| 1642 | mul_ha sc2_85_ ( .b(a1c[68]), .a(a1s[69]), .cout(c2[85]), |
---|
| 1643 | .sum(s2[85])); |
---|
| 1644 | mul_ha sc2_84_ ( .b(a1c[67]), .a(a1s[68]), .cout(c2[84]), |
---|
| 1645 | .sum(s2[84])); |
---|
| 1646 | mul_ha sc3_81_ ( .b(c2[80]), .a(s2[81]), .cout(c3[81]), |
---|
| 1647 | .sum(s3[81])); |
---|
| 1648 | mul_ha sc3_80_ ( .b(c2[79]), .a(s2[80]), .cout(c3[80]), |
---|
| 1649 | .sum(s3[80])); |
---|
| 1650 | mul_ha sc3_79_ ( .b(c2[78]), .a(s2[79]), .cout(c3[79]), |
---|
| 1651 | .sum(s3[79])); |
---|
| 1652 | mul_ha sc3_78_ ( .b(c2[77]), .a(s2[78]), .cout(c3[78]), |
---|
| 1653 | .sum(s3[78])); |
---|
| 1654 | mul_ha sc3_77_ ( .b(c2[76]), .a(s2[77]), .cout(c3[77]), |
---|
| 1655 | .sum(s3[77])); |
---|
| 1656 | mul_ha sc3_76_ ( .b(c2[75]), .a(s2[76]), .cout(c3[76]), |
---|
| 1657 | .sum(s3[76])); |
---|
| 1658 | mul_ha sc3_75_ ( .b(c2[74]), .a(s2[75]), .cout(c3[75]), |
---|
| 1659 | .sum(s3[75])); |
---|
| 1660 | mul_ha sc3_74_ ( .b(c2[73]), .a(s2[74]), .cout(c3[74]), |
---|
| 1661 | .sum(s3[74])); |
---|
| 1662 | mul_ha sc3_73_ ( .b(c2[72]), .a(s2[73]), .cout(c3[73]), |
---|
| 1663 | .sum(s3[73])); |
---|
| 1664 | mul_ha sc3_72_ ( .b(c2[71]), .a(s2[72]), .cout(c3[72]), |
---|
| 1665 | .sum(s3[72])); |
---|
| 1666 | mul_ha sc3_71_ ( .b(c2[70]), .a(s2[71]), .cout(c3[71]), |
---|
| 1667 | .sum(s3[71])); |
---|
| 1668 | mul_ha sc3_70_ ( .b(c2[69]), .a(s2[70]), .cout(c3[70]), |
---|
| 1669 | .sum(s3[70])); |
---|
| 1670 | mul_ha sc3_69_ ( .b(c2[68]), .a(s2[69]), .cout(c3[69]), |
---|
| 1671 | .sum(s3[69])); |
---|
| 1672 | mul_ha accx2 ( .sum(psumx2), .cout(pcoutx2), .a(ainx2), .b(s1x2)); |
---|
| 1673 | mul_ha sc2_4_ ( .sum(s2[4]), .cout(c2[4]), .a(s1[4]), .b(c1[3])); |
---|
| 1674 | mul_ha sc2_3_ ( .sum(s2[3]), .cout(c2[3]), .a(s1[3]), .b(c1[2])); |
---|
| 1675 | mul_ha sc2_2_ ( .sum(s2[2]), .cout(c2[2]), .a(s1[2]), .b(c1[1])); |
---|
| 1676 | mul_ha sc2_1_ ( .sum(s2[1]), .cout(c2[1]), .a(s1[1]), .b(c1[0])); |
---|
| 1677 | mul_ha sc2_0_ ( .sum(s2[0]), .cout(c2[0]), .a(s1[0]), .b(c1x2)); |
---|
| 1678 | mul_ha sc1x2 ( .sum(s1x2), .cout(c1x2), .a(ps[31]), .b(pc[30])); |
---|
| 1679 | |
---|
| 1680 | endmodule //mul_array2 |
---|
| 1681 | |
---|
| 1682 | module mul_csa32 (sum, cout, a, b, c); |
---|
| 1683 | |
---|
| 1684 | output sum, cout; |
---|
| 1685 | input a, b, c; |
---|
| 1686 | |
---|
| 1687 | wire x, y0, y1, y2; |
---|
| 1688 | |
---|
| 1689 | assign x = a ^ b; |
---|
| 1690 | assign sum = c ^ x; |
---|
| 1691 | |
---|
| 1692 | assign y0 = a & b ; |
---|
| 1693 | assign y1 = a & c ; |
---|
| 1694 | assign y2 = b & c ; |
---|
| 1695 | |
---|
| 1696 | assign cout = y0 | y1 | y2 ; |
---|
| 1697 | |
---|
| 1698 | endmodule //mul_csa32 |
---|
| 1699 | |
---|
| 1700 | module mul_csa42 (sum, carry, cout, a, b, c, d, cin); |
---|
| 1701 | |
---|
| 1702 | output sum, carry, cout; |
---|
| 1703 | input a, b, c, d, cin; |
---|
| 1704 | |
---|
| 1705 | wire x, y, z; |
---|
| 1706 | |
---|
| 1707 | assign x = a ^ b; |
---|
| 1708 | assign y = c ^ d; |
---|
| 1709 | assign z = x ^ y; |
---|
| 1710 | |
---|
| 1711 | assign sum = z ^ cin ; |
---|
| 1712 | |
---|
| 1713 | assign carry = (b & ~z) | (cin & z); |
---|
| 1714 | |
---|
| 1715 | assign cout = (d & ~y) | (a & y); |
---|
| 1716 | |
---|
| 1717 | endmodule // mul_csa42 |
---|
| 1718 | |
---|
| 1719 | module mul_ha ( cout, sum, a, b ); |
---|
| 1720 | output cout, sum; |
---|
| 1721 | input a, b; |
---|
| 1722 | |
---|
| 1723 | assign sum = a ^ b; |
---|
| 1724 | assign cout = a & b ; |
---|
| 1725 | |
---|
| 1726 | endmodule //mul_ha |
---|
| 1727 | |
---|
| 1728 | module mul_negen ( n0, n1, b ); |
---|
| 1729 | output n0, n1; |
---|
| 1730 | input [2:0] b; |
---|
| 1731 | |
---|
| 1732 | assign n0 = b[2] & b[1] & ~b[0] ; |
---|
| 1733 | assign n1 = b[2] & b[1] & b[0] ; |
---|
| 1734 | |
---|
| 1735 | endmodule //mul_negen |
---|
| 1736 | |
---|
| 1737 | module mul_ppgen3lsb4 (cout, p0_l, p1_l, sum, a, b0, b1 ); |
---|
| 1738 | |
---|
| 1739 | output p0_l, p1_l; |
---|
| 1740 | output [3:0] sum; |
---|
| 1741 | output [3:1] cout; |
---|
| 1742 | input [3:0] a; |
---|
| 1743 | input [2:0] b0; |
---|
| 1744 | input [2:0] b1; |
---|
| 1745 | |
---|
| 1746 | wire b0n, b0n_0, b0n_1, b1n_0, b1n_1; |
---|
| 1747 | wire p0_0, p0_1, p0_2, p0_3, p1_2, p1_3; |
---|
| 1748 | wire p0_l_0, p0_l_1, p0_l_2, p1_l_2; |
---|
| 1749 | |
---|
| 1750 | assign b0n = b0n_1 | (b0n_0 & p0_0) ; |
---|
| 1751 | assign sum[0] = b0n_0 ^ p0_0 ; |
---|
| 1752 | |
---|
| 1753 | mul_negen p0n ( .b(b0[2:0]), .n1(b0n_1), .n0(b0n_0)); |
---|
| 1754 | mul_negen p1n ( .b(b1[2:0]), .n1(b1n_1), .n0(b1n_0)); |
---|
| 1755 | mul_csa32 sc1_2_ ( .c(b1n_0), .sum(sum[2]), .cout(cout[2]), |
---|
| 1756 | .a(p0_2), .b(p1_2)); |
---|
| 1757 | mul_csa32 sc1_3_ ( .c(b1n_1), .sum(sum[3]), .cout(cout[3]), |
---|
| 1758 | .a(p0_3), .b(p1_3)); |
---|
| 1759 | mul_ha sc1_1_ ( .sum(sum[1]), .cout(cout[1]), .a(p0_1), |
---|
| 1760 | .b(b0n)); |
---|
| 1761 | mul_ppgen p0_3_ ( .pm1_l(p0_l_2), .p_l(p0_l), .b(b0[2:0]), .a(a[3]), |
---|
| 1762 | .z(p0_3)); |
---|
| 1763 | mul_ppgen p1_3_ ( .pm1_l(p1_l_2), .p_l(p1_l), .b(b1[2:0]), .a(a[1]), |
---|
| 1764 | .z(p1_3)); |
---|
| 1765 | mul_ppgen p0_2_ ( .pm1_l(p0_l_1), .p_l(p0_l_2), .b(b0[2:0]), |
---|
| 1766 | .a(a[2]), .z(p0_2)); |
---|
| 1767 | mul_ppgen p0_1_ ( .pm1_l(p0_l_0), .p_l(p0_l_1), .b(b0[2:0]), |
---|
| 1768 | .a(a[1]), .z(p0_1)); |
---|
| 1769 | mul_ppgen p0_0_ ( .pm1_l(1'b1), .p_l(p0_l_0), |
---|
| 1770 | .b(b0[2:0]), .a(a[0]), .z(p0_0)); |
---|
| 1771 | mul_ppgen p1_2_ ( .pm1_l(1'b1), .p_l(p1_l_2), |
---|
| 1772 | .b(b1[2:0]), .a(a[0]), .z(p1_2)); |
---|
| 1773 | |
---|
| 1774 | endmodule // mul_ppgen3lsb4 |
---|
| 1775 | |
---|
| 1776 | module mul_ppgen3sign ( cout, sum, am1, am2, am3, am4, b0, b1, b2, |
---|
| 1777 | bot, head, p0m1_l, p1m1_l, p2m1_l ); |
---|
| 1778 | input am1, am2, am3, am4; |
---|
| 1779 | input bot, head, p0m1_l, p1m1_l, p2m1_l; |
---|
| 1780 | output [5:0] sum; |
---|
| 1781 | output [4:0] cout; |
---|
| 1782 | input [2:0] b0; |
---|
| 1783 | input [2:0] b2; |
---|
| 1784 | input [2:0] b1; |
---|
| 1785 | |
---|
| 1786 | wire net37, net42, net075, net088, net0117; |
---|
| 1787 | wire net47, net073, net38, net0118, net078, net8, net15, net43, net48, net35; |
---|
| 1788 | wire p2_l_67, p2_l_66, p2_l_65, p2_l_64; |
---|
| 1789 | wire p1_l_65, p1_l_64; |
---|
| 1790 | |
---|
| 1791 | assign sum[5] = bot & net075 ; |
---|
| 1792 | assign net0117 = head & net088 ; |
---|
| 1793 | assign net37 = ~net0117 ; |
---|
| 1794 | assign net42 = head ^ net088 ; |
---|
| 1795 | |
---|
| 1796 | mul_ppgensign p0_64_ ( .b(b0[2:0]), .z(net47), .p_l(net088), |
---|
| 1797 | .pm1_l(p0m1_l)); |
---|
| 1798 | mul_ppgensign p2_68_ ( .pm1_l(p2_l_67), .b(b2[2:0]), .z(net073), |
---|
| 1799 | .p_l(net075)); |
---|
| 1800 | mul_ppgensign p1_66_ ( .pm1_l(p1_l_65), .b(b1[2:0]), .z(net38), |
---|
| 1801 | .p_l(net0118)); |
---|
| 1802 | mul_ha sc1_68_ ( .b(net073), .a(1'b1), .cout(cout[4]), |
---|
| 1803 | .sum(sum[4])); |
---|
| 1804 | mul_ppgen p2_67_ ( .pm1_l(p2_l_66), .b(b2[2:0]), .a(am1), .z(net078), |
---|
| 1805 | .p_l(p2_l_67)); |
---|
| 1806 | mul_ppgen p2_66_ ( .pm1_l(p2_l_65), .b(b2[2:0]), .a(am2), .z(net8), |
---|
| 1807 | .p_l(p2_l_66)); |
---|
| 1808 | mul_ppgen p2_65_ ( .pm1_l(p2_l_64), .p_l(p2_l_65), .b(b2[2:0]), |
---|
| 1809 | .a(am3), .z(net15)); |
---|
| 1810 | mul_ppgen p1_65_ ( .pm1_l(p1_l_64), .p_l(p1_l_65), .b(b1[2:0]), |
---|
| 1811 | .a(am1), .z(net43)); |
---|
| 1812 | mul_ppgen p1_64_ ( .pm1_l(p1m1_l), .p_l(p1_l_64), .b(b1[2:0]), |
---|
| 1813 | .a(am2), .z(net48)); |
---|
| 1814 | mul_ppgen p2_64_ ( .pm1_l(p2m1_l), .p_l(p2_l_64), .b(b2[2:0]), |
---|
| 1815 | .a(am4), .z(net35)); |
---|
| 1816 | mul_csa32 sc1_67_ ( .c(net078), .b(net0117), .a(net0118), |
---|
| 1817 | .cout(cout[3]), .sum(sum[3])); |
---|
| 1818 | mul_csa32 sc1_66_ ( .c(net8), .b(net37), .a(net38), .cout(cout[2]), |
---|
| 1819 | .sum(sum[2])); |
---|
| 1820 | mul_csa32 sc1_65_ ( .c(net15), .b(net42), .a(net43), .cout(cout[1]), |
---|
| 1821 | .sum(sum[1])); |
---|
| 1822 | mul_csa32 sc1_64_ ( .c(net35), .b(net47), .a(net48), .cout(cout[0]), |
---|
| 1823 | .sum(sum[0])); |
---|
| 1824 | |
---|
| 1825 | endmodule //mul_ppgen3sign |
---|
| 1826 | |
---|
| 1827 | module mul_ppgen3 ( cout, p0_l, p1_l, p2_l, sum, am2, am4, |
---|
| 1828 | a, b0, b1, b2, p0m1_l, p1m1_l, p2m1_l ); |
---|
| 1829 | output cout, p0_l, p1_l, p2_l, sum; |
---|
| 1830 | input am2, am4; |
---|
| 1831 | input a, p0m1_l, p1m1_l, p2m1_l; |
---|
| 1832 | input [2:0] b0; |
---|
| 1833 | input [2:0] b2; |
---|
| 1834 | input [2:0] b1; |
---|
| 1835 | |
---|
| 1836 | wire net046, net32, net043; |
---|
| 1837 | |
---|
| 1838 | mul_csa32 sc1 ( .a(net046), .b(net32), .cout(cout), .sum(sum), |
---|
| 1839 | .c(net043)); |
---|
| 1840 | mul_ppgen p2 ( .pm1_l(p2m1_l), .p_l(p2_l), .b(b2[2:0]), .a(am4), |
---|
| 1841 | .z(net043)); |
---|
| 1842 | mul_ppgen p1 ( .pm1_l(p1m1_l), .p_l(p1_l), .b(b1[2:0]), .a(am2), |
---|
| 1843 | .z(net046)); |
---|
| 1844 | mul_ppgen p0 ( .pm1_l(p0m1_l), .p_l(p0_l), .b(b0[2:0]), .a(a), |
---|
| 1845 | .z(net32)); |
---|
| 1846 | |
---|
| 1847 | endmodule // mul_ppgen3 |
---|
| 1848 | |
---|
| 1849 | module mul_ppgenrow3 ( cout, sum, a, b0, b1, b2, bot, head ); |
---|
| 1850 | |
---|
| 1851 | output [68:1] cout; |
---|
| 1852 | output [69:0] sum; |
---|
| 1853 | input [63:0] a; |
---|
| 1854 | input [2:0] b2; |
---|
| 1855 | input [2:0] b0; |
---|
| 1856 | input [2:0] b1; |
---|
| 1857 | input bot, head; |
---|
| 1858 | |
---|
| 1859 | // Buses in the design |
---|
| 1860 | wire [63:4] p2_l; |
---|
| 1861 | wire [63:3] p1_l; |
---|
| 1862 | wire [63:3] p0_l; |
---|
| 1863 | |
---|
| 1864 | mul_ppgen3sign I2 ( .am4(a[60]), .am3(a[61]), .am2(a[62]), |
---|
| 1865 | .am1(a[63]), .p2m1_l(p2_l[63]), .p1m1_l(p1_l[63]), |
---|
| 1866 | .p0m1_l(p0_l[63]), .b2(b2[2:0]), .head(head), .bot(bot), |
---|
| 1867 | .sum(sum[69:64]), .cout(cout[68:64]), .b1(b1[2:0]), .b0(b0[2:0])); |
---|
| 1868 | mul_ppgen3 I1_63_ ( .p2_l(p2_l[63]), .b2(b2[2:0]), |
---|
| 1869 | .am2(a[61]), .a(a[63]), .p2m1_l(p2_l[62]), |
---|
| 1870 | .p1m1_l(p1_l[62]), .p0m1_l(p0_l[62]), .am4(a[59]), .sum(sum[63]), |
---|
| 1871 | .cout(cout[63]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[63]), |
---|
| 1872 | .p0_l(p0_l[63])); |
---|
| 1873 | mul_ppgen3 I1_62_ ( .p2_l(p2_l[62]), .b2(b2[2:0]), |
---|
| 1874 | .am2(a[60]), .a(a[62]), .p2m1_l(p2_l[61]), |
---|
| 1875 | .p1m1_l(p1_l[61]), .p0m1_l(p0_l[61]), .am4(a[58]), .sum(sum[62]), |
---|
| 1876 | .cout(cout[62]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[62]), |
---|
| 1877 | .p0_l(p0_l[62])); |
---|
| 1878 | mul_ppgen3 I1_61_ ( .p2_l(p2_l[61]), .b2(b2[2:0]), |
---|
| 1879 | .am2(a[59]), .a(a[61]), .p2m1_l(p2_l[60]), |
---|
| 1880 | .p1m1_l(p1_l[60]), .p0m1_l(p0_l[60]), .am4(a[57]), .sum(sum[61]), |
---|
| 1881 | .cout(cout[61]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[61]), |
---|
| 1882 | .p0_l(p0_l[61])); |
---|
| 1883 | mul_ppgen3 I1_60_ ( .p2_l(p2_l[60]), .b2(b2[2:0]), |
---|
| 1884 | .am2(a[58]), .a(a[60]), .p2m1_l(p2_l[59]), |
---|
| 1885 | .p1m1_l(p1_l[59]), .p0m1_l(p0_l[59]), .am4(a[56]), .sum(sum[60]), |
---|
| 1886 | .cout(cout[60]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[60]), |
---|
| 1887 | .p0_l(p0_l[60])); |
---|
| 1888 | mul_ppgen3 I1_59_ ( .p2_l(p2_l[59]), .b2(b2[2:0]), |
---|
| 1889 | .am2(a[57]), .a(a[59]), .p2m1_l(p2_l[58]), |
---|
| 1890 | .p1m1_l(p1_l[58]), .p0m1_l(p0_l[58]), .am4(a[55]), .sum(sum[59]), |
---|
| 1891 | .cout(cout[59]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[59]), |
---|
| 1892 | .p0_l(p0_l[59])); |
---|
| 1893 | mul_ppgen3 I1_58_ ( .p2_l(p2_l[58]), .b2(b2[2:0]), |
---|
| 1894 | .am2(a[56]), .a(a[58]), .p2m1_l(p2_l[57]), |
---|
| 1895 | .p1m1_l(p1_l[57]), .p0m1_l(p0_l[57]), .am4(a[54]), .sum(sum[58]), |
---|
| 1896 | .cout(cout[58]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[58]), |
---|
| 1897 | .p0_l(p0_l[58])); |
---|
| 1898 | mul_ppgen3 I1_57_ ( .p2_l(p2_l[57]), .b2(b2[2:0]), |
---|
| 1899 | .am2(a[55]), .a(a[57]), .p2m1_l(p2_l[56]), |
---|
| 1900 | .p1m1_l(p1_l[56]), .p0m1_l(p0_l[56]), .am4(a[53]), .sum(sum[57]), |
---|
| 1901 | .cout(cout[57]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[57]), |
---|
| 1902 | .p0_l(p0_l[57])); |
---|
| 1903 | mul_ppgen3 I1_56_ ( .p2_l(p2_l[56]), .b2(b2[2:0]), |
---|
| 1904 | .am2(a[54]), .a(a[56]), .p2m1_l(p2_l[55]), |
---|
| 1905 | .p1m1_l(p1_l[55]), .p0m1_l(p0_l[55]), .am4(a[52]), .sum(sum[56]), |
---|
| 1906 | .cout(cout[56]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[56]), |
---|
| 1907 | .p0_l(p0_l[56])); |
---|
| 1908 | mul_ppgen3 I1_55_ ( .p2_l(p2_l[55]), .b2(b2[2:0]), |
---|
| 1909 | .am2(a[53]), .a(a[55]), .p2m1_l(p2_l[54]), |
---|
| 1910 | .p1m1_l(p1_l[54]), .p0m1_l(p0_l[54]), .am4(a[51]), .sum(sum[55]), |
---|
| 1911 | .cout(cout[55]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[55]), |
---|
| 1912 | .p0_l(p0_l[55])); |
---|
| 1913 | mul_ppgen3 I1_54_ ( .p2_l(p2_l[54]), .b2(b2[2:0]), |
---|
| 1914 | .am2(a[52]), .a(a[54]), .p2m1_l(p2_l[53]), |
---|
| 1915 | .p1m1_l(p1_l[53]), .p0m1_l(p0_l[53]), .am4(a[50]), .sum(sum[54]), |
---|
| 1916 | .cout(cout[54]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[54]), |
---|
| 1917 | .p0_l(p0_l[54])); |
---|
| 1918 | mul_ppgen3 I1_53_ ( .p2_l(p2_l[53]), .b2(b2[2:0]), |
---|
| 1919 | .am2(a[51]), .a(a[53]), .p2m1_l(p2_l[52]), |
---|
| 1920 | .p1m1_l(p1_l[52]), .p0m1_l(p0_l[52]), .am4(a[49]), .sum(sum[53]), |
---|
| 1921 | .cout(cout[53]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[53]), |
---|
| 1922 | .p0_l(p0_l[53])); |
---|
| 1923 | mul_ppgen3 I1_52_ ( .p2_l(p2_l[52]), .b2(b2[2:0]), |
---|
| 1924 | .am2(a[50]), .a(a[52]), .p2m1_l(p2_l[51]), |
---|
| 1925 | .p1m1_l(p1_l[51]), .p0m1_l(p0_l[51]), .am4(a[48]), .sum(sum[52]), |
---|
| 1926 | .cout(cout[52]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[52]), |
---|
| 1927 | .p0_l(p0_l[52])); |
---|
| 1928 | mul_ppgen3 I1_51_ ( .p2_l(p2_l[51]), .b2(b2[2:0]), |
---|
| 1929 | .am2(a[49]), .a(a[51]), .p2m1_l(p2_l[50]), |
---|
| 1930 | .p1m1_l(p1_l[50]), .p0m1_l(p0_l[50]), .am4(a[47]), .sum(sum[51]), |
---|
| 1931 | .cout(cout[51]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[51]), |
---|
| 1932 | .p0_l(p0_l[51])); |
---|
| 1933 | mul_ppgen3 I1_50_ ( .p2_l(p2_l[50]), .b2(b2[2:0]), |
---|
| 1934 | .am2(a[48]), .a(a[50]), .p2m1_l(p2_l[49]), |
---|
| 1935 | .p1m1_l(p1_l[49]), .p0m1_l(p0_l[49]), .am4(a[46]), .sum(sum[50]), |
---|
| 1936 | .cout(cout[50]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[50]), |
---|
| 1937 | .p0_l(p0_l[50])); |
---|
| 1938 | mul_ppgen3 I1_49_ ( .p2_l(p2_l[49]), .b2(b2[2:0]), |
---|
| 1939 | .am2(a[47]), .a(a[49]), .p2m1_l(p2_l[48]), |
---|
| 1940 | .p1m1_l(p1_l[48]), .p0m1_l(p0_l[48]), .am4(a[45]), .sum(sum[49]), |
---|
| 1941 | .cout(cout[49]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[49]), |
---|
| 1942 | .p0_l(p0_l[49])); |
---|
| 1943 | mul_ppgen3 I1_48_ ( .p2_l(p2_l[48]), .b2(b2[2:0]), |
---|
| 1944 | .am2(a[46]), .a(a[48]), .p2m1_l(p2_l[47]), |
---|
| 1945 | .p1m1_l(p1_l[47]), .p0m1_l(p0_l[47]), .am4(a[44]), .sum(sum[48]), |
---|
| 1946 | .cout(cout[48]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[48]), |
---|
| 1947 | .p0_l(p0_l[48])); |
---|
| 1948 | mul_ppgen3 I1_47_ ( .p2_l(p2_l[47]), .b2(b2[2:0]), |
---|
| 1949 | .am2(a[45]), .a(a[47]), .p2m1_l(p2_l[46]), |
---|
| 1950 | .p1m1_l(p1_l[46]), .p0m1_l(p0_l[46]), .am4(a[43]), .sum(sum[47]), |
---|
| 1951 | .cout(cout[47]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[47]), |
---|
| 1952 | .p0_l(p0_l[47])); |
---|
| 1953 | mul_ppgen3 I1_46_ ( .p2_l(p2_l[46]), .b2(b2[2:0]), |
---|
| 1954 | .am2(a[44]), .a(a[46]), .p2m1_l(p2_l[45]), |
---|
| 1955 | .p1m1_l(p1_l[45]), .p0m1_l(p0_l[45]), .am4(a[42]), .sum(sum[46]), |
---|
| 1956 | .cout(cout[46]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[46]), |
---|
| 1957 | .p0_l(p0_l[46])); |
---|
| 1958 | mul_ppgen3 I1_45_ ( .p2_l(p2_l[45]), .b2(b2[2:0]), |
---|
| 1959 | .am2(a[43]), .a(a[45]), .p2m1_l(p2_l[44]), |
---|
| 1960 | .p1m1_l(p1_l[44]), .p0m1_l(p0_l[44]), .am4(a[41]), .sum(sum[45]), |
---|
| 1961 | .cout(cout[45]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[45]), |
---|
| 1962 | .p0_l(p0_l[45])); |
---|
| 1963 | mul_ppgen3 I1_44_ ( .p2_l(p2_l[44]), .b2(b2[2:0]), |
---|
| 1964 | .am2(a[42]), .a(a[44]), .p2m1_l(p2_l[43]), |
---|
| 1965 | .p1m1_l(p1_l[43]), .p0m1_l(p0_l[43]), .am4(a[40]), .sum(sum[44]), |
---|
| 1966 | .cout(cout[44]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[44]), |
---|
| 1967 | .p0_l(p0_l[44])); |
---|
| 1968 | mul_ppgen3 I1_43_ ( .p2_l(p2_l[43]), .b2(b2[2:0]), |
---|
| 1969 | .am2(a[41]), .a(a[43]), .p2m1_l(p2_l[42]), |
---|
| 1970 | .p1m1_l(p1_l[42]), .p0m1_l(p0_l[42]), .am4(a[39]), .sum(sum[43]), |
---|
| 1971 | .cout(cout[43]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[43]), |
---|
| 1972 | .p0_l(p0_l[43])); |
---|
| 1973 | mul_ppgen3 I1_42_ ( .p2_l(p2_l[42]), .b2(b2[2:0]), |
---|
| 1974 | .am2(a[40]), .a(a[42]), .p2m1_l(p2_l[41]), |
---|
| 1975 | .p1m1_l(p1_l[41]), .p0m1_l(p0_l[41]), .am4(a[38]), .sum(sum[42]), |
---|
| 1976 | .cout(cout[42]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[42]), |
---|
| 1977 | .p0_l(p0_l[42])); |
---|
| 1978 | mul_ppgen3 I1_41_ ( .p2_l(p2_l[41]), .b2(b2[2:0]), |
---|
| 1979 | .am2(a[39]), .a(a[41]), .p2m1_l(p2_l[40]), |
---|
| 1980 | .p1m1_l(p1_l[40]), .p0m1_l(p0_l[40]), .am4(a[37]), .sum(sum[41]), |
---|
| 1981 | .cout(cout[41]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[41]), |
---|
| 1982 | .p0_l(p0_l[41])); |
---|
| 1983 | mul_ppgen3 I1_40_ ( .p2_l(p2_l[40]), .b2(b2[2:0]), |
---|
| 1984 | .am2(a[38]), .a(a[40]), .p2m1_l(p2_l[39]), |
---|
| 1985 | .p1m1_l(p1_l[39]), .p0m1_l(p0_l[39]), .am4(a[36]), .sum(sum[40]), |
---|
| 1986 | .cout(cout[40]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[40]), |
---|
| 1987 | .p0_l(p0_l[40])); |
---|
| 1988 | mul_ppgen3 I1_39_ ( .p2_l(p2_l[39]), .b2(b2[2:0]), |
---|
| 1989 | .am2(a[37]), .a(a[39]), .p2m1_l(p2_l[38]), |
---|
| 1990 | .p1m1_l(p1_l[38]), .p0m1_l(p0_l[38]), .am4(a[35]), .sum(sum[39]), |
---|
| 1991 | .cout(cout[39]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[39]), |
---|
| 1992 | .p0_l(p0_l[39])); |
---|
| 1993 | mul_ppgen3 I1_38_ ( .p2_l(p2_l[38]), .b2(b2[2:0]), |
---|
| 1994 | .am2(a[36]), .a(a[38]), .p2m1_l(p2_l[37]), |
---|
| 1995 | .p1m1_l(p1_l[37]), .p0m1_l(p0_l[37]), .am4(a[34]), .sum(sum[38]), |
---|
| 1996 | .cout(cout[38]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[38]), |
---|
| 1997 | .p0_l(p0_l[38])); |
---|
| 1998 | mul_ppgen3 I1_37_ ( .p2_l(p2_l[37]), .b2(b2[2:0]), |
---|
| 1999 | .am2(a[35]), .a(a[37]), .p2m1_l(p2_l[36]), |
---|
| 2000 | .p1m1_l(p1_l[36]), .p0m1_l(p0_l[36]), .am4(a[33]), .sum(sum[37]), |
---|
| 2001 | .cout(cout[37]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[37]), |
---|
| 2002 | .p0_l(p0_l[37])); |
---|
| 2003 | mul_ppgen3 I1_36_ ( .p2_l(p2_l[36]), .b2(b2[2:0]), |
---|
| 2004 | .am2(a[34]), .a(a[36]), .p2m1_l(p2_l[35]), |
---|
| 2005 | .p1m1_l(p1_l[35]), .p0m1_l(p0_l[35]), .am4(a[32]), .sum(sum[36]), |
---|
| 2006 | .cout(cout[36]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[36]), |
---|
| 2007 | .p0_l(p0_l[36])); |
---|
| 2008 | mul_ppgen3 I1_35_ ( .p2_l(p2_l[35]), .b2(b2[2:0]), |
---|
| 2009 | .am2(a[33]), .a(a[35]), .p2m1_l(p2_l[34]), |
---|
| 2010 | .p1m1_l(p1_l[34]), .p0m1_l(p0_l[34]), .am4(a[31]), .sum(sum[35]), |
---|
| 2011 | .cout(cout[35]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[35]), |
---|
| 2012 | .p0_l(p0_l[35])); |
---|
| 2013 | mul_ppgen3 I1_34_ ( .p2_l(p2_l[34]), .b2(b2[2:0]), |
---|
| 2014 | .am2(a[32]), .a(a[34]), .p2m1_l(p2_l[33]), |
---|
| 2015 | .p1m1_l(p1_l[33]), .p0m1_l(p0_l[33]), .am4(a[30]), .sum(sum[34]), |
---|
| 2016 | .cout(cout[34]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[34]), |
---|
| 2017 | .p0_l(p0_l[34])); |
---|
| 2018 | mul_ppgen3 I1_33_ ( .p2_l(p2_l[33]), .b2(b2[2:0]), |
---|
| 2019 | .am2(a[31]), .a(a[33]), .p2m1_l(p2_l[32]), |
---|
| 2020 | .p1m1_l(p1_l[32]), .p0m1_l(p0_l[32]), .am4(a[29]), .sum(sum[33]), |
---|
| 2021 | .cout(cout[33]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[33]), |
---|
| 2022 | .p0_l(p0_l[33])); |
---|
| 2023 | mul_ppgen3 I1_32_ ( .p2_l(p2_l[32]), .b2(b2[2:0]), |
---|
| 2024 | .am2(a[30]), .a(a[32]), .p2m1_l(p2_l[31]), |
---|
| 2025 | .p1m1_l(p1_l[31]), .p0m1_l(p0_l[31]), .am4(a[28]), .sum(sum[32]), |
---|
| 2026 | .cout(cout[32]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[32]), |
---|
| 2027 | .p0_l(p0_l[32])); |
---|
| 2028 | mul_ppgen3 I1_31_ ( .p2_l(p2_l[31]), .b2(b2[2:0]), |
---|
| 2029 | .am2(a[29]), .a(a[31]), .p2m1_l(p2_l[30]), |
---|
| 2030 | .p1m1_l(p1_l[30]), .p0m1_l(p0_l[30]), .am4(a[27]), .sum(sum[31]), |
---|
| 2031 | .cout(cout[31]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[31]), |
---|
| 2032 | .p0_l(p0_l[31])); |
---|
| 2033 | mul_ppgen3 I1_30_ ( .p2_l(p2_l[30]), .b2(b2[2:0]), |
---|
| 2034 | .am2(a[28]), .a(a[30]), .p2m1_l(p2_l[29]), |
---|
| 2035 | .p1m1_l(p1_l[29]), .p0m1_l(p0_l[29]), .am4(a[26]), .sum(sum[30]), |
---|
| 2036 | .cout(cout[30]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[30]), |
---|
| 2037 | .p0_l(p0_l[30])); |
---|
| 2038 | mul_ppgen3 I1_29_ ( .p2_l(p2_l[29]), .b2(b2[2:0]), |
---|
| 2039 | .am2(a[27]), .a(a[29]), .p2m1_l(p2_l[28]), |
---|
| 2040 | .p1m1_l(p1_l[28]), .p0m1_l(p0_l[28]), .am4(a[25]), .sum(sum[29]), |
---|
| 2041 | .cout(cout[29]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[29]), |
---|
| 2042 | .p0_l(p0_l[29])); |
---|
| 2043 | mul_ppgen3 I1_28_ ( .p2_l(p2_l[28]), .b2(b2[2:0]), |
---|
| 2044 | .am2(a[26]), .a(a[28]), .p2m1_l(p2_l[27]), |
---|
| 2045 | .p1m1_l(p1_l[27]), .p0m1_l(p0_l[27]), .am4(a[24]), .sum(sum[28]), |
---|
| 2046 | .cout(cout[28]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[28]), |
---|
| 2047 | .p0_l(p0_l[28])); |
---|
| 2048 | mul_ppgen3 I1_27_ ( .p2_l(p2_l[27]), .b2(b2[2:0]), |
---|
| 2049 | .am2(a[25]), .a(a[27]), .p2m1_l(p2_l[26]), |
---|
| 2050 | .p1m1_l(p1_l[26]), .p0m1_l(p0_l[26]), .am4(a[23]), .sum(sum[27]), |
---|
| 2051 | .cout(cout[27]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[27]), |
---|
| 2052 | .p0_l(p0_l[27])); |
---|
| 2053 | mul_ppgen3 I1_26_ ( .p2_l(p2_l[26]), .b2(b2[2:0]), |
---|
| 2054 | .am2(a[24]), .a(a[26]), .p2m1_l(p2_l[25]), |
---|
| 2055 | .p1m1_l(p1_l[25]), .p0m1_l(p0_l[25]), .am4(a[22]), .sum(sum[26]), |
---|
| 2056 | .cout(cout[26]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[26]), |
---|
| 2057 | .p0_l(p0_l[26])); |
---|
| 2058 | mul_ppgen3 I1_25_ ( .p2_l(p2_l[25]), .b2(b2[2:0]), |
---|
| 2059 | .am2(a[23]), .a(a[25]), .p2m1_l(p2_l[24]), |
---|
| 2060 | .p1m1_l(p1_l[24]), .p0m1_l(p0_l[24]), .am4(a[21]), .sum(sum[25]), |
---|
| 2061 | .cout(cout[25]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[25]), |
---|
| 2062 | .p0_l(p0_l[25])); |
---|
| 2063 | mul_ppgen3 I1_24_ ( .p2_l(p2_l[24]), .b2(b2[2:0]), |
---|
| 2064 | .am2(a[22]), .a(a[24]), .p2m1_l(p2_l[23]), |
---|
| 2065 | .p1m1_l(p1_l[23]), .p0m1_l(p0_l[23]), .am4(a[20]), .sum(sum[24]), |
---|
| 2066 | .cout(cout[24]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[24]), |
---|
| 2067 | .p0_l(p0_l[24])); |
---|
| 2068 | mul_ppgen3 I1_23_ ( .p2_l(p2_l[23]), .b2(b2[2:0]), |
---|
| 2069 | .am2(a[21]), .a(a[23]), .p2m1_l(p2_l[22]), |
---|
| 2070 | .p1m1_l(p1_l[22]), .p0m1_l(p0_l[22]), .am4(a[19]), .sum(sum[23]), |
---|
| 2071 | .cout(cout[23]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[23]), |
---|
| 2072 | .p0_l(p0_l[23])); |
---|
| 2073 | mul_ppgen3 I1_22_ ( .p2_l(p2_l[22]), .b2(b2[2:0]), |
---|
| 2074 | .am2(a[20]), .a(a[22]), .p2m1_l(p2_l[21]), |
---|
| 2075 | .p1m1_l(p1_l[21]), .p0m1_l(p0_l[21]), .am4(a[18]), .sum(sum[22]), |
---|
| 2076 | .cout(cout[22]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[22]), |
---|
| 2077 | .p0_l(p0_l[22])); |
---|
| 2078 | mul_ppgen3 I1_21_ ( .p2_l(p2_l[21]), .b2(b2[2:0]), |
---|
| 2079 | .am2(a[19]), .a(a[21]), .p2m1_l(p2_l[20]), |
---|
| 2080 | .p1m1_l(p1_l[20]), .p0m1_l(p0_l[20]), .am4(a[17]), .sum(sum[21]), |
---|
| 2081 | .cout(cout[21]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[21]), |
---|
| 2082 | .p0_l(p0_l[21])); |
---|
| 2083 | mul_ppgen3 I1_20_ ( .p2_l(p2_l[20]), .b2(b2[2:0]), |
---|
| 2084 | .am2(a[18]), .a(a[20]), .p2m1_l(p2_l[19]), |
---|
| 2085 | .p1m1_l(p1_l[19]), .p0m1_l(p0_l[19]), .am4(a[16]), .sum(sum[20]), |
---|
| 2086 | .cout(cout[20]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[20]), |
---|
| 2087 | .p0_l(p0_l[20])); |
---|
| 2088 | mul_ppgen3 I1_19_ ( .p2_l(p2_l[19]), .b2(b2[2:0]), |
---|
| 2089 | .am2(a[17]), .a(a[19]), .p2m1_l(p2_l[18]), |
---|
| 2090 | .p1m1_l(p1_l[18]), .p0m1_l(p0_l[18]), .am4(a[15]), .sum(sum[19]), |
---|
| 2091 | .cout(cout[19]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[19]), |
---|
| 2092 | .p0_l(p0_l[19])); |
---|
| 2093 | mul_ppgen3 I1_18_ ( .p2_l(p2_l[18]), .b2(b2[2:0]), |
---|
| 2094 | .am2(a[16]), .a(a[18]), .p2m1_l(p2_l[17]), |
---|
| 2095 | .p1m1_l(p1_l[17]), .p0m1_l(p0_l[17]), .am4(a[14]), .sum(sum[18]), |
---|
| 2096 | .cout(cout[18]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[18]), |
---|
| 2097 | .p0_l(p0_l[18])); |
---|
| 2098 | mul_ppgen3 I1_17_ ( .p2_l(p2_l[17]), .b2(b2[2:0]), |
---|
| 2099 | .am2(a[15]), .a(a[17]), .p2m1_l(p2_l[16]), |
---|
| 2100 | .p1m1_l(p1_l[16]), .p0m1_l(p0_l[16]), .am4(a[13]), .sum(sum[17]), |
---|
| 2101 | .cout(cout[17]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[17]), |
---|
| 2102 | .p0_l(p0_l[17])); |
---|
| 2103 | mul_ppgen3 I1_16_ ( .p2_l(p2_l[16]), .b2(b2[2:0]), |
---|
| 2104 | .am2(a[14]), .a(a[16]), .p2m1_l(p2_l[15]), |
---|
| 2105 | .p1m1_l(p1_l[15]), .p0m1_l(p0_l[15]), .am4(a[12]), .sum(sum[16]), |
---|
| 2106 | .cout(cout[16]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[16]), |
---|
| 2107 | .p0_l(p0_l[16])); |
---|
| 2108 | mul_ppgen3 I1_15_ ( .p2_l(p2_l[15]), .b2(b2[2:0]), |
---|
| 2109 | .am2(a[13]), .a(a[15]), .p2m1_l(p2_l[14]), |
---|
| 2110 | .p1m1_l(p1_l[14]), .p0m1_l(p0_l[14]), .am4(a[11]), .sum(sum[15]), |
---|
| 2111 | .cout(cout[15]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[15]), |
---|
| 2112 | .p0_l(p0_l[15])); |
---|
| 2113 | mul_ppgen3 I1_14_ ( .p2_l(p2_l[14]), .b2(b2[2:0]), |
---|
| 2114 | .am2(a[12]), .a(a[14]), .p2m1_l(p2_l[13]), |
---|
| 2115 | .p1m1_l(p1_l[13]), .p0m1_l(p0_l[13]), .am4(a[10]), .sum(sum[14]), |
---|
| 2116 | .cout(cout[14]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[14]), |
---|
| 2117 | .p0_l(p0_l[14])); |
---|
| 2118 | mul_ppgen3 I1_13_ ( .p2_l(p2_l[13]), .b2(b2[2:0]), |
---|
| 2119 | .am2(a[11]), .a(a[13]), .p2m1_l(p2_l[12]), |
---|
| 2120 | .p1m1_l(p1_l[12]), .p0m1_l(p0_l[12]), .am4(a[9]), .sum(sum[13]), |
---|
| 2121 | .cout(cout[13]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[13]), |
---|
| 2122 | .p0_l(p0_l[13])); |
---|
| 2123 | mul_ppgen3 I1_12_ ( .p2_l(p2_l[12]), .b2(b2[2:0]), |
---|
| 2124 | .am2(a[10]), .a(a[12]), .p2m1_l(p2_l[11]), |
---|
| 2125 | .p1m1_l(p1_l[11]), .p0m1_l(p0_l[11]), .am4(a[8]), .sum(sum[12]), |
---|
| 2126 | .cout(cout[12]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[12]), |
---|
| 2127 | .p0_l(p0_l[12])); |
---|
| 2128 | mul_ppgen3 I1_11_ ( .p2_l(p2_l[11]), .b2(b2[2:0]), |
---|
| 2129 | .am2(a[9]), .a(a[11]), .p2m1_l(p2_l[10]), |
---|
| 2130 | .p1m1_l(p1_l[10]), .p0m1_l(p0_l[10]), .am4(a[7]), .sum(sum[11]), |
---|
| 2131 | .cout(cout[11]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[11]), |
---|
| 2132 | .p0_l(p0_l[11])); |
---|
| 2133 | mul_ppgen3 I1_10_ ( .p2_l(p2_l[10]), .b2(b2[2:0]), |
---|
| 2134 | .am2(a[8]), .a(a[10]), .p2m1_l(p2_l[9]), |
---|
| 2135 | .p1m1_l(p1_l[9]), .p0m1_l(p0_l[9]), .am4(a[6]), .sum(sum[10]), |
---|
| 2136 | .cout(cout[10]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[10]), |
---|
| 2137 | .p0_l(p0_l[10])); |
---|
| 2138 | mul_ppgen3 I1_9_ ( .p2_l(p2_l[9]), .b2(b2[2:0]), |
---|
| 2139 | .am2(a[7]), .a(a[9]), .p2m1_l(p2_l[8]), |
---|
| 2140 | .p1m1_l(p1_l[8]), .p0m1_l(p0_l[8]), .am4(a[5]), .sum(sum[9]), |
---|
| 2141 | .cout(cout[9]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[9]), |
---|
| 2142 | .p0_l(p0_l[9])); |
---|
| 2143 | mul_ppgen3 I1_8_ ( .p2_l(p2_l[8]), .b2(b2[2:0]), |
---|
| 2144 | .am2(a[6]), .a(a[8]), .p2m1_l(p2_l[7]), |
---|
| 2145 | .p1m1_l(p1_l[7]), .p0m1_l(p0_l[7]), .am4(a[4]), .sum(sum[8]), |
---|
| 2146 | .cout(cout[8]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[8]), |
---|
| 2147 | .p0_l(p0_l[8])); |
---|
| 2148 | mul_ppgen3 I1_7_ ( .p2_l(p2_l[7]), .b2(b2[2:0]), |
---|
| 2149 | .am2(a[5]), .a(a[7]), .p2m1_l(p2_l[6]), |
---|
| 2150 | .p1m1_l(p1_l[6]), .p0m1_l(p0_l[6]), .am4(a[3]), .sum(sum[7]), |
---|
| 2151 | .cout(cout[7]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[7]), |
---|
| 2152 | .p0_l(p0_l[7])); |
---|
| 2153 | mul_ppgen3 I1_6_ ( .p2_l(p2_l[6]), .b2(b2[2:0]), |
---|
| 2154 | .am2(a[4]), .a(a[6]), .p2m1_l(p2_l[5]), |
---|
| 2155 | .p1m1_l(p1_l[5]), .p0m1_l(p0_l[5]), .am4(a[2]), .sum(sum[6]), |
---|
| 2156 | .cout(cout[6]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[6]), |
---|
| 2157 | .p0_l(p0_l[6])); |
---|
| 2158 | mul_ppgen3 I1_5_ ( .p2_l(p2_l[5]), .b2(b2[2:0]), |
---|
| 2159 | .am2(a[3]), .a(a[5]), .p2m1_l(p2_l[4]), |
---|
| 2160 | .p1m1_l(p1_l[4]), .p0m1_l(p0_l[4]), .am4(a[1]), .sum(sum[5]), |
---|
| 2161 | .cout(cout[5]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[5]), |
---|
| 2162 | .p0_l(p0_l[5])); |
---|
| 2163 | mul_ppgen3 I1_4_ ( .p2_l(p2_l[4]), .b2(b2[2:0]), |
---|
| 2164 | .am2(a[2]), .a(a[4]), .p2m1_l(1'b1), |
---|
| 2165 | .p1m1_l(p1_l[3]), .p0m1_l(p0_l[3]), .am4(a[0]), .sum(sum[4]), |
---|
| 2166 | .cout(cout[4]), .b1(b1[2:0]), .b0(b0[2:0]), .p1_l(p1_l[4]), |
---|
| 2167 | .p0_l(p0_l[4])); |
---|
| 2168 | mul_ppgen3lsb4 I0 ( .cout(cout[3:1]), .a(a[3:0]), .sum(sum[3:0]), |
---|
| 2169 | .p1_l(p1_l[3]), .p0_l(p0_l[3]), .b1(b1[2:0]), .b0(b0[2:0])); |
---|
| 2170 | |
---|
| 2171 | endmodule //mul_ppgenrow3 |
---|
| 2172 | |
---|
| 2173 | module mul_ppgensign ( p_l, z, b, pm1_l ); |
---|
| 2174 | output p_l, z; |
---|
| 2175 | input pm1_l; |
---|
| 2176 | input [2:0] b; |
---|
| 2177 | |
---|
| 2178 | assign p_l = ~(b[1] & b[2]); |
---|
| 2179 | assign z = b[0] ? ~pm1_l : ~p_l ; |
---|
| 2180 | |
---|
| 2181 | endmodule //mul_ppgensign |
---|
| 2182 | |
---|
| 2183 | module mul_ppgen ( p_l, z, a, b, pm1_l ); |
---|
| 2184 | output p_l, z; |
---|
| 2185 | input a, pm1_l; |
---|
| 2186 | input [2:0] b; |
---|
| 2187 | |
---|
| 2188 | assign p_l = ~((a ^ b[2]) & b[1]) ; |
---|
| 2189 | assign z = b[0] ? ~pm1_l : ~p_l ; |
---|
| 2190 | |
---|
| 2191 | endmodule //mul_ppgen |
---|
| 2192 | |
---|
| 2193 | module mul_mux2 ( z, d0, d1, s ); |
---|
| 2194 | output z; |
---|
| 2195 | input d0, d1, s; |
---|
| 2196 | |
---|
| 2197 | assign z = s ? d1 : d0 ; |
---|
| 2198 | |
---|
| 2199 | endmodule // mul_mux2 |
---|
| 2200 | |
---|
| 2201 | module mul_booth( |
---|
| 2202 | head, |
---|
| 2203 | b_in, |
---|
| 2204 | b0, b1, b2, b3, b4, b5, b6, b7, |
---|
| 2205 | b8, b9, b10, b11, b12, b13, b14, b15, b16, |
---|
| 2206 | clk, se, si, so, mul_step, tm_l |
---|
| 2207 | ); |
---|
| 2208 | input head; // begin of the MUL operation |
---|
| 2209 | input [63:0] b_in; |
---|
| 2210 | input clk, se, si, mul_step, tm_l; |
---|
| 2211 | output [2:0] b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15; |
---|
| 2212 | output b16; |
---|
| 2213 | output so; |
---|
| 2214 | |
---|
| 2215 | wire [63:31] b; |
---|
| 2216 | wire [2:0] b0_in0, b1_in0, b2_in0, b3_in0, b4_in0, b5_in0, b6_in0, b7_in0 ; |
---|
| 2217 | wire [2:0] b8_in0, b9_in0, b10_in0, b11_in0, b12_in0, b13_in0, b14_in0, b15_in0 ; |
---|
| 2218 | wire [2:0] b0_in1, b1_in1, b2_in1, b3_in1, b4_in1, b5_in1, b6_in1, b7_in1 ; |
---|
| 2219 | wire [2:0] b8_in1, b9_in1, b10_in1, b11_in1, b12_in1, b13_in1, b14_in1, b15_in1 ; |
---|
| 2220 | wire b16_in1; |
---|
| 2221 | |
---|
| 2222 | wire [2:0] b0_outmx, b1_outmx, b2_outmx, b3_outmx, b4_outmx, b5_outmx, b6_outmx; |
---|
| 2223 | wire [2:0] b7_outmx, b8_outmx, b9_outmx, b10_outmx, b11_outmx, b12_outmx, b13_outmx; |
---|
| 2224 | wire [2:0] b14_outmx, b15_outmx; |
---|
| 2225 | wire b16_outmx; |
---|
| 2226 | wire clk_enb0, clk_enb1; |
---|
| 2227 | |
---|
| 2228 | |
---|
| 2229 | mul_bodec encode0_a( |
---|
| 2230 | .x (1'b0), |
---|
| 2231 | .b (b_in[15:0]), |
---|
| 2232 | .b0 (b0_in0), |
---|
| 2233 | .b1 (b1_in0), |
---|
| 2234 | .b2 (b2_in0), |
---|
| 2235 | .b3 (b3_in0), |
---|
| 2236 | .b4 (b4_in0), |
---|
| 2237 | .b5 (b5_in0), |
---|
| 2238 | .b6 (b6_in0), |
---|
| 2239 | .b7 (b7_in0) |
---|
| 2240 | ); |
---|
| 2241 | //remove 16th row since it's never the last row |
---|
| 2242 | //b8_in0 = 3'b010; |
---|
| 2243 | mul_bodec encode0_b( |
---|
| 2244 | .x (b_in[15]), |
---|
| 2245 | .b (b_in[31:16]), |
---|
| 2246 | .b0 (b8_in0), |
---|
| 2247 | .b1 (b9_in0), |
---|
| 2248 | .b2 (b10_in0), |
---|
| 2249 | .b3 (b11_in0), |
---|
| 2250 | .b4 (b12_in0), |
---|
| 2251 | .b5 (b13_in0), |
---|
| 2252 | .b6 (b14_in0), |
---|
| 2253 | .b7 (b15_in0) |
---|
| 2254 | ); |
---|
| 2255 | // remove 32th row since it's never the last row |
---|
| 2256 | // b16_in0 = 3'b010 ; |
---|
| 2257 | |
---|
| 2258 | // Pipe picked address [63:31] and hold flop |
---|
| 2259 | |
---|
| 2260 | clken_buf ckbuf_0(.clk(clk_enb0), .rclk(clk), .enb_l(~mul_step), .tmb_l(tm_l)); |
---|
| 2261 | clken_buf ckbuf_1(.clk(clk_enb1), .rclk(clk), .enb_l(~(head & mul_step)), .tmb_l(tm_l)); |
---|
| 2262 | |
---|
| 2263 | dff_s hld_dff0(.din(b_in[31]), .clk(clk_enb1), .q(b[31]), |
---|
| 2264 | .se(se), .si(), .so()); |
---|
| 2265 | dff_s #(32) hld_dff(.din(b_in[63:32]), .clk(clk_enb1), .q(b[63:32]), |
---|
| 2266 | .se(se), .si(), .so()); |
---|
| 2267 | |
---|
| 2268 | mul_bodec encode1_a( |
---|
| 2269 | .x (b[31]), |
---|
| 2270 | .b (b[47:32]), |
---|
| 2271 | .b0 (b0_in1), |
---|
| 2272 | .b1 (b1_in1), |
---|
| 2273 | .b2 (b2_in1), |
---|
| 2274 | .b3 (b3_in1), |
---|
| 2275 | .b4 (b4_in1), |
---|
| 2276 | .b5 (b5_in1), |
---|
| 2277 | .b6 (b6_in1), |
---|
| 2278 | .b7 (b7_in1) |
---|
| 2279 | ); |
---|
| 2280 | //remove 16th row since it's never the last row |
---|
| 2281 | //b8_in1 = 3'b010; |
---|
| 2282 | mul_bodec encode1_b( |
---|
| 2283 | .x (b[47]), |
---|
| 2284 | .b (b[63:48]), |
---|
| 2285 | .b0 (b8_in1), |
---|
| 2286 | .b1 (b9_in1), |
---|
| 2287 | .b2 (b10_in1), |
---|
| 2288 | .b3 (b11_in1), |
---|
| 2289 | .b4 (b12_in1), |
---|
| 2290 | .b5 (b13_in1), |
---|
| 2291 | .b6 (b14_in1), |
---|
| 2292 | .b7 (b15_in1) |
---|
| 2293 | ); |
---|
| 2294 | assign b16_in1 = b[63] ; |
---|
| 2295 | |
---|
| 2296 | // Select booth encoded b outputs and flop based on the cycle0 and cycle1 |
---|
| 2297 | |
---|
| 2298 | dp_mux2es #(3) out_mux0(.dout(b0_outmx[2:0]), |
---|
| 2299 | .in0(b0_in0[2:0]), |
---|
| 2300 | .in1(b0_in1[2:0]), |
---|
| 2301 | .sel(~head)); |
---|
| 2302 | dp_mux2es #(3) out_mux1(.dout(b1_outmx[2:0]), |
---|
| 2303 | .in0(b1_in0[2:0]), |
---|
| 2304 | .in1(b1_in1[2:0]), |
---|
| 2305 | .sel(~head)); |
---|
| 2306 | dp_mux2es #(3) out_mux2(.dout(b2_outmx[2:0]), |
---|
| 2307 | .in0(b2_in0[2:0]), |
---|
| 2308 | .in1(b2_in1[2:0]), |
---|
| 2309 | .sel(~head)); |
---|
| 2310 | dp_mux2es #(3) out_mux3(.dout(b3_outmx[2:0]), |
---|
| 2311 | .in0(b3_in0[2:0]), |
---|
| 2312 | .in1(b3_in1[2:0]), |
---|
| 2313 | .sel(~head)); |
---|
| 2314 | dp_mux2es #(3) out_mux4(.dout(b4_outmx[2:0]), |
---|
| 2315 | .in0(b4_in0[2:0]), |
---|
| 2316 | .in1(b4_in1[2:0]), |
---|
| 2317 | .sel(~head)); |
---|
| 2318 | dp_mux2es #(3) out_mux5(.dout(b5_outmx[2:0]), |
---|
| 2319 | .in0(b5_in0[2:0]), |
---|
| 2320 | .in1(b5_in1[2:0]), |
---|
| 2321 | .sel(~head)); |
---|
| 2322 | dp_mux2es #(3) out_mux6(.dout(b6_outmx[2:0]), |
---|
| 2323 | .in0(b6_in0[2:0]), |
---|
| 2324 | .in1(b6_in1[2:0]), |
---|
| 2325 | .sel(~head)); |
---|
| 2326 | dp_mux2es #(3) out_mux7(.dout(b7_outmx[2:0]), |
---|
| 2327 | .in0(b7_in0[2:0]), |
---|
| 2328 | .in1(b7_in1[2:0]), |
---|
| 2329 | .sel(~head)); |
---|
| 2330 | dp_mux2es #(3) out_mux8(.dout(b8_outmx[2:0]), |
---|
| 2331 | .in0(b8_in0[2:0]), |
---|
| 2332 | .in1(b8_in1[2:0]), |
---|
| 2333 | .sel(~head)); |
---|
| 2334 | dp_mux2es #(3) out_mux9(.dout(b9_outmx[2:0]), |
---|
| 2335 | .in0(b9_in0[2:0]), |
---|
| 2336 | .in1(b9_in1[2:0]), |
---|
| 2337 | .sel(~head)); |
---|
| 2338 | dp_mux2es #(3) out_mux10(.dout(b10_outmx[2:0]), |
---|
| 2339 | .in0(b10_in0[2:0]), |
---|
| 2340 | .in1(b10_in1[2:0]), |
---|
| 2341 | .sel(~head)); |
---|
| 2342 | dp_mux2es #(3) out_mux11(.dout(b11_outmx[2:0]), |
---|
| 2343 | .in0(b11_in0[2:0]), |
---|
| 2344 | .in1(b11_in1[2:0]), |
---|
| 2345 | .sel(~head)); |
---|
| 2346 | dp_mux2es #(3) out_mux12(.dout(b12_outmx[2:0]), |
---|
| 2347 | .in0(b12_in0[2:0]), |
---|
| 2348 | .in1(b12_in1[2:0]), |
---|
| 2349 | .sel(~head)); |
---|
| 2350 | dp_mux2es #(3) out_mux13(.dout(b13_outmx[2:0]), |
---|
| 2351 | .in0(b13_in0[2:0]), |
---|
| 2352 | .in1(b13_in1[2:0]), |
---|
| 2353 | .sel(~head)); |
---|
| 2354 | dp_mux2es #(3) out_mux14(.dout(b14_outmx[2:0]), |
---|
| 2355 | .in0(b14_in0[2:0]), |
---|
| 2356 | .in1(b14_in1[2:0]), |
---|
| 2357 | .sel(~head)); |
---|
| 2358 | dp_mux2es #(3) out_mux15(.dout(b15_outmx[2:0]), |
---|
| 2359 | .in0(b15_in0[2:0]), |
---|
| 2360 | .in1(b15_in1[2:0]), |
---|
| 2361 | .sel(~head)); |
---|
| 2362 | dp_mux2es out_mux16(.dout(b16_outmx), |
---|
| 2363 | .in0(1'b0), |
---|
| 2364 | .in1(b16_in1), |
---|
| 2365 | .sel(~head)); |
---|
| 2366 | |
---|
| 2367 | dff_s #(3) out_dff0 (.din(b0_outmx[2:0]), .clk(clk_enb0), .q(b0[2:0]), |
---|
| 2368 | .se(se), .si(), .so()); |
---|
| 2369 | dff_s #(3) out_dff1 (.din(b1_outmx[2:0]), .clk(clk_enb0), .q(b1[2:0]), |
---|
| 2370 | .se(se), .si(), .so()); |
---|
| 2371 | dff_s #(3) out_dff2 (.din(b2_outmx[2:0]), .clk(clk_enb0), .q(b2[2:0]), |
---|
| 2372 | .se(se), .si(), .so()); |
---|
| 2373 | dff_s #(3) out_dff3 (.din(b3_outmx[2:0]), .clk(clk_enb0), .q(b3[2:0]), |
---|
| 2374 | .se(se), .si(), .so()); |
---|
| 2375 | dff_s #(3) out_dff4 (.din(b4_outmx[2:0]), .clk(clk_enb0), .q(b4[2:0]), |
---|
| 2376 | .se(se), .si(), .so()); |
---|
| 2377 | dff_s #(3) out_dff5 (.din(b5_outmx[2:0]), .clk(clk_enb0), .q(b5[2:0]), |
---|
| 2378 | .se(se), .si(), .so()); |
---|
| 2379 | dff_s #(3) out_dff6 (.din(b6_outmx[2:0]), .clk(clk_enb0), .q(b6[2:0]), |
---|
| 2380 | .se(se), .si(), .so()); |
---|
| 2381 | dff_s #(3) out_dff7 (.din(b7_outmx[2:0]), .clk(clk_enb0), .q(b7[2:0]), |
---|
| 2382 | .se(se), .si(), .so()); |
---|
| 2383 | dff_s #(3) out_dff8 (.din(b8_outmx[2:0]), .clk(clk_enb0), .q(b8[2:0]), |
---|
| 2384 | .se(se), .si(), .so()); |
---|
| 2385 | dff_s #(3) out_dff9 (.din(b9_outmx[2:0]), .clk(clk_enb0), .q(b9[2:0]), |
---|
| 2386 | .se(se), .si(), .so()); |
---|
| 2387 | dff_s #(3) out_dff10 (.din(b10_outmx[2:0]), .clk(clk_enb0), .q(b10[2:0]), |
---|
| 2388 | .se(se), .si(), .so()); |
---|
| 2389 | dff_s #(3) out_dff11 (.din(b11_outmx[2:0]), .clk(clk_enb0), .q(b11[2:0]), |
---|
| 2390 | .se(se), .si(), .so()); |
---|
| 2391 | dff_s #(3) out_dff12 (.din(b12_outmx[2:0]), .clk(clk_enb0), .q(b12[2:0]), |
---|
| 2392 | .se(se), .si(), .so()); |
---|
| 2393 | dff_s #(3) out_dff13 (.din(b13_outmx[2:0]), .clk(clk_enb0), .q(b13[2:0]), |
---|
| 2394 | .se(se), .si(), .so()); |
---|
| 2395 | dff_s #(3) out_dff14 (.din(b14_outmx[2:0]), .clk(clk_enb0), .q(b14[2:0]), |
---|
| 2396 | .se(se), .si(), .so()); |
---|
| 2397 | dff_s #(3) out_dff15 (.din(b15_outmx[2:0]), .clk(clk_enb0), .q(b15[2:0]), |
---|
| 2398 | .se(se), .si(), .so()); |
---|
| 2399 | dff_s out_dff16 (.din(b16_outmx), .clk(clk_enb0), .q(b16), |
---|
| 2400 | .se(se), .si(), .so()); |
---|
| 2401 | endmodule //mul_booth |
---|
| 2402 | |
---|
| 2403 | module mul_bodec (x, b, |
---|
| 2404 | b0, b1, b2, b3, b4, b5, b6, b7); |
---|
| 2405 | |
---|
| 2406 | input x; |
---|
| 2407 | input [15:0] b; |
---|
| 2408 | output [2:0] b0, b1, b2, b3, b4, b5, b6, b7; |
---|
| 2409 | |
---|
| 2410 | assign b0[2] = b[1]; |
---|
| 2411 | assign b0[1] = ~((b[1] & b[0] & x) | (~b[1] & ~b[0] & ~x)) ; |
---|
| 2412 | assign b0[0] = (~b[1] & b[0] & x) | (b[1] & ~b[0] & ~x) ; |
---|
| 2413 | |
---|
| 2414 | assign b1[2] = b[3]; |
---|
| 2415 | assign b1[1] = ~((b[3] & b[2] & b[1]) | (~b[3] & ~b[2] & ~b[1])) ; |
---|
| 2416 | assign b1[0] = (~b[3] & b[2] & b[1]) | (b[3] & ~b[2] & ~b[1]) ; |
---|
| 2417 | |
---|
| 2418 | assign b2[2] = b[5]; |
---|
| 2419 | assign b2[1] = ~((b[5] & b[4] & b[3]) | (~b[5] & ~b[4] & ~b[3])) ; |
---|
| 2420 | assign b2[0] = (~b[5] & b[4] & b[3]) | (b[5] & ~b[4] & ~b[3]) ; |
---|
| 2421 | |
---|
| 2422 | assign b3[2] = b[7] ; |
---|
| 2423 | assign b3[1] = ~((b[7] & b[6] & b[5]) | (~b[7] & ~b[6] & ~b[5])) ; |
---|
| 2424 | assign b3[0] = (~b[7] & b[6] & b[5]) | (b[7] & ~b[6] & ~b[5]) ; |
---|
| 2425 | |
---|
| 2426 | assign b4[2] = b[9] ; |
---|
| 2427 | assign b4[1] = ~((b[9] & b[8] & b[7]) | (~b[9] & ~b[8] & ~b[7])) ; |
---|
| 2428 | assign b4[0] = (~b[9] & b[8] & b[7]) | (b[9] & ~b[8] & ~b[7]) ; |
---|
| 2429 | |
---|
| 2430 | assign b5[2] = b[11] ; |
---|
| 2431 | assign b5[1] = ~((b[11] & b[10] & b[9]) | (~b[11] & ~b[10] & ~b[9])) ; |
---|
| 2432 | assign b5[0] = (~b[11] & b[10] & b[9]) | (b[11] & ~b[10] & ~b[9]) ; |
---|
| 2433 | |
---|
| 2434 | assign b6[2] = b[13] ; |
---|
| 2435 | assign b6[1] = ~((b[13] & b[12] & b[11]) | (~b[13] & ~b[12] & ~b[11])) ; |
---|
| 2436 | assign b6[0] = (~b[13] & b[12] & b[11]) | (b[13] & ~b[12] & ~b[11]) ; |
---|
| 2437 | |
---|
| 2438 | assign b7[2] = b[15] ; |
---|
| 2439 | assign b7[1] = ~((b[15] & b[14] & b[13]) | (~b[15] & ~b[14] & ~b[13])) ; |
---|
| 2440 | assign b7[0] = (~b[15] & b[14] & b[13]) | (b[15] & ~b[14] & ~b[13]) ; |
---|
| 2441 | |
---|
| 2442 | endmodule // mul_bodec |
---|
| 2443 | `endif |
---|