加法器学习
半加器的设计
描述的是一位二进制加法,具体形式真值表如下:
A | B | S | Cin |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
综上可知:当A = 1,B = 1时,得到Sum = 0,Cin = 1;A = 0 ,B = 0,S = 0,Cin = 0,其他的情况全是S = 1的情况,可以联想到 异或的特性:相同为0,不同为1,所以Sum的计算可以用 A^B 得到
而Cin刚好满足与的特性,所以 Cin = A & B
全加器的设计
与半加器不一样的是 全加器的输入有多个,所以需要存一个低位进位,再与A 和 B做异或运算
A | B | 上一位进位Cin | S | Cout |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
相应逻辑表达式就是
S = A ^ B ^ Cin
Cout = AB + ACin + BCin
行波进位加法器
原理:进位依次从低位到高位传递
原理图长这样:
电路搭出来的效果是这样
用四个全加法器,然后四位二进制数两两低位加到高位,内部进位由全加法器实现即可