`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] CO_REG ;
lca_1 lca_1_0(
. A (A_in[0]) ,
. B (B_in[0]),
. c_1 (C_1),
. CO (CO_REG[0]),
. S (S[0])
);
lca_1 lca_1_1(
. A (A_in[1]) ,
. B (B_in[1]),
. c_1 (CO_REG[0]),
. CO (CO_REG[1]),
. S (S[1])
);
lca_1 lca_1_2(
. A (A_in[2]) ,
. B (B_in[2]),
. c_1 (CO_REG[1]),
. CO (CO_REG[2]),
. S (S[2])
);
lca_1 lca_1_3(
. A (A_in[3]) ,
. B (B_in[3]),
. c_1 (CO_REG[2]),
. CO (CO_REG[3]),
. S (S[3])
);
assign CO = CO_REG[3];
endmodule
module lca_1(
input A ,
input B ,
input c_1 ,
output CO ,
output S
);
wire P ;
wire G ;
assign P = A ^ B ;
assign G = A & B ;
assign CO= G | (P & c_1) ;
assign S = P ^ c_1 ;
endmodule
超前进位加法器 和普通加法器写法的不同之处在于,单bit加法器是如何构造的,不管多少位 ,例化方式都是一样的。

京公网安备 11010502036488号