数字运算电路


在本章中,我们将讨论二进制加法器和二进制减法器等基本运算电路。这些电路可以使用二进制值 0 和 1 进行操作。

二进制加法器

最基本的算术运算是加法。执行两个二进制数相加的电路称为二进制加法器。首先,让我们实现一个加法器,它执行两位的加法。

半加法器

半加器是一个组合电路,它执行两个单位的二进制数A和B的加法。它产生两个输出和,S 和进位,C。

半加器的真值表如下所示。

输入 输出
A C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

当我们进行两位加法时,得到的和可以是十进制的 0 到 2 之间的值。我们可以用二进制来表示十进制数字 0 和 1。但是,我们不能用二进制表示十进制数字 2。因此,我们需要两个位来用二进制表示它。

令 sum 为 S 为最低有效位并进位,C 为结果和的最高有效位。对于输入的前三个组合,进位,C 为零,S 的值将为零或一,具体取决于输入中存在的1 的数量。但是,对于最后的输入组合,进位 C 为 1,总和 S 为零,因为所得总和为 2。

从真值表中,我们可以直接将每个输出的布尔函数写为

$$S=A \oplus B$$

$C=AB$

我们可以用2输入异或门和2输入与门来实现上述功能。半加器电路图如下图所示

半加法器

在上述电路中,两个输入异或门和两个输入与门分别产生和、S 和进位、C。因此,半加器执行两位的加法。

全加器

全加器是一个组合电路,它执行A、B、C三位的加法。其中,A 和 B 是两个并行的有效位,C in是进位位,由前一级生成。该全加器还产生两个输出和、S &进位、C out,这与半加器类似。

全加器的真值表如下所示。

输入 输出
A C 输出C S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

当我们进行三位加法时,得到的和可以是十进制的 0 到 3 之间的值。我们可以用二进制来表示十进制数字 0 和 1。但是,我们不能用二进制来表示十进制数字 2 和 3。因此,我们需要两位来以二进制表示这两个十进制数字。

令 sum 为最低有效位并进位,C out为结果和的最高有效位。很容易在真值表中填充所有输入组合的输出值。只需计算输入中出现的1 的数量,然后在输出中写入等效的二进制数即可。如果C in等于0,则全加器真值表与半加器真值表相同。

化简后我们将得到每个输出的以下布尔函数。

$$S=A \oplus B \oplus C_{in}$$

$c_{out} = AB + \left ( A \oplus B \right )c_{in}$

当输入处存在奇数个 1 时,总和 S 等于 1。我们知道异或门产生一个输出,这是一个奇函数。因此,我们可以使用两个 2 输入异或门或一个 3 输入异或门来生成和 S。我们可以使用两个 2 输入与门和一个或门来实现进位 C输出。全加器电路图如下图所示。

全加器

该加法器称为全加器,因为要实现一个全加器,我们需要两个半加器和一个或门。如果C in为零,则全加器变为半加器。我们可以从上面的电路图或者全加器输出的布尔函数中很容易地验证这一点。

4 位二进制加法器

4 位二进制加法器执行两个 4 位数字的加法。设 4 位二进制数 $A=A_{3}A_{2}A_{1}A_{0}$ 和 $B= B_{3}B_{2}B_{1}B_{0}$。我们可以通过以下两种方式之一实现 4 位二进制加法器。

  • 使用一个半加器来执行两个最低有效位的加法,使用三个全加器来执行三个较高有效位的加法。

  • 使用四个全加器以保持一致性。由于初始进位C in为零,因此用于添加最低有效位的全加器变成半加器。

我们暂时考虑第二种方法。4位二进制加法器的框图如下图所示。

四位二进制加法器

这里,4 个全加器是级联的。每个全加器获取两个并行输入 A 和 B 的相应位。一个全加器的进位输出将作为后续高阶全加器的进位输入。该4位二进制加法器产生最多具有5位的结果和。因此,最后一级全加器的执行将是MSB。

这样,我们只需级联所需数量的全加器就可以实现任何高阶二进制加法器。该二进制加法器也称为纹波进位(二进制)加法器,因为进位从一个级传播(纹波)到下一级。

二进制减法器

执行两个二进制数减法的电路称为二进制减法器。我们可以通过以下两种方法来实现二进制减法器。

  • 级联全减法器
  • 2的补码法

在第一种方法中,我们将通过级联“n”个完整减法器来获得一个n位二进制减法器。因此,首先您可以实现半减法器和全减法器,类似于半加器和全加器。然后,您可以通过级联“n”个完整减法器来实现 n 位二进制减法器。因此,我们将有两个独立的电路用于两个二进制数的二进制加法和减法。

在第二种方法中,我们可以使用相同的二进制加法器来减去两个二进制数,只需对第二个输入进行一些修改即可。因此,内部发生二进制加法运算,但输出是结果减法。

我们知道两个二进制数 A 和 B 的减法可以写为:

$$AB = A+\left (\: B \right 的 {2} 的 \: 补语 \: )$$

$\Rightarrow AB = A+\left ( {1} 的 \: B \right 的补语 \: )+1$

4 位二进制减法器

4 位二进制减法器产生两个 4 位数字的减法。设 4 位二进制数 $A=A_{3}A_{2}A_{1}A_{0}$ 和 $B= B_{3}B_{2}B_{1}B_{0}$。在内部,4 位二进制减法器的操作与 4 位二进制加法器类似。如果将二进制数A的正常位、二进制数B的补码位和初始进位(借位)、C作为一输入到4位二进制加法器,则成为4位二进制减法器。4位二进制减法器框图如下图所示。

4 位二进制减法器

该 4 位二进制减法器产生最多 5 位的输出。如果二进制数 A 大于二进制数 B,则输出的 MSB 为零,其余位保存 AB 的大小。如果二进制数 A 小于二进制数 B,则输出的 MSB 为 1。因此,取输出的 2 补码即可得到 AB 的大小。

这样,我们只需级联所需数量的全加器并进行必要的修改,就可以实现任何高阶二进制减法器。

二进制加法器/减法器

可以随时对两个二进制数进行加法或减法的电路称为二进制加法器/减法器。二进制加法器和二进制减法器都包含一组级联的全加器。二进制数A的输入位直接应用于二进制加法器和二进制减法器。

二进制加法器和二进制减法器中全加器的输入存在两个差异。

  • 二进制数B的输入位直接应用于二进制加法器中的全加器,而二进制数B的补码位应用于二进制减法器中的全加器。

  • 初始进位C 0 = 0应用于4位二进制加法器,而初始进位(借位)C 0 = 1应用于4位二进制减法器。

我们知道,当其他输入为零时, 2 输入异或门会产生一个与第一个输入相同的输出。类似地,它产生一个输出,当其他输入为 1 时,该输出是第一个输入的补码。

因此,我们可以将二进制数B的输入位应用于2输入异或门。所有这些异或门的另一个输入是C 0。因此,根据 C 0的值,异或门产生二进制数 B 的正常位或补码位。

4 位二进制加法器/减法器

4 位二进制加法器/减法器根据初始进位或借位的值生成两个 4 位数字的加法或减法,