题解 | #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 [3:0] p,g;
wire [3:0] C;
assign C[0] = g[0] | (p[0]&C_1);
assign g = A_in&B_in;
assign p = A_in^B_in;
assign C[1] = g[1] | (g[0]&p[1]) | (p[0]&p[1]&C_1);
assign C[2] = g[2] | (g[1]&p[2]) | (g[0]&p[1]&p[2]) | (C_1&p[0]&p[1]&p[2]);
assign C[3] = g[3] | (g[2]&p[3]) | (g[1]&p[3]&p[2]) | (g[0]&p[1]&p[3]&p[2]) |(C_1&p[0]&p[1]&p[3]&p[2]);
assign CO = C[3];
assign S[0] = p[0] ^ C_1;
assign S[1] = p[1] ^ C[0];
assign S[2] = p[2] ^ C[1];
assign S[3] = p[3] ^ C[2];
endmodule
// 并行运算,与之前运算进位无关