module addreg ( A, B, CLK, Z ); input [3:0] A; input [3:0] B; output [3:0] Z; input CLK; wire \sum[0] , \sum[1] , \sum[2] , \sum[3] , n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20, n21, n22, n23; and2_2 U3 ( .ip1(B[0]), .ip2(A[0]), .op(n1) ); and2_2 U4 ( .ip1(B[2]), .ip2(A[2]), .op(n2) ); and2_2 U5 ( .ip1(n19), .ip2(n20), .op(n3) ); and2_2 U6 ( .ip1(B[1]), .ip2(A[1]), .op(n4) ); and2_2 U7 ( .ip1(n5), .ip2(n4), .op(n16) ); nand2_2 U8 ( .ip1(n11), .ip2(n12), .op(n5) ); nor2_2 U9 ( .ip1(A[2]), .ip2(B[2]), .op(n8) ); nor2_2 U10 ( .ip1(B[1]), .ip2(A[1]), .op(n6) ); and2_2 U11 ( .ip1(n9), .ip2(n10), .op(n7) ); nor3_2 U12 ( .ip1(n8), .ip2(n6), .ip3(n14), .op(n13) ); inv_4 U13 ( .ip(B[1]), .op(n9) ); inv_4 U14 ( .ip(A[1]), .op(n10) ); inv_4 U15 ( .ip(A[2]), .op(n11) ); inv_4 U16 ( .ip(B[2]), .op(n12) ); nor2_2 U17 ( .ip1(n7), .ip2(n3), .op(n22) ); nor3_2 U18 ( .ip1(n13), .ip2(n2), .ip3(n16), .op(n15) ); xor2_2 U19 ( .ip1(n17), .ip2(n15), .op(\sum[3] ) ); nand2_2 U20 ( .ip1(A[0]), .ip2(B[0]), .op(n14) ); inv_2 U21 ( .ip(A[3]), .op(n18) ); nand2_2 U22 ( .ip1(A[0]), .ip2(B[0]), .op(n19) ); nand2_2 U23 ( .ip1(A[1]), .ip2(B[1]), .op(n20) ); xor2_2 U24 ( .ip1(B[3]), .ip2(n18), .op(n17) ); dp_2 \Z_reg[0] ( .ck(CLK), .ip(\sum[0] ), .q(Z[0]) ); dp_2 \Z_reg[1] ( .ck(CLK), .ip(\sum[1] ), .q(Z[1]) ); dp_2 \Z_reg[2] ( .ck(CLK), .ip(\sum[2] ), .q(Z[2]) ); dp_2 \Z_reg[3] ( .ck(CLK), .ip(\sum[3] ), .q(Z[3]) ); xor2_2 U25 ( .ip1(A[1]), .ip2(B[1]), .op(n21) ); xor2_2 U26 ( .ip1(B[2]), .ip2(A[2]), .op(n23) ); xor2_2 U27 ( .ip1(B[0]), .ip2(A[0]), .op(\sum[0] ) ); xor2_2 U28 ( .ip1(n1), .ip2(n21), .op(\sum[1] ) ); xor2_2 U29 ( .ip1(n23), .ip2(n22), .op(\sum[2] ) ); endmodule