module fadd(sum, cout, a, b, cin); output sum, cout; input a, b, cin; assign sum = a ^ b ^ cin; assign cout = a & b | b & cin | a & cin; endmodule module ripple4(sum, c4, c3, c2, c1, a, b, c0); output [3:0] sum; output c4, c3, c2, c1; input [3:0] a; input [3:0] b; input c0; fadd bit0(sum[0], c1, a[0], b[0], c0); fadd bit1(sum[1], c2, a[1], b[1], c1); fadd bit2(sum[2], c3, a[2], b[2], c2); fadd bit3(sum[3], c4, a[3], b[3], c3); endmodule