数字组合电路
组合电路由逻辑门组成。这些电路以二进制值操作。组合电路的输出取决于当前输入的组合。下图显示了组合电路的框图。
此组合电路具有"n"个输入变量和"m"个输出。输入变量的每种组合都会影响输出。
组合电路的设计过程
根据给定的规范找到所需的输入变量和输出数量。
制定真值表。如果有"n"个输入变量,那么将有 2n 种可能的组合。对于每个输入组合,找到输出值。
找到每个输出的布尔表达式。如有必要,简化这些表达式。
使用逻辑门实现与每个输出相对应的上述布尔表达式。
代码转换器
我们在名为代码的章节中讨论了各种代码。将一种代码转换为另一种代码的转换器称为代码转换器。这些代码转换器基本上由逻辑门组成。
示例
二进制代码到格雷码转换器
让我们实现一个转换器,将 4 位二进制代码 WXYZ 转换为其等效的格雷码 ABCD。
下表显示了 4 位二进制代码到格雷码转换器的真值表。
二进制代码 WXYZ | WXYZ 格雷码 ABCD |
---|---|
0000 | 0000 |
0001 | 0001 |
0010 | 0011 |
0011 | 0010 |
0100 | 0110 |
0101 | 0111 |
0110 | 0101 |
0111 | 0100 |
1000 | 1100 |
1001 | 1101 |
1010 | 1111 |
1011 | 1110 |
1100 | 1010 |
1101 | 1011 |
1110 | 1001 |
1111 | 1000 |
从真值表中,我们可以为格雷码的每个输出位写出布尔函数,如下所示。
$$A=\sum m\left (8,9,10,11,12,13,14,15 ight )$$
$$B=\sum m\left (4,5,6,7,8,9,10,11 ight )$$
$$C=\sum m\left (2,3,4,5,10,11,12,13 ight )$$
$$D=\sum m\left (1,2,5,6,9,10,13,14 ight )$$
让我们使用 4 个变量 K-Map 简化上述函数。
下图显示了用于简化的4 个变量 K-Map 布尔函数 A。
通过对 8 个相邻函数进行分组,我们得到 $A=W$。
下图显示了用于简化 布尔函数 B 的 4 变量 K-Map。
有两组 4 个相邻函数。分组后,我们将得到 B 为
$$B={W}'X+W{X}'=W\oplus X $$
类似地,我们将得到以下布尔函数 C &简化后的 D。
$$C={X}'Y+X{Y}'=X \oplus Y$$
$$D={Y}'Z+Y{Z}'=Y \oplus Z$$
下图显示了 4 位二进制码到格雷码转换器的电路图。
由于输出仅取决于当前输入,因此此 4 位二进制码到格雷码转换器是组合电路。同样,您可以实现其他代码转换器。
奇偶校验位生成器
根据生成的奇偶校验位的类型,奇偶校验位生成器有两种类型。偶校验生成器生成偶校验位。类似地,奇校验生成器生成一个奇校验位。
偶校验生成器
现在,让我们为 3 位二进制输入 WXY 实现一个偶校验生成器。它生成一个偶校验位 P。如果输入中存在奇数个 1,则偶校验位 P 应为"1",以便结果字包含偶数个 1。对于其他输入组合,偶校验位 P 应为"0"。下表显示了偶校验生成器的真值表。
二进制输入 WXY | 偶校验位 P |
---|---|
000 | 0 |
001 | 1 |
010 | 1 |
011 | 0 |
100 | 1 |
101 | 0 |
110 | 0 |
111 | 1 |
从上面的真值表,我们可以将偶校验位的布尔函数写为
$$P={W}'{X}'Y+{W}'X{Y}'+W{X}'{Y}'+WXY$$
$\Rightarrow P={W}'\left ( {X}'Y+X{Y}' ight )+W\left ({X}'{Y}'+XY ight )$
$\Rightarrow P={W}'\left ( X \oplus Y ight )+W{\left (X \oplus Y ight )}'=W \oplus X \oplus Y$
下图为偶校验发生器的电路图。
该电路由两个异或门组成,每个门有两个输入。第一个异或门有两个输入 W 和 X,并产生输出 W + X。此输出作为第二个异或门的一个输入。第二个异或门的另一个输入是 Y,并产生输出 W + X + Y。
奇校验生成器
如果输入中存在偶数个 1,则奇校验位 P 应为"1",以便结果字包含奇数个 1。对于其他输入组合,奇校验位 P 应为"0"。
按照偶校验生成器的相同程序来实现奇校验生成器。奇校验发生器的电路图如下图所示。
上述电路图由第一级的异或门和第二级的异或非门组成。由于奇校验与偶校验正好相反,我们可以在偶校验发生器的输出端放置一个反相器。在这种情况下,第一级和第二级的每一级都包含一个异或门,第三级由一个反相器组成。
奇偶校验器
根据要检查的奇偶校验类型,奇偶校验器有两种类型。偶校验器检查传输数据中的错误,其中包含消息位和偶校验。类似地,奇校验器检查传输数据中的错误,该数据包含消息位和奇校验。
偶校验器
现在,让我们实现一个偶校验器电路。假设一个 3 位二进制输入 WXY 与一个偶校验位 P 一起传输。因此,结果字(数据)包含 4 位,将作为偶校验器的输入接收。
它生成一个偶校验位 E。如果接收到的数据包含偶数个 1,则该位将为零。这意味着,接收到的数据中没有错误。如果接收到的数据包含奇数个 1,则该偶校验位将为 1。这意味着,接收的数据中有错误。
下表显示了偶校验器的真值表。
4 位接收数据 WXYP | 偶校验位 E |
---|---|
0000 | 0 |
0001 | 1 |
0010 | 1 |
0011 | 0 |
0100 | 1 |
0101 | 0 |
0110 | 0 |
0111 | 1 |
1000 | 1 |
1001 | 0 |
1010 | 0 |
1011 | 1 |
1100 | 0 |
1101 | 1 |
1110 | 1 |
1111 | 0 |
从上面的真值表中,我们可以看出,当接收数据中存在奇数个 1 时,偶校验位值为"1"。这意味着偶校验位的布尔函数是一个奇函数。异或函数满足此条件。因此,我们可以直接将偶校验位的布尔函数写为
$$E=W \oplus X \oplus Y \oplus P$$
下图显示了偶校验器的电路图。
该电路由三个异或门组成,每个门有两个输入。第一级门产生 $W \oplus X$ 和 $Y \oplus P$ 的输出。处于第二级的异或门产生 $W \oplus X \oplus Y \oplus P$ 的输出
奇校验器
假设 3 位二进制输入 WXY 与奇校验位 P 一起传输。因此,结果字(数据)包含 4 位,将作为奇校验器的输入接收。
它生成一个 奇校验位 E。如果接收到的数据包含奇数个 1,则该位将为零。这意味着,接收到的数据中没有错误。如果接收到的数据包含偶数个 1,则该奇校验位将为 1。这意味着,接收到的数据中有错误。
按照偶校验器的相同程序来实现奇校验器。奇校验器的电路图如下图所示。
上述电路图由第一级异或门和第二级异或非门组成。由于奇校验与偶校验正好相反,我们可以在偶校验器的输出端放置一个反相器。在这种情况下,第一、第二和第三级分别包含两个异或门、一个异或门和一个反相器。