0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 ... 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 ... 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 ... 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 ... 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 ... 0 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 ... 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 ... 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 ... 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 ... 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 ... 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 ... 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 ... 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 ...
下面是74LS283四位二进制全加器的逻辑电路图:
以上部分是对4位二进制全加器电路硬件的详细设计。
3)全减器
全减器有两种构造方法 方法一:
全减器处理二进制算法的一位,其输入位为X(被减数),Y(减数)和BIN(借位输入),其输出位为D(差)和BOUT(借位输入)。根据二进制减法表,可以写出如下等式:
D=X○○○YBIN
BOUT=X’* Y + X’* BIN + BIN
这些等式非常类似于全加器中的等式,应该不足为奇。所以我们可以按照全加器的构成思路来构造全减器。 方法二:
根据二进制补码的减法运算,X-Y可以通过加法操作来完成,也就是说,可以通过把Y的二进制补码加到X上来完成。Y的二进制补码等于Y’+1,其中Y’等于Y的各个位取法。所以
X-Y=X +(-Y)= X +(Y’+1) 即全减器可以通过全加器来实现。
SELECT B4 B3 B2 B1 CIN
我们将74LS283的B口的四个输入作如上图的改动,添加了一个选择端select,通过他来控制是做加法运算还是减法运算。
做减法运算Select=1时各个与非门的输出与输入相反,达到了去反的目的,此时cin=1,从而实现了减法功能。
做加法运算Select=0时各个与非门的输出与输入相同,达到了保持不变目的,此时cin=外部输入,从而实现了加法功能。
全减器的真值表(利用74ls283构成) A3 A2 A1 A0 B3 B2 B1 B0 CIN S3 S2 S1 S0 COUT 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 ... ... ... ... ... ... ... ... ... ... ... ... ... ...
所以总的逻辑电路图如下