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

📄 calculator.v

📁 用状态机实现一个逻辑运算单元,该逻辑运算单元拥有常规的计算功能.状态机保证层次清晰,用门级电路搭建而成,可以直接综合并且流片.
💻 V
📖 第 1 页 / 共 5 页
字号:
module sela_3 ( in, out0, out1, out2, out3, clock );  input [20:0] in;  output [20:0] out0;  output [20:0] out1;  output [20:0] out2;  output [20:0] out3;  input clock;  wire   \s[1] , \s[0] , N0, N1, N2, N3, N4, N5, n1, n2, n3, n4, n89;  TLATXL \out0_reg[20]  ( .G(N2), .D(in[20]), .Q(out0[20]) );  TLATXL \out0_reg[19]  ( .G(n1), .D(in[19]), .Q(out0[19]) );  TLATXL \out0_reg[18]  ( .G(N2), .D(in[18]), .Q(out0[18]) );  TLATXL \out0_reg[17]  ( .G(N2), .D(in[17]), .Q(out0[17]) );  TLATXL \out0_reg[16]  ( .G(n1), .D(in[16]), .Q(out0[16]) );  TLATXL \out0_reg[15]  ( .G(n1), .D(in[15]), .Q(out0[15]) );  TLATXL \out0_reg[14]  ( .G(n1), .D(in[14]), .Q(out0[14]) );  TLATXL \out0_reg[13]  ( .G(N2), .D(in[13]), .Q(out0[13]) );  TLATXL \out0_reg[12]  ( .G(N2), .D(in[12]), .Q(out0[12]) );  TLATXL \out0_reg[11]  ( .G(N2), .D(in[11]), .Q(out0[11]) );  TLATXL \out0_reg[10]  ( .G(N2), .D(in[10]), .Q(out0[10]) );  TLATXL \out0_reg[9]  ( .G(N2), .D(in[9]), .Q(out0[9]) );  TLATXL \out0_reg[8]  ( .G(N2), .D(in[8]), .Q(out0[8]) );  TLATXL \out0_reg[7]  ( .G(N2), .D(in[7]), .Q(out0[7]) );  TLATXL \out0_reg[6]  ( .G(n1), .D(in[6]), .Q(out0[6]) );  TLATXL \out0_reg[5]  ( .G(n1), .D(in[5]), .Q(out0[5]) );  TLATXL \out0_reg[4]  ( .G(n1), .D(in[4]), .Q(out0[4]) );  TLATXL \out0_reg[3]  ( .G(n1), .D(in[3]), .Q(out0[3]) );  TLATXL \out0_reg[2]  ( .G(n1), .D(in[2]), .Q(out0[2]) );  TLATXL \out0_reg[1]  ( .G(n1), .D(in[1]), .Q(out0[1]) );  TLATXL \out0_reg[0]  ( .G(N2), .D(in[0]), .Q(out0[0]) );  TLATXL \out1_reg[20]  ( .G(n4), .D(in[20]), .Q(out1[20]) );  TLATXL \out1_reg[19]  ( .G(n4), .D(in[19]), .Q(out1[19]) );  TLATXL \out1_reg[18]  ( .G(n4), .D(in[18]), .Q(out1[18]) );  TLATXL \out1_reg[17]  ( .G(n4), .D(in[17]), .Q(out1[17]) );  TLATXL \out1_reg[16]  ( .G(n4), .D(in[16]), .Q(out1[16]) );  TLATXL \out1_reg[15]  ( .G(n4), .D(in[15]), .Q(out1[15]) );  TLATXL \out1_reg[14]  ( .G(n4), .D(in[14]), .Q(out1[14]) );  TLATXL \out1_reg[13]  ( .G(n4), .D(in[13]), .Q(out1[13]) );  TLATXL \out1_reg[12]  ( .G(n4), .D(in[12]), .Q(out1[12]) );  TLATXL \out1_reg[11]  ( .G(n4), .D(in[11]), .Q(out1[11]) );  TLATXL \out1_reg[10]  ( .G(n4), .D(in[10]), .Q(out1[10]) );  TLATXL \out1_reg[9]  ( .G(n4), .D(in[9]), .Q(out1[9]) );  TLATXL \out1_reg[8]  ( .G(n4), .D(in[8]), .Q(out1[8]) );  TLATXL \out1_reg[7]  ( .G(n4), .D(in[7]), .Q(out1[7]) );  TLATXL \out1_reg[6]  ( .G(n4), .D(in[6]), .Q(out1[6]) );  TLATXL \out1_reg[5]  ( .G(n4), .D(in[5]), .Q(out1[5]) );  TLATXL \out1_reg[4]  ( .G(n4), .D(in[4]), .Q(out1[4]) );  TLATXL \out1_reg[3]  ( .G(n4), .D(in[3]), .Q(out1[3]) );  TLATXL \out1_reg[2]  ( .G(n4), .D(in[2]), .Q(out1[2]) );  TLATXL \out1_reg[1]  ( .G(n4), .D(in[1]), .Q(out1[1]) );  TLATXL \out1_reg[0]  ( .G(n4), .D(in[0]), .Q(out1[0]) );  TLATXL \out3_reg[19]  ( .G(N5), .D(in[19]), .Q(out3[19]) );  TLATXL \out3_reg[18]  ( .G(n3), .D(in[18]), .Q(out3[18]) );  TLATXL \out3_reg[17]  ( .G(N5), .D(in[17]), .Q(out3[17]) );  TLATXL \out3_reg[16]  ( .G(N5), .D(in[16]), .Q(out3[16]) );  TLATXL \out3_reg[15]  ( .G(n3), .D(in[15]), .Q(out3[15]) );  TLATXL \out3_reg[14]  ( .G(n3), .D(in[14]), .Q(out3[14]) );  TLATXL \out3_reg[13]  ( .G(n3), .D(in[13]), .Q(out3[13]) );  TLATXL \out3_reg[12]  ( .G(N5), .D(in[12]), .Q(out3[12]) );  TLATXL \out3_reg[11]  ( .G(N5), .D(in[11]), .Q(out3[11]) );  TLATXL \out3_reg[10]  ( .G(N5), .D(in[10]), .Q(out3[10]) );  TLATXL \out3_reg[9]  ( .G(N5), .D(in[9]), .Q(out3[9]) );  TLATXL \out3_reg[8]  ( .G(N5), .D(in[8]), .Q(out3[8]) );  TLATXL \out3_reg[7]  ( .G(N5), .D(in[7]), .Q(out3[7]) );  TLATXL \out3_reg[6]  ( .G(N5), .D(in[6]), .Q(out3[6]) );  TLATXL \out3_reg[5]  ( .G(n3), .D(in[5]), .Q(out3[5]) );  TLATXL \out3_reg[4]  ( .G(n3), .D(in[4]), .Q(out3[4]) );  TLATXL \out3_reg[3]  ( .G(n3), .D(in[3]), .Q(out3[3]) );  TLATXL \out3_reg[2]  ( .G(n3), .D(in[2]), .Q(out3[2]) );  TLATXL \out3_reg[1]  ( .G(n3), .D(in[1]), .Q(out3[1]) );  TLATXL \out3_reg[0]  ( .G(n3), .D(in[0]), .Q(out3[0]) );  TLATXL \out2_reg[19]  ( .G(n2), .D(in[19]), .Q(out2[19]) );  TLATXL \out2_reg[18]  ( .G(n2), .D(in[18]), .Q(out2[18]) );  TLATXL \out2_reg[17]  ( .G(n2), .D(in[17]), .Q(out2[17]) );  TLATXL \out2_reg[16]  ( .G(n2), .D(in[16]), .Q(out2[16]) );  TLATXL \out2_reg[15]  ( .G(n2), .D(in[15]), .Q(out2[15]) );  TLATXL \out2_reg[14]  ( .G(n2), .D(in[14]), .Q(out2[14]) );  TLATXL \out2_reg[13]  ( .G(n2), .D(in[13]), .Q(out2[13]) );  TLATXL \out2_reg[12]  ( .G(n2), .D(in[12]), .Q(out2[12]) );  TLATXL \out2_reg[11]  ( .G(n2), .D(in[11]), .Q(out2[11]) );  TLATXL \out2_reg[10]  ( .G(n2), .D(in[10]), .Q(out2[10]) );  TLATXL \out2_reg[9]  ( .G(n2), .D(in[9]), .Q(out2[9]) );  TLATXL \out2_reg[8]  ( .G(n2), .D(in[8]), .Q(out2[8]) );  TLATXL \out2_reg[7]  ( .G(n2), .D(in[7]), .Q(out2[7]) );  TLATXL \out2_reg[6]  ( .G(n2), .D(in[6]), .Q(out2[6]) );  TLATXL \out2_reg[5]  ( .G(n2), .D(in[5]), .Q(out2[5]) );  TLATXL \out2_reg[4]  ( .G(n2), .D(in[4]), .Q(out2[4]) );  TLATXL \out2_reg[3]  ( .G(n2), .D(in[3]), .Q(out2[3]) );  TLATXL \out2_reg[2]  ( .G(n2), .D(in[2]), .Q(out2[2]) );  TLATXL \out2_reg[1]  ( .G(n2), .D(in[1]), .Q(out2[1]) );  TLATXL \out2_reg[0]  ( .G(n2), .D(in[0]), .Q(out2[0]) );  TLATXL \out2_reg[20]  ( .G(n2), .D(in[20]), .Q(out2[20]) );  TLATXL \out3_reg[20]  ( .G(N5), .D(in[20]), .Q(out3[20]) );  DFFHQX1 \s_reg[1]  ( .D(N1), .CK(clock), .Q(\s[1] ) );  DFFHQX1 \s_reg[0]  ( .D(N0), .CK(clock), .Q(\s[0] ) );  INVX1 U3 ( .A(\s[0] ), .Y(N0) );  NOR2X4 U4 ( .A(\s[1] ), .B(\s[0] ), .Y(N2) );  NOR2X4 U5 ( .A(\s[1] ), .B(\s[0] ), .Y(n1) );  INVX1 U6 ( .A(\s[1] ), .Y(n89) );  BUFX4 U7 ( .A(N4), .Y(n2) );  NOR2XL U8 ( .A(n89), .B(\s[0] ), .Y(N4) );  NOR2X4 U9 ( .A(N0), .B(n89), .Y(n3) );  NOR2X4 U10 ( .A(N0), .B(n89), .Y(N5) );  BUFX4 U11 ( .A(N3), .Y(n4) );  NOR2XL U12 ( .A(N0), .B(\s[1] ), .Y(N3) );  OR2X1 U13 ( .A(N4), .B(N3), .Y(N1) );endmodulemodule sela_2 ( in, out0, out1, out2, out3, clock );  input [20:0] in;  output [20:0] out0;  output [20:0] out1;  output [20:0] out2;  output [20:0] out3;  input clock;  wire   \s[1] , \s[0] , N0, N1, N2, N3, N4, N5, n1, n2, n3, n4, n89;  TLATXL \out0_reg[20]  ( .G(N2), .D(in[20]), .Q(out0[20]) );  TLATXL \out0_reg[19]  ( .G(n1), .D(in[19]), .Q(out0[19]) );  TLATXL \out0_reg[18]  ( .G(N2), .D(in[18]), .Q(out0[18]) );  TLATXL \out0_reg[17]  ( .G(N2), .D(in[17]), .Q(out0[17]) );  TLATXL \out0_reg[16]  ( .G(n1), .D(in[16]), .Q(out0[16]) );  TLATXL \out0_reg[15]  ( .G(n1), .D(in[15]), .Q(out0[15]) );  TLATXL \out0_reg[14]  ( .G(n1), .D(in[14]), .Q(out0[14]) );  TLATXL \out0_reg[13]  ( .G(N2), .D(in[13]), .Q(out0[13]) );  TLATXL \out0_reg[12]  ( .G(N2), .D(in[12]), .Q(out0[12]) );  TLATXL \out0_reg[11]  ( .G(N2), .D(in[11]), .Q(out0[11]) );  TLATXL \out0_reg[10]  ( .G(N2), .D(in[10]), .Q(out0[10]) );  TLATXL \out0_reg[9]  ( .G(N2), .D(in[9]), .Q(out0[9]) );  TLATXL \out0_reg[8]  ( .G(N2), .D(in[8]), .Q(out0[8]) );  TLATXL \out0_reg[7]  ( .G(N2), .D(in[7]), .Q(out0[7]) );  TLATXL \out0_reg[6]  ( .G(n1), .D(in[6]), .Q(out0[6]) );  TLATXL \out0_reg[5]  ( .G(n1), .D(in[5]), .Q(out0[5]) );  TLATXL \out0_reg[4]  ( .G(n1), .D(in[4]), .Q(out0[4]) );  TLATXL \out0_reg[3]  ( .G(n1), .D(in[3]), .Q(out0[3]) );  TLATXL \out0_reg[2]  ( .G(n1), .D(in[2]), .Q(out0[2]) );  TLATXL \out0_reg[1]  ( .G(n1), .D(in[1]), .Q(out0[1]) );  TLATXL \out0_reg[0]  ( .G(N2), .D(in[0]), .Q(out0[0]) );  TLATXL \out1_reg[20]  ( .G(n4), .D(in[20]), .Q(out1[20]) );  TLATXL \out1_reg[19]  ( .G(n4), .D(in[19]), .Q(out1[19]) );  TLATXL \out1_reg[18]  ( .G(n4), .D(in[18]), .Q(out1[18]) );  TLATXL \out1_reg[17]  ( .G(n4), .D(in[17]), .Q(out1[17]) );  TLATXL \out1_reg[16]  ( .G(n4), .D(in[16]), .Q(out1[16]) );  TLATXL \out1_reg[15]  ( .G(n4), .D(in[15]), .Q(out1[15]) );  TLATXL \out1_reg[14]  ( .G(n4), .D(in[14]), .Q(out1[14]) );  TLATXL \out1_reg[13]  ( .G(n4), .D(in[13]), .Q(out1[13]) );  TLATXL \out1_reg[12]  ( .G(n4), .D(in[12]), .Q(out1[12]) );  TLATXL \out1_reg[11]  ( .G(n4), .D(in[11]), .Q(out1[11]) );  TLATXL \out1_reg[10]  ( .G(n4), .D(in[10]), .Q(out1[10]) );  TLATXL \out1_reg[9]  ( .G(n4), .D(in[9]), .Q(out1[9]) );  TLATXL \out1_reg[8]  ( .G(n4), .D(in[8]), .Q(out1[8]) );  TLATXL \out1_reg[7]  ( .G(n4), .D(in[7]), .Q(out1[7]) );  TLATXL \out1_reg[6]  ( .G(n4), .D(in[6]), .Q(out1[6]) );  TLATXL \out1_reg[5]  ( .G(n4), .D(in[5]), .Q(out1[5]) );  TLATXL \out1_reg[4]  ( .G(n4), .D(in[4]), .Q(out1[4]) );  TLATXL \out1_reg[3]  ( .G(n4), .D(in[3]), .Q(out1[3]) );  TLATXL \out1_reg[2]  ( .G(n4), .D(in[2]), .Q(out1[2]) );  TLATXL \out1_reg[1]  ( .G(n4), .D(in[1]), .Q(out1[1]) );  TLATXL \out1_reg[0]  ( .G(n4), .D(in[0]), .Q(out1[0]) );  TLATXL \out3_reg[19]  ( .G(N5), .D(in[19]), .Q(out3[19]) );  TLATXL \out3_reg[18]  ( .G(n3), .D(in[18]), .Q(out3[18]) );  TLATXL \out3_reg[17]  ( .G(N5), .D(in[17]), .Q(out3[17]) );  TLATXL \out3_reg[16]  ( .G(N5), .D(in[16]), .Q(out3[16]) );  TLATXL \out3_reg[15]  ( .G(n3), .D(in[15]), .Q(out3[15]) );  TLATXL \out3_reg[14]  ( .G(n3), .D(in[14]), .Q(out3[14]) );  TLATXL \out3_reg[13]  ( .G(n3), .D(in[13]), .Q(out3[13]) );  TLATXL \out3_reg[12]  ( .G(N5), .D(in[12]), .Q(out3[12]) );  TLATXL \out3_reg[11]  ( .G(N5), .D(in[11]), .Q(out3[11]) );  TLATXL \out3_reg[10]  ( .G(N5), .D(in[10]), .Q(out3[10]) );  TLATXL \out3_reg[9]  ( .G(N5), .D(in[9]), .Q(out3[9]) );  TLATXL \out3_reg[8]  ( .G(N5), .D(in[8]), .Q(out3[8]) );  TLATXL \out3_reg[7]  ( .G(N5), .D(in[7]), .Q(out3[7]) );  TLATXL \out3_reg[6]  ( .G(N5), .D(in[6]), .Q(out3[6]) );  TLATXL \out3_reg[5]  ( .G(n3), .D(in[5]), .Q(out3[5]) );  TLATXL \out3_reg[4]  ( .G(n3), .D(in[4]), .Q(out3[4]) );  TLATXL \out3_reg[3]  ( .G(n3), .D(in[3]), .Q(out3[3]) );  TLATXL \out3_reg[2]  ( .G(n3), .D(in[2]), .Q(out3[2]) );  TLATXL \out3_reg[1]  ( .G(n3), .D(in[1]), .Q(out3[1]) );  TLATXL \out3_reg[0]  ( .G(n3), .D(in[0]), .Q(out3[0]) );  TLATXL \out2_reg[19]  ( .G(n2), .D(in[19]), .Q(out2[19]) );  TLATXL \out2_reg[18]  ( .G(n2), .D(in[18]), .Q(out2[18]) );  TLATXL \out2_reg[17]  ( .G(n2), .D(in[17]), .Q(out2[17]) );  TLATXL \out2_reg[16]  ( .G(n2), .D(in[16]), .Q(out2[16]) );  TLATXL \out2_reg[15]  ( .G(n2), .D(in[15]), .Q(out2[15]) );  TLATXL \out2_reg[14]  ( .G(n2), .D(in[14]), .Q(out2[14]) );  TLATXL \out2_reg[13]  ( .G(n2), .D(in[13]), .Q(out2[13]) );  TLATXL \out2_reg[12]  ( .G(n2), .D(in[12]), .Q(out2[12]) );  TLATXL \out2_reg[11]  ( .G(n2), .D(in[11]), .Q(out2[11]) );  TLATXL \out2_reg[10]  ( .G(n2), .D(in[10]), .Q(out2[10]) );  TLATXL \out2_reg[9]  ( .G(n2), .D(in[9]), .Q(out2[9]) );  TLATXL \out2_reg[8]  ( .G(n2), .D(in[8]), .Q(out2[8]) );  TLATXL \out2_reg[7]  ( .G(n2), .D(in[7]), .Q(out2[7]) );  TLATXL \out2_reg[6]  ( .G(n2), .D(in[6]), .Q(out2[6]) );  TLATXL \out2_reg[5]  ( .G(n2), .D(in[5]), .Q(out2[5]) );  TLATXL \out2_reg[4]  ( .G(n2), .D(in[4]), .Q(out2[4]) );  TLATXL \out2_reg[3]  ( .G(n2), .D(in[3]), .Q(out2[3]) );  TLATXL \out2_reg[2]  ( .G(n2), .D(in[2]), .Q(out2[2]) );  TLATXL \out2_reg[1]  ( .G(n2), .D(in[1]), .Q(out2[1]) );  TLATXL \out2_reg[0]  ( .G(n2), .D(in[0]), .Q(out2[0]) );  TLATXL \out2_reg[20]  ( .G(n2), .D(in[20]), .Q(out2[20]) );  TLATXL \out3_reg[20]  ( .G(N5), .D(in[20]), .Q(out3[20]) );  DFFHQX1 \s_reg[1]  ( .D(N1), .CK(clock), .Q(\s[1] ) );  DFFHQX1 \s_reg[0]  ( .D(N0), .CK(clock), .Q(\s[0] ) );  INVX1 U3 ( .A(\s[0] ), .Y(N0) );  NOR2X4 U4 ( .A(\s[1] ), .B(\s[0] ), .Y(N2) );  NOR2X4 U5 ( .A(\s[1] ), .B(\s[0] ), .Y(n1) );  INVX1 U6 ( .A(\s[1] ), .Y(n89) );  BUFX4 U7 ( .A(N4), .Y(n2) );  NOR2XL U8 ( .A(n89), .B(\s[0] ), .Y(N4) );  NOR2X4 U9 ( .A(N0), .B(n89), .Y(n3) );  NOR2X4 U10 ( .A(N0), .B(n89), .Y(N5) );  BUFX4 U11 ( .A(N3), .Y(n4) );  NOR2XL U12 ( .A(N0), .B(\s[1] ), .Y(N3) );  OR2X1 U13 ( .A(N4), .B(N3), .Y(N1) );endmodulemodule sela_1 ( in, out0, out1, out2, out3, clock );  input [20:0] in;  output [20:0] out0;  output [20:0] out1;  output [20:0] out2;  output [20:0] out3;  input clock;  wire   \s[1] , \s[0] , N0, N1, N2, N3, N4, N5, n1, n2, n3, n4, n89;  TLATXL \out0_reg[20]  ( .G(N2), .D(in[20]), .Q(out0[20]) );  TLATXL \out0_reg[19]  ( .G(n1), .D(in[19]), .Q(out0[19]) );  TLATXL \out0_reg[18]  ( .G(N2), .D(in[18]), .Q(out0[18]) );  TLATXL \out0_reg[17]  ( .G(N2), .D(in[17]), .Q(out0[17]) );  TLATXL \out0_reg[16]  ( .G(n1), .D(in[16]), .Q(out0[16]) );  TLATXL \out0_reg[15]  ( .G(n1), .D(in[15]), .Q(out0[15]) );  TLATXL \out0_reg[14]  ( .G(n1), .D(in[14]), .Q(out0[14]) );  TLATXL \out0_reg[13]  ( .G(N2), .D(in[13]), .Q(out0[13]) );  TLATXL \out0_reg[12]  ( .G(N2), .D(in[12]), .Q(out0[12]) );  TLATXL \out0_reg[11]  ( .G(N2), .D(in[11]), .Q(out0[11]) );  TLATXL \out0_reg[10]  ( .G(N2), .D(in[10]), .Q(out0[10]) );  TLATXL \out0_reg[9]  ( .G(N2), .D(in[9]), .Q(out0[9]) );  TLATXL \out0_reg[8]  ( .G(N2), .D(in[8]), .Q(out0[8]) );  TLATXL \out0_reg[7]  ( .G(N2), .D(in[7]), .Q(out0[7]) );  TLATXL \out0_reg[6]  ( .G(n1), .D(in[6]), .Q(out0[6]) );  TLATXL \out0_reg[5]  ( .G(n1), .D(in[5]), .Q(out0[5]) );  TLATXL \out0_reg[4]  ( .G(n1), .D(in[4]), .Q(out0[4]) );  TLATXL \out0_reg[3]  ( .G(n1), .D(in[3]), .Q(out0[3]) );  TLATXL \out0_reg[2]  ( .G(n1), .D(in[2]), .Q(out0[2]) );  TLATXL \out0_reg[1]  ( .G(n1), .D(in[1]), .Q(out0[1]) );  TLATXL \out0_reg[0]  ( .G(N2), .D(in[0]), .Q(out0[0]) );

⌨️ 快捷键说明

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