You are on page 1of 1

module FA(s,c,a,b,cin);

input a,b,cin;
output s,c;
assign s=a^b^cin;
assign c=(a&b)|(b&c)|(c&a);
endmodule
module RCA4(A,B,Ci,so,Co);
input [3:0] A,B;
input Ci;
output [3:0] so;
output Co;
wire c1,c2,c3,c4;
FA aa(so[0],c1,A[0],B[0],Ci);
FA ab(so[1],c2,A[1],B[1],c1);
FA ac(so[2],c3,A[2],B[2],c2);
FA ad(so[3],Co,A[3],B[3],c3);
endmodule
module CSA8(A,B,Ci,So,Co);
input [7:0] A,B;
input Ci;
output [7:0] So;
output Co;
wire [3:0] stemp1,stemp0;
wire c4;
wire c80,c81;
RCA4 RCA4in(A[3:0],B[3:0],Ci,So[3:0],c4);
RCA4 RCA41 (A[7:4],B[7:4],1'b1,stemp1,c81);
RCA4 RCA40 (A[7:4],B[7:4],1'b0,stemp0,c80);
assign So[7:4] = c4?stemp1:stemp0;
assign Co=
c4?c81:c80;
endmodule

You might also like