解题思路
①先将A和B用半加器加起来,生成和是s[0]和进位信号c[0];
②然后第一个半加器生成的和s[0]与Ci用半加器相加,得到的和s[1]即为全加器的和S;
③全加器进位信号的生成是这样:两次半加器产生的进位信号有一个为1,则全加器的进位信号Co为1。
代码实现
`timescale 1ns/1ns
module add_full(
input A ,
input B ,
input Ci ,
output wire S ,
output wire Co
);
wire [1:0] s,c;
add_half add_half_inst1(A, B, s[0], c[0]);
add_half add_half_inst2(Ci, s[0], s[1], c[1]);
assign S = s[1];
assign Co = |c;
endmodule
/********************add_half*********************************/
module add_half(
input A ,
input B ,
output wire S ,
output wire C
);
assign S = A ^ B;
assign C = A & B;
endmodule