module updown_counter ( count, up_down, clk, reset ); output [3:0] count; input [1:0] up_down; input clk, reset; wire N15, N16, N17, N18, n5, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20, n21, n22, n23, n24, n25, n26, n27, n28, n29; drp_1 \count_reg[0] ( .ip(N15), .ck(clk), .rb(n5), .q(count[0]) ); drp_1 \count_reg[1] ( .ip(N16), .ck(clk), .rb(n5), .q(count[1]) ); drp_1 \count_reg[2] ( .ip(N17), .ck(clk), .rb(n5), .q(count[2]) ); drp_1 \count_reg[3] ( .ip(N18), .ck(clk), .rb(n5), .q(count[3]) ); inv_1 U13 ( .ip(reset), .op(n5) ); nor2_1 U14 ( .ip1(n10), .ip2(n11), .op(N18) ); xor2_1 U15 ( .ip1(n12), .ip2(n13), .op(n11) ); nand2_1 U16 ( .ip1(n14), .ip2(n15), .op(n13) ); nand2_1 U17 ( .ip1(count[2]), .ip2(n16), .op(n15) ); or2_1 U18 ( .ip1(n17), .ip2(n18), .op(n16) ); nand2_1 U19 ( .ip1(n18), .ip2(n17), .op(n14) ); xor2_1 U20 ( .ip1(count[3]), .ip2(n19), .op(n12) ); nor2_1 U21 ( .ip1(n10), .ip2(n20), .op(N17) ); xor2_1 U22 ( .ip1(n21), .ip2(n17), .op(n20) ); nand2_1 U23 ( .ip1(n22), .ip2(n23), .op(n17) ); nand2_1 U24 ( .ip1(count[1]), .ip2(n24), .op(n23) ); nand2_1 U25 ( .ip1(n25), .ip2(n19), .op(n24) ); nand2_1 U26 ( .ip1(count[0]), .ip2(n18), .op(n22) ); xor2_1 U27 ( .ip1(count[2]), .ip2(n19), .op(n21) ); mux2_1 U28 ( .ip1(n26), .ip2(N15), .s(n27), .op(N16) ); xor2_1 U29 ( .ip1(n18), .ip2(count[1]), .op(n27) ); nor2_1 U30 ( .ip1(n10), .ip2(n25), .op(n26) ); inv_1 U31 ( .ip(count[0]), .op(n25) ); nor2_1 U32 ( .ip1(n10), .ip2(count[0]), .op(N15) ); and2_1 U33 ( .ip1(n19), .ip2(n28), .op(n10) ); nand2_1 U34 ( .ip1(up_down[0]), .ip2(n29), .op(n28) ); inv_1 U35 ( .ip(n18), .op(n19) ); nor2_1 U36 ( .ip1(n29), .ip2(up_down[0]), .op(n18) ); inv_1 U37 ( .ip(up_down[1]), .op(n29) ); endmodule