4 BIT RIPPLE CARRY ADDER
module full_adder(
input A,
input B,
input Cin,
output S,
output Cout
);
assign S = A ^ B ^ Cin;
assign Cout = (A & B) | (B & Cin) | (A & Cin);
endmodule
module rca_4bit(
input wire [3:0] A, B, // 4-bit operands
input wire Cin, // carry-in
output wire [3:0] S, // 4-bit sum
output wire Cout // carry-out
);
wire C1, C2, C3;
full_adder FA0 (A[0], B[0], Cin, S[0], C1);
full_adder FA1 (A[1], B[1], C1, S[1], C2);
full_adder FA2 (A[2], B[2], C2, S[2], C3);
full_adder FA3 (A[3], B[3], C3, S[3], Cout);
endmodule