数字组合电路
组合电路由逻辑门组成。这些电路以二进制值运行。组合电路的输出取决于当前输入的组合。下图为组合电路框图。
该组合电路具有“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 \right )$$
$$B=\sum m\left (4,5,6,7,8,9,10,11 \right )$$
$$C=\sum m\left (2,3,4,5,10,11,12,13 \right )$$
$$D=\sum m\left (1,2,5,6,9,10,13,14 \right )$$
让我们使用 4 个变量 K-Map 来简化上述函数。
下图显示了用于简化布尔函数 A 的4 变量 K-Map。
将 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”,以便结果字包含偶数个。对于其他输入组合,偶校验位,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$$
$\右箭头 P={W}'\left ({X}'Y+X{Y}' \right )+W\left ({X}'{Y}'+XY \right )$
$\Rightarrow P={W}'\left ( X \oplus Y \right )+W{\left (X \oplus Y \right )}'=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”。这意味着偶校验位的布尔函数是奇函数。异或函数满足这个条件。因此,我们可以直接将偶校验位的布尔函数写为
$$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”。这意味着接收到的数据有错误。
按照与偶奇偶校验检查器相同的过程来实现奇奇偶校验检查器。奇偶校验器的电路图如下图所示。
上述电路图由第一级异或门和第二级异或非门组成。由于奇校验与偶校验正好相反,因此我们可以在偶校验检查器的输出端放置一个反相器。在这种情况下,第一级、第二级和第三级分别包含两个异或门、一个异或门和一个反相器。