module top (input ci, input cyinit, input s0, output o0); wire [3:0] o, passthru_co, passthru_o; CARRY4 carry4_inst ( // This will produce the following warning, but will still generate a bitstream.. needs some testing in hardware. // WARNING: [DRC REQP-16] virt5_carry4_input_rule1: CYINIT and CI of carry4_inst cannot be used at the same time. .CI(passthru_co[3]), .CYINIT(cyinit), .DI(4'b0000), .S({3'b000, s0}), .O(o) ); CARRY4 carry4_passthru ( .CI(1'b1), .CYINIT(1'b1), .DI({ci, 3'b000}), .S(4'b0000), .CO(passthru_co) ); assign o0 = o[0]; endmodule