一、1位半加器的实现
1.1 原理
半加器由两个一位输入相加,输出一个结果位和进位,没有进位输入的加法器电路。
1.2 真值表
1.3 逻辑表达式
S = A ^ B
C = A & B
1.4 Verilog 实现
module half_adder(
input a,
input b,
output sum,
output c_out
);
assign sum = a^b;
assign cout = a&b;
endmodule
二、1位全加器的实现
2.1 原理
由两个1位的加数和一个进位作为输入,输出一个结果位和进位,与半加器相比,全加器不只考虑本位计算结果是否有进位,也考虑上一位对本位的进位。
2.2 真值表
2.3 逻辑表达式
Si =Ai ^ Bi^ Ci-1
Ci = AiBi + AiCi-1 + BiCi-1 = AiBi + (Ai+Bi)Ci-1
2.4 Verilog 实现
2.4.1 两个半加器和一个或门实现
module full_adder(
input a,
input b,
input c_in,
output sum,
output c_out
);
wire sum1;
wire c_out1,c_out2;
half_adder half_adder1(.a(a),.b(b),.sum(sum1),.c_out(c_out1));
half_adder half_adder2(.a(co),