// Generated by ac_shell v4.0-s008 on Mon Aug 22 14:12:20 CST 2005. // Restrictions concerning the use of Ambit BuildGates are covered in the // license agreement. Distribution to third party EDA vendors is // strictly prohibited. module counter_4bit(out, in, load, clear, cnt, clk); output [3:0] out; input [3:0] in; input load; input clear; input cnt; input clk; wire [3:0] Q_2; nand2_2 i_39(.ip1(n_38), .ip2(n_39), .op(n_23)); nor2_1 i_38(.ip1(clear), .ip2(load), .op(n_33)); nand2_2 i_37(.ip1(n_25), .ip2(n_15), .op(Q_2[0])); nand2_1 i_34(.ip1(in[0]), .ip2(n_37), .op(n_15)); nand2_2 i_32(.ip1(n_33), .ip2(n_23), .op(n_25)); inv_1 i_30(.ip(out[0]), .op(n_28)); nand2_2 i_21(.ip1(n_16), .ip2(n_29), .op(Q_2[2])); nand2_2 i_20(.ip1(n_33), .ip2(n_24), .op(n_16)); nand2_1 i_242(.ip1(in[2]), .ip2(n_37), .op(n_29)); nand3_2 i_11(.ip1(n_18), .ip2(n_30), .ip3(n_7), .op(Q_2[3])); nand3_1 i_10(.ip1(n_10), .ip2(n_8), .ip3(n_5), .op(n_18)); nand2_1 i_27(.ip1(n_5), .ip2(n_8), .op(n_17)); inv_2 i_13(.ip(n_22), .op(n_10)); inv_2 i_14(.ip(n_35), .op(n_8)); inv_1 i_15(.ip(n_31), .op(n_5)); nand2_2 i_1(.ip1(n_9), .ip2(n_2), .op(n_24)); nand2_2 i_36(.ip1(n_4), .ip2(n_3), .op(n_2)); inv_2 i_5(.ip(n_11), .op(n_3)); inv_2 i_35(.ip(out[2]), .op(n_4)); nand2_2 i_3(.ip1(n_13), .ip2(n_20), .op(Q_2[1])); nand2_2 i_29(.ip1(n_33), .ip2(n_14), .op(n_13)); nand2_2 i_24(.ip1(n_19), .ip2(n_27), .op(n_14)); or2_2 i_42(.ip1(n_28), .ip2(cnt), .op(n_38)); nand2_1 i_41(.ip1(cnt), .ip2(n_28), .op(n_39)); nand2_1 i_9(.ip1(out[1]), .ip2(n_31), .op(n_19)); or2_2 i_8(.ip1(n_31), .ip2(out[1]), .op(n_27)); nand2_1 i_4(.ip1(n_17), .ip2(n_6), .op(n_7)); nand2_2 i_26(.ip1(out[3]), .ip2(n_33), .op(n_21)); nand2_2 i_23(.ip1(n_12), .ip2(n_33), .op(n_22)); inv_2 i_22(.ip(n_21), .op(n_6)); inv_2 i_18(.ip(out[3]), .op(n_12)); nand2_2 i_33(.ip1(out[0]), .ip2(cnt), .op(n_31)); nand2_1 i_17(.ip1(n_11), .ip2(out[2]), .op(n_9)); nand3_2 i_2(.ip1(cnt), .ip2(out[0]), .ip3(out[1]), .op(n_11)); nand2_1 i_16(.ip1(in[1]), .ip2(n_37), .op(n_20)); nand2_1 i_25(.ip1(in[3]), .ip2(n_37), .op(n_30)); nand2_1 i_28(.ip1(out[1]), .ip2(out[2]), .op(n_35)); nor2_1 i_6(.ip1(clear), .ip2(n_63), .op(n_37)); dp_2 Q_reg_0(.ck(clk), .ip(Q_2[0]), .q(out[0])); dp_2 Q_reg_1(.ck(clk), .ip(Q_2[1]), .q(out[1])); dp_2 Q_reg_2(.ck(clk), .ip(Q_2[2]), .q(out[2])); dp_2 Q_reg_3(.ck(clk), .ip(Q_2[3]), .q(out[3])); inv_1 i_97(.ip(load), .op(n_63)); endmodule