module counter ( clock, in, latch, dec, zero ); input [3:0] in; input clock, latch, dec; output zero; wire \value[3] , \value[2] , \value[1] , \value[0] , n3, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20, n21, n22, n23, n24, n25, n26, n27, n28, n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42; and2_2 U7 ( .ip1(n24), .ip2(n41), .op(n19) ); or2_2 U8 ( .ip1(n21), .ip2(n34), .op(n28) ); nor2_2 U9 ( .ip1(n41), .ip2(\value[1] ), .op(n3) ); inv_4 U10 ( .ip(n3), .op(n34) ); nor3_2 U11 ( .ip1(\value[3] ), .ip2(\value[2] ), .ip3(n34), .op(zero) ); inv_4 U12 ( .ip(zero), .op(n26) ); nand2_2 U13 ( .ip1(n38), .ip2(n6), .op(n31) ); or3_2 U14 ( .ip1(n40), .ip2(n8), .ip3(n9), .op(n30) ); nand2_2 U15 ( .ip1(n42), .ip2(n11), .op(n29) ); or2_2 U16 ( .ip1(n36), .ip2(n14), .op(n32) ); nor2_2 U17 ( .ip1(latch), .ip2(n33), .op(n15) ); nor2_2 U18 ( .ip1(n15), .ip2(n17), .op(n16) ); and2_2 U20 ( .ip1(in[3]), .ip2(latch), .op(n14) ); nor2_2 U21 ( .ip1(n19), .ip2(n17), .op(n20) ); nor2_2 U23 ( .ip1(n34), .ip2(n21), .op(n9) ); and2_2 U24 ( .ip1(in[1]), .ip2(latch), .op(n8) ); nor2_2 U25 ( .ip1(latch), .ip2(n3), .op(n22) ); nor2_2 U26 ( .ip1(n22), .ip2(n17), .op(n23) ); nand2_2 U27 ( .ip1(n25), .ip2(n24), .op(n21) ); nand2_2 U28 ( .ip1(dec), .ip2(n26), .op(n27) ); nand2_2 U29 ( .ip1(n24), .ip2(n27), .op(n25) ); nand2_2 U30 ( .ip1(in[0]), .ip2(latch), .op(n11) ); nand2_2 U31 ( .ip1(in[2]), .ip2(latch), .op(n6) ); mux2_2 U32 ( .ip1(n21), .ip2(n25), .s(n41), .op(n10) ); mux2_2 U33 ( .ip1(n28), .ip2(n23), .s(n37), .op(n5) ); inv_4 U34 ( .ip(\value[1] ), .op(n12) ); inv_4 U35 ( .ip(\value[3] ), .op(n18) ); inv_4 U36 ( .ip(n25), .op(n17) ); inv_4 U37 ( .ip(latch), .op(n24) ); dp_2 \value_reg[0] ( .ck(clock), .ip(n29), .q(\value[0] ) ); dp_2 \value_reg[1] ( .ck(clock), .ip(n39), .q(\value[1] ) ); dp_2 \value_reg[2] ( .ck(clock), .ip(n31), .q(\value[2] ) ); dp_2 \value_reg[3] ( .ck(clock), .ip(n32), .q(\value[3] ) ); nor2_2 U38 ( .ip1(n37), .ip2(n34), .op(n33) ); inv_4 U39 ( .ip(n13), .op(n35) ); inv_4 U40 ( .ip(n35), .op(n36) ); nor2_1 U41 ( .ip1(n16), .ip2(n18), .op(n13) ); buf_1 U42 ( .ip(\value[2] ), .op(n37) ); buf_1 U43 ( .ip(n5), .op(n38) ); buf_2 U44 ( .ip(n30), .op(n39) ); buf_2 U45 ( .ip(n7), .op(n40) ); nor2_1 U46 ( .ip1(n20), .ip2(n12), .op(n7) ); buf_1 U47 ( .ip(\value[0] ), .op(n41) ); buf_1 U48 ( .ip(n10), .op(n42) ); endmodule