题解 | 4bit超前进位加法器电路
4bit超前进位加法器电路
https://www.nowcoder.com/practice/4d5b6dc4bb2848039da2ee40f9738363
`timescale 1ns/1ns
module lca_4(
input [3:0] A_in ,
input [3:0] B_in ,
input C_1 ,
output wire CO ,
output wire [3:0] S
);
//4bit超前进位加法器
wire G_0,G_1,G_2,G_3 ;
wire P_0,P_1,P_2,P_3 ;
wire CO_0,CO_1,CO_2,CO_3 ;
// S = A^B^Ci CO = AB + (A^B)Ci
// Gi = Ai&Bi Pi = Ai^Bi
assign G_0 = A_in[0] & B_in[0];
assign G_1 = A_in[1] & B_in[1];
assign G_2 = A_in[2] & B_in[2];
assign G_3 = A_in[3] & B_in[3];
assign P_0 = A_in[0] ^ B_in[0];
assign P_1 = A_in[1] ^ B_in[1];
assign P_2 = A_in[2] ^ B_in[2];
assign P_3 = A_in[3] ^ B_in[3];
assign CO_0 = G_0 | (P_0 & C_1);
assign CO_1 = G_1 | (P_1 & (CO_0));
assign CO_2 = G_2 | (P_2 & (CO_1));
assign CO_3 = G_3 | (P_3 & (CO_2));
assign S[0] = P_0 ^ C_1;
assign S[1] = P_1 ^ CO_0;
assign S[2] = P_2 ^ CO_1;
assign S[3] = P_3 ^ CO_2;
assign CO = CO_3;
endmodule
