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

📄 csa_float_multiplier_dc.v

📁 新型的浮点乘法器 用csa来实现可以用在浮点乘法器的地方
💻 V
📖 第 1 页 / 共 5 页
字号:
  DFFTRX1 \B_reg_reg[19]  ( .D(B_in[19]), .CK(clk), .RN(rst_n), .Q(B_reg[19]), 
        .QN() );
  DFFTRX1 \B_reg_reg[15]  ( .D(B_in[15]), .CK(clk), .RN(rst_n), .Q(B_reg[15]), 
        .QN() );
  DFFTRX1 \B_reg_reg[11]  ( .D(B_in[11]), .CK(clk), .RN(rst_n), .Q(B_reg[11]), 
        .QN() );
  DFFTRX1 \B_reg_reg[8]  ( .D(B_in[8]), .CK(clk), .RN(rst_n), .Q(B_reg[8]), 
        .QN() );
  DFFTRX1 \B_reg_reg[4]  ( .D(B_in[4]), .CK(clk), .RN(rst_n), .Q(B_reg[4]), 
        .QN() );
  DFFTRX1 \B_reg_reg[2]  ( .D(B_in[2]), .CK(clk), .RN(rst_n), .Q(B_reg[2]), 
        .QN() );
  DFFTRX1 \A_reg_reg[29]  ( .D(A_in[29]), .CK(clk), .RN(rst_n), .Q(A_reg[29]), 
        .QN() );
  DFFTRX1 \A_reg_reg[25]  ( .D(A_in[25]), .CK(clk), .RN(rst_n), .Q(A_reg[25]), 
        .QN() );
  DFFTRX1 \A_reg_reg[21]  ( .D(A_in[21]), .CK(clk), .RN(rst_n), .Q(A_reg[21]), 
        .QN() );
  DFFTRX1 \A_reg_reg[18]  ( .D(A_in[18]), .CK(clk), .RN(rst_n), .Q(A_reg[18]), 
        .QN() );
  DFFTRX1 \A_reg_reg[14]  ( .D(A_in[14]), .CK(clk), .RN(rst_n), .Q(A_reg[14]), 
        .QN() );
  DFFTRX1 \A_reg_reg[10]  ( .D(A_in[10]), .CK(clk), .RN(rst_n), .Q(A_reg[10]), 
        .QN() );
  DFFTRX1 \A_reg_reg[7]  ( .D(A_in[7]), .CK(clk), .RN(rst_n), .Q(A_reg[7]), 
        .QN() );
  DFFTRX1 \A_reg_reg[3]  ( .D(A_in[3]), .CK(clk), .RN(rst_n), .Q(A_reg[3]), 
        .QN() );
  DFFTRX1 \B_reg_reg[29]  ( .D(B_in[29]), .CK(clk), .RN(rst_n), .Q(B_reg[29]), 
        .QN() );
  DFFTRX1 \B_reg_reg[25]  ( .D(B_in[25]), .CK(clk), .RN(rst_n), .Q(B_reg[25]), 
        .QN() );
  DFFTRX1 \B_reg_reg[21]  ( .D(B_in[21]), .CK(clk), .RN(rst_n), .Q(B_reg[21]), 
        .QN() );
  DFFTRX1 \B_reg_reg[18]  ( .D(B_in[18]), .CK(clk), .RN(rst_n), .Q(B_reg[18]), 
        .QN() );
  DFFTRX1 \B_reg_reg[14]  ( .D(B_in[14]), .CK(clk), .RN(rst_n), .Q(B_reg[14]), 
        .QN() );
  DFFTRX1 \B_reg_reg[10]  ( .D(B_in[10]), .CK(clk), .RN(rst_n), .Q(B_reg[10]), 
        .QN() );
  DFFTRX1 \B_reg_reg[7]  ( .D(B_in[7]), .CK(clk), .RN(rst_n), .Q(B_reg[7]), 
        .QN() );
  DFFTRX1 \B_reg_reg[3]  ( .D(B_in[3]), .CK(clk), .RN(rst_n), .Q(B_reg[3]), 
        .QN() );
  DFFTRX1 \A_reg_reg[30]  ( .D(A_in[30]), .CK(clk), .RN(rst_n), .Q(A_reg[30]), 
        .QN() );
  DFFTRX1 \A_reg_reg[27]  ( .D(A_in[27]), .CK(clk), .RN(rst_n), .Q(A_reg[27]), 
        .QN() );
  DFFTRX1 \A_reg_reg[23]  ( .D(A_in[23]), .CK(clk), .RN(rst_n), .Q(A_reg[23]), 
        .QN() );
  DFFTRX1 \A_reg_reg[16]  ( .D(A_in[16]), .CK(clk), .RN(rst_n), .Q(A_reg[16]), 
        .QN() );
  DFFTRX1 \A_reg_reg[12]  ( .D(A_in[12]), .CK(clk), .RN(rst_n), .Q(A_reg[12]), 
        .QN() );
  DFFTRX1 \A_reg_reg[9]  ( .D(A_in[9]), .CK(clk), .RN(rst_n), .Q(A_reg[9]), 
        .QN() );
  DFFTRX1 \A_reg_reg[5]  ( .D(A_in[5]), .CK(clk), .RN(rst_n), .Q(A_reg[5]), 
        .QN() );
  DFFTRX1 \A_reg_reg[1]  ( .D(A_in[1]), .CK(clk), .RN(rst_n), .Q(A_reg[1]), 
        .QN() );
  DFFTRX1 \B_reg_reg[30]  ( .D(B_in[30]), .CK(clk), .RN(rst_n), .Q(B_reg[30]), 
        .QN() );
  DFFTRX1 \B_reg_reg[27]  ( .D(B_in[27]), .CK(clk), .RN(rst_n), .Q(B_reg[27]), 
        .QN() );
  DFFTRX1 \B_reg_reg[23]  ( .D(B_in[23]), .CK(clk), .RN(rst_n), .Q(B_reg[23]), 
        .QN() );
  DFFTRX1 \B_reg_reg[16]  ( .D(B_in[16]), .CK(clk), .RN(rst_n), .Q(B_reg[16]), 
        .QN() );
  DFFTRX1 \B_reg_reg[12]  ( .D(B_in[12]), .CK(clk), .RN(rst_n), .Q(B_reg[12]), 
        .QN() );
  DFFTRX1 \B_reg_reg[9]  ( .D(B_in[9]), .CK(clk), .RN(rst_n), .Q(B_reg[9]), 
        .QN() );
  DFFTRX1 \B_reg_reg[5]  ( .D(B_in[5]), .CK(clk), .RN(rst_n), .Q(B_reg[5]), 
        .QN() );
  DFFTRX1 \B_reg_reg[1]  ( .D(B_in[1]), .CK(clk), .RN(rst_n), .Q(B_reg[1]), 
        .QN() );
  DFFTRX1 sign_b_reg ( .D(B_in[31]), .CK(clk), .RN(rst_n), .Q(sign_b), .QN()
         );
  DFFTRX1 \exp_a_reg[7]  ( .D(A_in[30]), .CK(clk), .RN(rst_n), .Q(exp_a[7]), 
        .QN() );
  DFFTRX1 \exp_a_reg[6]  ( .D(A_in[29]), .CK(clk), .RN(rst_n), .Q(exp_a[6]), 
        .QN() );
  DFFTRX1 \exp_a_reg[5]  ( .D(A_in[28]), .CK(clk), .RN(rst_n), .Q(exp_a[5]), 
        .QN() );
  DFFTRX1 \exp_a_reg[4]  ( .D(A_in[27]), .CK(clk), .RN(rst_n), .Q(exp_a[4]), 
        .QN() );
  DFFTRX1 \exp_a_reg[3]  ( .D(A_in[26]), .CK(clk), .RN(rst_n), .Q(exp_a[3]), 
        .QN() );
  DFFTRX1 \exp_a_reg[2]  ( .D(A_in[25]), .CK(clk), .RN(rst_n), .Q(exp_a[2]), 
        .QN() );
  selector_DW01_add_0 add_70 ( .A({1'b0, exp_a}), .B({1'b0, exp_b}), .CI(1'b0), 
        .SUM({N139, N138, N137, N136, N135, N134, N133, N132, N131}), .CO() );
endmodule


module csa3_30_0 ( a1, a2, a3, s, c );
  input [29:0] a1;
  input [29:0] a2;
  input [29:0] a3;
  output [29:0] s;
  output [29:0] c;
  wire   n61, n62, n63, n64, n65, n66, n67, n68, n69, n70, n71, n72, n73, n74,
         n75, n76, n77, n78, n79, n80, n81, n82, n83, n84, n85, n86, n87, n88,
         n89, n90, n91, n92, n93, n94, n95, n96, n97, n98, n99, n100, n101,
         n102, n103, n104, n105, n106, n107, n108, n109, n110, n111, n112,
         n113, n114, n115, n116, n117, n118, n119, n120, n121, n122, n123,
         n124, n125, n126, n127, n128, n129, n130, n131, n132, n133, n134,
         n135, n136, n137, n138, n139, n140, n141, n142, n143, n144, n145,
         n146, n147, n148;

  NAND2XL U121 ( .A(a1[15]), .B(a2[15]), .Y(n78) );
  NAND2XL U122 ( .A(a1[14]), .B(a2[14]), .Y(n77) );
  XNOR2X1 U123 ( .A(a1[4]), .B(a2[4]), .Y(n101) );
  XNOR2X1 U124 ( .A(a1[18]), .B(a2[18]), .Y(n129) );
  XNOR2X1 U125 ( .A(a1[22]), .B(a2[22]), .Y(n137) );
  XNOR2X1 U126 ( .A(a1[10]), .B(a2[10]), .Y(n113) );
  XNOR2X1 U127 ( .A(a1[23]), .B(a2[23]), .Y(n139) );
  OAI21XL U128 ( .A0(n101), .A1(n102), .B0(n67), .Y(c[4]) );
  NAND2X1 U129 ( .A(a1[4]), .B(a2[4]), .Y(n67) );
  OAI21XL U130 ( .A0(n143), .A1(n144), .B0(n88), .Y(c[25]) );
  NAND2X1 U131 ( .A(a1[25]), .B(a2[25]), .Y(n88) );
  OAI21XL U132 ( .A0(n131), .A1(n132), .B0(n82), .Y(c[19]) );
  NAND2X1 U133 ( .A(a1[19]), .B(a2[19]), .Y(n82) );
  OAI21XL U134 ( .A0(n141), .A1(n142), .B0(n87), .Y(c[24]) );
  NAND2X1 U135 ( .A(a1[24]), .B(a2[24]), .Y(n87) );
  OAI21XL U136 ( .A0(n125), .A1(n126), .B0(n79), .Y(c[16]) );
  NAND2X1 U137 ( .A(a1[16]), .B(a2[16]), .Y(n79) );
  OAI21XL U138 ( .A0(n129), .A1(n130), .B0(n81), .Y(c[18]) );
  NAND2X1 U139 ( .A(a1[18]), .B(a2[18]), .Y(n81) );
  OAI21XL U140 ( .A0(n123), .A1(n124), .B0(n78), .Y(c[15]) );
  OAI21XL U141 ( .A0(n121), .A1(n122), .B0(n77), .Y(c[14]) );
  OAI21XL U142 ( .A0(n117), .A1(n118), .B0(n75), .Y(c[12]) );
  NAND2X1 U143 ( .A(a1[12]), .B(a2[12]), .Y(n75) );
  OAI21XL U144 ( .A0(n113), .A1(n114), .B0(n73), .Y(c[10]) );
  NAND2X1 U145 ( .A(a1[10]), .B(a2[10]), .Y(n73) );
  OAI21XL U146 ( .A0(n105), .A1(n106), .B0(n69), .Y(c[6]) );
  NAND2X1 U147 ( .A(a1[6]), .B(a2[6]), .Y(n69) );
  OAI21XL U148 ( .A0(n119), .A1(n120), .B0(n76), .Y(c[13]) );
  NAND2X1 U149 ( .A(a1[13]), .B(a2[13]), .Y(n76) );
  OAI21XL U150 ( .A0(n115), .A1(n116), .B0(n74), .Y(c[11]) );
  NAND2X1 U151 ( .A(a1[11]), .B(a2[11]), .Y(n74) );
  OAI21XL U152 ( .A0(n107), .A1(n108), .B0(n70), .Y(c[7]) );
  NAND2X1 U153 ( .A(a1[7]), .B(a2[7]), .Y(n70) );
  OAI21XL U154 ( .A0(n127), .A1(n128), .B0(n80), .Y(c[17]) );
  NAND2X1 U155 ( .A(a1[17]), .B(a2[17]), .Y(n80) );
  OAI21XL U156 ( .A0(n103), .A1(n104), .B0(n68), .Y(c[5]) );
  NAND2X1 U157 ( .A(a1[5]), .B(a2[5]), .Y(n68) );
  OAI21XL U158 ( .A0(n133), .A1(n134), .B0(n83), .Y(c[20]) );
  NAND2X1 U159 ( .A(a1[20]), .B(a2[20]), .Y(n83) );
  OAI21XL U160 ( .A0(n135), .A1(n136), .B0(n84), .Y(c[21]) );
  NAND2X1 U161 ( .A(a1[21]), .B(a2[21]), .Y(n84) );
  OAI21XL U162 ( .A0(n111), .A1(n112), .B0(n72), .Y(c[9]) );
  NAND2X1 U163 ( .A(a1[9]), .B(a2[9]), .Y(n72) );
  OAI21XL U164 ( .A0(n109), .A1(n110), .B0(n71), .Y(c[8]) );
  NAND2X1 U165 ( .A(a1[8]), .B(a2[8]), .Y(n71) );
  OAI21XL U166 ( .A0(n139), .A1(n140), .B0(n86), .Y(c[23]) );
  NAND2X1 U167 ( .A(a1[23]), .B(a2[23]), .Y(n86) );
  OAI21XL U168 ( .A0(n137), .A1(n138), .B0(n85), .Y(c[22]) );
  NAND2X1 U169 ( .A(a1[22]), .B(a2[22]), .Y(n85) );
  XOR2X1 U170 ( .A(n101), .B(n102), .Y(s[4]) );
  XOR2X1 U171 ( .A(n129), .B(n130), .Y(s[18]) );
  XOR2X1 U172 ( .A(n137), .B(n138), .Y(s[22]) );
  XOR2X1 U173 ( .A(n113), .B(n114), .Y(s[10]) );
  XOR2X1 U174 ( .A(n141), .B(n142), .Y(s[24]) );
  XOR2X1 U175 ( .A(n139), .B(n140), .Y(s[23]) );
  XOR2X1 U176 ( .A(n103), .B(n104), .Y(s[5]) );
  XOR2X1 U177 ( .A(n105), .B(n106), .Y(s[6]) );
  XOR2X1 U178 ( .A(n135), .B(n136), .Y(s[21]) );
  XOR2X1 U179 ( .A(n111), .B(n112), .Y(s[9]) );
  XNOR2X1 U180 ( .A(a1[25]), .B(a2[25]), .Y(n143) );
  XNOR2X1 U181 ( .A(a1[14]), .B(a2[14]), .Y(n121) );
  XNOR2X1 U182 ( .A(a1[24]), .B(a2[24]), .Y(n141) );
  XNOR2X1 U183 ( .A(a1[12]), .B(a2[12]), .Y(n117) );
  XNOR2X1 U184 ( .A(a1[15]), .B(a2[15]), .Y(n123) );
  XNOR2X1 U185 ( .A(a1[19]), .B(a2[19]), .Y(n131) );
  XNOR2X1 U186 ( .A(a1[16]), .B(a2[16]), .Y(n125) );
  XNOR2X1 U187 ( .A(a1[13]), .B(a2[13]), .Y(n119) );
  XNOR2X1 U188 ( .A(a1[11]), .B(a2[11]), .Y(n115) );
  XNOR2X1 U189 ( .A(a1[2]), .B(a2[2]), .Y(n97) );
  XNOR2X1 U190 ( .A(a1[20]), .B(a2[20]), .Y(n133) );
  XNOR2X1 U191 ( .A(a1[3]), .B(a2[3]), .Y(n99) );
  XNOR2X1 U192 ( .A(a1[5]), .B(a2[5]), .Y(n103) );
  XNOR2X1 U193 ( .A(a1[6]), .B(a2[6]), .Y(n105) );
  XNOR2X1 U194 ( .A(a1[21]), .B(a2[21]), .Y(n135) );
  XNOR2X1 U195 ( .A(a1[9]), .B(a2[9]), .Y(n111) );
  XNOR2X1 U196 ( .A(a1[8]), .B(a2[8]), .Y(n109) );
  XNOR2X1 U197 ( .A(a1[7]), .B(a2[7]), .Y(n107) );
  XNOR2X1 U198 ( .A(a1[17]), .B(a2[17]), .Y(n127) );
  XOR2X1 U199 ( .A(n121), .B(n122), .Y(s[14]) );
  XOR2X1 U200 ( .A(n117), .B(n118), .Y(s[12]) );
  XOR2X1 U201 ( .A(n123), .B(n124), .Y(s[15]) );
  XOR2X1 U202 ( .A(n143), .B(n144), .Y(s[25]) );
  XOR2X1 U203 ( .A(n131), .B(n132), .Y(s[19]) );
  XOR2X1 U204 ( .A(n125), .B(n126), .Y(s[16]) );
  XOR2X1 U205 ( .A(n119), .B(n120), .Y(s[13]) );
  XOR2X1 U206 ( .A(n115), .B(n116), .Y(s[11]) );
  XOR2X1 U207 ( .A(n133), .B(n134), .Y(s[20]) );
  XOR2X1 U208 ( .A(n127), .B(n128), .Y(s[17]) );
  XOR2X1 U209 ( .A(n107), .B(n108), .Y(s[7]) );
  XOR2X1 U210 ( .A(n109), .B(n110), .Y(s[8]) );
  OAI21XL U211 ( .A0(n97), .A1(n98), .B0(n65), .Y(c[2]) );
  NAND2X1 U212 ( .A(a1[2]), .B(a2[2]), .Y(n65) );
  OAI21XL U213 ( .A0(n99), .A1(n100), .B0(n66), .Y(c[3]) );
  NAND2X1 U214 ( .A(a1[3]), .B(a2[3]), .Y(n66) );
  INVX1 U215 ( .A(a3[4]), .Y(n102) );
  INVX1 U216 ( .A(a3[27]), .Y(n148) );
  INVX1 U217 ( .A(a3[20]), .Y(n134) );
  INVX1 U218 ( .A(a3[18]), .Y(n130) );
  INVX1 U219 ( .A(a3[17]), .Y(n128) );
  INVX1 U220 ( .A(a3[19]), .Y(n132) );
  INVX1 U221 ( .A(a3[24]), .Y(n142) );
  INVX1 U222 ( .A(a3[16]), .Y(n126) );
  INVX1 U223 ( .A(a3[6]), .Y(n106) );
  INVX1 U224 ( .A(a3[5]), .Y(n104) );
  INVX1 U225 ( .A(a3[22]), .Y(n138) );
  INVX1 U226 ( .A(a3[21]), .Y(n136) );
  INVX1 U227 ( .A(a3[9]), .Y(n112) );
  INVX1 U228 ( .A(a3[15]), .Y(n124) );
  INVX1 U229 ( .A(a3[8]), .Y(n110) );
  INVX1 U230 ( .A(a3[14]), .Y(n122) );
  INVX1 U231 ( .A(a3[23]), .Y(n140) );
  INVX1 U232 ( .A(a3[13]), .Y(n120) );
  INVX1 U233 ( .A(a3[11]), .Y(n116) );
  INVX1 U234 ( .A(a3[7]), .Y(n108) );
  INVX1 U235 ( .A(a3[26]), .Y(n146) );
  INVX1 U236 ( .A(a3[25]), .Y(n144) );
  XOR2X1 U237 ( .A(n97), .B(n98), .Y(s[2]) );
  XOR2X1 U238 ( .A(n99), .B(n100), .Y(s[3]) );
  XOR2X1 U239 ( .A(n95), .B(n96), .Y(s[1]) );
  XOR2X1 U240 ( .A(n93), .B(n94), .Y(s[0]) );
  XOR2X1 U241 ( .A(n145), .B(n146), .Y(s[26]) );
  XOR2X1 U242 ( .A(n147), .B(n148), .Y(s[27]) );
  XOR2X1 U243 ( .A(a3[28]), .B(n61), .Y(s[28]) );
  XOR2X1 U244 ( .A(a3[29]), .B(n62), .Y(s[29]) );
  INVX1 U245 ( .A(a3[10]), .Y(n114) );
  INVX1 U246 ( .A(a3[12]), .Y(n118) );
  OAI21XL U247 ( .A0(n145), .A1(n146), .B0(n89), .Y(c[26]) );
  NAND2X1 U248 ( .A(a1[26]), .B(a2[26]), .Y(n89) );
  OAI21XL U249 ( .A0(n147), .A1(n148), .B0(n90), .Y(c[27]) );
  NAND2X1 U250 ( .A(a1[27]), .B(a2[27]), .Y(n90) );
  OAI21XL U251 ( .A0(n93), .A1(n94), .B0(n63), .Y(c[0]) );
  NAND2X1 U252 ( .A(a1[0]), .B(a2[0]), .Y(n63) );
  OAI21XL U253 ( .A0(n95), .A1(n96), .B0(n64), .Y(c[1]) );
  NAND2X1 U254 ( .A(a1[1]), .B(a2[1]), .Y(n64) );
  OAI2BB1X1 U255 ( .A0N(a2[28]), .A1N(a1[28]), .B0(n91), .Y(c[28]) );
  NAND2X1 U256 ( .A(a3[28]), .B(n61), .Y(n91) );
  OAI2BB1X1 U257 ( .A0N(a2[29]), .A1N(a1[29]), .B0(n92), .Y(c[29]) );
  NAND2X1 U258 ( .A(a3[29]), .B(n62), .Y(n92) );
  XNOR2X1 U259 ( .A(a1[0]), .B(a2[0]), .Y(n93) );
  XNOR2X1 U260 ( .A(a1[1]), .B(a2[1]), .Y(n95) );
  XNOR2X1 U261 ( .A(a1[26]), .B(a2[26]), .Y(n145) );
  XNOR2X1 U262 ( .A(a1[27]), .B(a2[27]), .Y(n147) );
  XOR2X1 U263 ( .A(a2[28]), .B(a1[28]), .Y(n61) );
  XOR2X1 U264 ( .A(a2[29]), .B(a1[29]), .Y(n62) );
  INVX1 U265 ( .A(a3[2]), .Y(n98) );
  INVX1 U266 ( .A(a3[1]), .Y(n96) );
  INVX1 U267 ( .A(a3[3]), .Y(n100) );
  INVX1 U268 ( .A(a3[0]), .Y(n94) );
endmodule


⌨️ 快捷键说明

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