module Add2 (input [1:0] I0, input [1:0] I1, output [1:0] O); wire inst0_O; wire inst1_CO; wire inst2_O; wire inst3_CO; SB_LUT4 #(.LUT_INIT(16'hC33C)) inst0 (.I0(1'b0), .I1(I0[0]), .I2(I1[0]), .I3(1'b0), .O(inst0_O)); SB_CARRY inst1 (.I0(I0[0]), .I1(I1[0]), .CI(1'b0), .CO(inst1_CO)); SB_LUT4 #(.LUT_INIT(16'hC33C)) inst2 (.I0(1'b0), .I1(I0[1]), .I2(I1[1]), .I3(inst1_CO), .O(inst2_O)); SB_CARRY inst3 (.I0(I0[1]), .I1(I1[1]), .CI(inst1_CO), .CO(inst3_CO)); assign O = {inst2_O,inst0_O}; endmodule module Register2CE (input [1:0] I, output [1:0] O, input CLK, input CE); wire inst0_Q; wire inst1_Q; //SB_DFFE #(.INIT(1'b0)) inst0 (.C(CLK), .E(CE), .D(I[0]), .Q(inst0_Q)); //SB_DFFE #(.INIT(1'b0)) inst1 (.C(CLK), .E(CE), .D(I[1]), .Q(inst1_Q)); SB_DFFE inst0 (.C(CLK), .E(CE), .D(I[0]), .Q(inst0_Q)); SB_DFFE inst1 (.C(CLK), .E(CE), .D(I[1]), .Q(inst1_Q)); assign O = {inst1_Q,inst0_Q}; endmodule module top (input CLKIN, input A, input CE, output D1); wire [1:0] inst0_O; wire [1:0] inst1_O; Add2 inst0 (.I0(inst1_O), .I1({1'b0,1'b1}), .O(inst0_O)); Register2CE inst1 (.I(inst0_O), .O(inst1_O), .CLK(CLKIN), .CE(CE)); assign D1 = inst1_O[1]; endmodule