题解 | #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
);
wire c1,c2,c3;
wire cout1, cout2, cout3;
wire [3:0] g, p;
// 算出 G 和 P
and a1 (g[0], A_in[0], B_in[0]);
xor x1 (p[0], A_in[0], B_in[0]);
and a2 (g[1], A_in[1], B_in[1]);
xor x2 (p[1], A_in[1], B_in[1]);
and a3 (g[2], A_in[2], B_in[2]);
xor x3 (p[2], A_in[2], B_in[2]);
and a4 (g[3], A_in[3], B_in[3]);
xor x4 (p[3], A_in[3], B_in[3]);
// 算出Cout(本级) = G(本级) + P(本级) * Cout(上一级)
and a5 (c1, p[0], C_1);
or o1 (cout1, g[0], c1);
and a6 (c2, p[1], cout1);
or o2 (cout2, g[1], c2);
and a7 (c3, p[2], cout2);
or o3 (cout3, g[2], c3);
and a8 (c4, p[3], cout3);
or o4 (CO, g[3], c4);
// 算出S
xor x5 (S[0], p[0], C_1);
xor x6 (S[1], p[1], cout1);
xor x7 (S[2], p[2], cout2);
xor x8 (S[3], p[3], cout3);
endmodule
