目录
前言
个人学习简单总结,方便自己后续查询和复习
一、半加器
1、真值表
半加器,不考虑进位的加法器;输入A和B,输出和数sum和进位cout,真值表如下:
A | B | sum | cout |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
数字逻辑表达式:
2、代码
代码如下:
module half_adder(
input A,
input B,
output cout,
output sum
);
assign sum = A ^ B;
assign cout = A & B;
endmodule
二、全加器
1、真值表
全加器,在半加器的基础上,引入一个进位输入,三输入,两输出;真值表如下:
A | B | cin | sum | cout |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
A、B、cin中,如果输入1的个数是奇数,则sum为1,输入1的个数是偶数(包含0),则sum为0.
A、B、cin中,有两个数或者以上个1,则cout为1
2、代码
代码如下:
module full_adder(
input A,
input B,
input cin,
output sum,
output cout
);
assign sum = A ^ B ^ cin;
assign cout = (A & B) | (A & cin) |(B & cin);
endmodule