使用 NAND 门的全减法器
在数字电子技术中,减法器是一种组合逻辑电路,用于执行两个二进制数的减法。但是,二进制数的减法可以使用加法器电路通过取 1 或 2 的补码来执行。但是,我们也可以实现一个专用电路来执行两个二进制数的减法。
在两个二进制数的减法中,数字的每个减数位都从其对应的有效被减数位中减去以形成差位。在减法过程中,如果被减数位小于减数位,则从下一个位置借用 1。根据输入的位数,减法器有两种类型,即半减法器和全减法器。
什么是半减法器?
半减法器以两个二进制数字为输入,输出一个差位和一个借位(如果有)。另一方面,全减法器以三个位为输入,即两个是输入位,一个是来自前一级的输入借位,输出一个差位和一个输出借位。
由于减法器是组合逻辑电路,即由逻辑门组成。我们可以使用不同类型的逻辑门(如 AND、OR、NOT、NAND、NOR 等)来实现全加器电路。在本文中,我们将讨论使用 NAND 门实现全减器。但在此之前,让我们先了解一下全减器的基础知识。
什么是全减器?
全减器 是一个组合电路,具有三个输入 A、B、bin 和两个输出 d 和 b。其中,A 是被减数,B 是减数,bin 是前一级产生的借位,d 是差值输出,b 是借位输出。全减法器的框图如图 1 所示。

全减法器的真值表
以下是全减法器的真值表 −
输入 | 输出 | |||
---|---|---|---|---|
A | B | bin | d (Difference) | b (Borrow) |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
从该表中,我们可以确定不同位(d)和借位输出(b)的方程。这些方程如下 −
全减法器的差 (d) 为,
$$\mathrm{Difference,\, d=A'B'b_{in}+AB'b'_{in}+A'Bb'_{in}+ABb_{in}=A\oplus B\oplus b_{in}}$$
全减法器的输出借位 (b) 为,
$$\mathrm{Borrow,\, b=A'B'b_{in}+A'Bb'_{in}+A'Bb_{in}+ABb_{in}}$$
现在,让我们讨论使用 NAND 门实现全减法器。
使用 NAND 门实现全减法器
我们可以实现仅使用 NAND 门的全减法器电路如图 2 所示。

从使用 NAND 逻辑的全减法器的逻辑电路中我们可以看出,在 NAND 逻辑中实现全减法器需要 9 个 NAND 门。
NAND 逻辑中全减法器的差分位 (d) 和输出借位 (b) 的输出方程如下 −
Difference Bit (d)
$$\mathrm{Difference,\, d=\overline{\overline{(A\oplus B)\cdot \overline{(A\oplus B)b_{in}}}\cdot \overline{b_{in}\cdot \overline{(A\oplus B)b_{in}}}}=A\oplus B\oplus b_{in}}$$
其中,
$$\mathrm{A\oplus B=\overline{\overline{A \cdot\overline{AB}}\cdot \overline{B \cdot\overline{AB}}}}$$
Borrow Bit (b)
$$\mathrm{Borrow,\, b=\overline{\overline{B \cdot\overline{AB}}\cdot \overline{b_{in} \overline{[b_{in}\cdot (A\oplus B)]}}}=\overline{A}B+b_{in}(\overline{A\oplus B})}$$
这样,我们就可以仅使用 NAND 门来实现全减法器。