数字电路 - 解码器
解码器 是一种组合电路,具有'n'条输入线和最多 2n 条输出线。当解码器启用时,其中一个输出将根据当前输入的组合处于高电平有效状态。这意味着解码器检测到特定代码。当解码器启用时,其输出只不过是'n'个输入变量(线)的最小项。
2 到 4 解码器
假设 2 到 4 解码器有两个输入 A1 和 A0 以及四个输出 Y3、Y2、Y1 和 Y0。下图显示了 2 对 4 解码器的框图。
当启用时,这四个输出中的一个将为每个输入组合的"1",E 为"1"。2 对 4 解码器的真值表如下所示。
启用 | 输入 | 输出 | ||||
---|---|---|---|---|---|---|
E | A1 | A0 | Y3 | Y2 | Y1 | Y0 |
0 | x | x | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | 0 | 0 |
从真值表中,我们可以将每个输出的布尔函数写为
$$Y_{3}=E.A_{1}.A_{0}$$
$$ Y_{2}=E.A_{1}.{A_{0}}'$$
$$ Y_{1}=E.{A_{1}}'.A_{0}$$
$$ Y_{0}=E.{A_{1}}'.{A_{0}}'$$
每个输出都有一个乘积项。因此,总共有四个乘积项。我们可以通过使用四个具有三个输入的 AND 门和两个反相器来实现这四个乘积项。 2 至 4 译码器的电路图如下图所示。
因此,2 至 4 译码器的输出不过是两个输入变量 A1 和 A0 的最小项,当使能时,E 等于一。如果使能,E 为零,则译码器的所有输出都将等于零。
类似地,3 至 8 译码器产生三个输入变量 A2、A1 和 A0 的八个最小项。 A0 和 4 到 16 解码器产生四个输入变量 A3、A2、A1 和 A0 的十六个最小项。
高阶解码器的实现
现在,让我们使用低阶解码器实现以下两个高阶解码器。
- 3 到 8 解码器
- 4 到 16 解码器
3 到 8 解码器
在本节中,让我们使用 2 到 4 解码器实现 3 到 8 解码器。我们知道 2 到 4 解码器有两个输入,A1 和 A0 和四个输出,Y3 到 Y0。而 3 到 8 解码器有三个输入 A2、A1 和 A0 以及八个输出 Y7 到 Y0。
我们可以使用以下公式找到实现高阶解码器所需的低阶解码器数量。
$$所需低阶解码器数量=\frac{m_{2}}{m_{1}}$$
其中,
$m_{1}$为低阶解码器输出数量。
$m_{2}$为高阶解码器输出数量。
这里,$m_{1}$ = 4,$m_{2}$ = 8。将这两个值代入上式。
$$所需2至4解码器数量=\frac{8}{4}=2$$
因此,实现一个3至8解码器需要两个2至4解码器。下图显示了使用 2 到 4 解码器的 3 到 8 解码器的 框图。
并行输入 A1 和 A0 应用于每个 2 到 4 解码器。输入 A2 的补码连接到下部 2 到 4 解码器的启用、E,以获得输出 Y3 至 Y0。这些是 下部四个最小项。输入 A2 直接连接到上部 2 到 4 解码器的启用、E,以获得输出 Y7 至 Y4。这些是较高的四个最小项。
4 到 16 解码器
在本节中,让我们使用 3 到 8 解码器实现4 到 16 解码器。我们知道 3 到 8 解码器有三个输入 A2、A1 和 A0 以及八个输出 Y7 到 Y0。而 4 到 16 解码器有四个输入 A3、A2、A1 和A0 和 16 个输出,Y15 至 Y0
我们知道以下公式用于查找所需的低阶解码器数量。
$$所需的低阶解码器数量=\frac{m_{2}}{m_{1}}$$
代入上述公式中的 $m_{1}$ = 8 和 $m_{2}$ = 16。
$$所需的 3 至 8 解码器数量=\frac{16}{8}=2$$
因此,我们需要两个 3 至 8 解码器来实现一个 4 至 16 解码器。下图显示了使用 3 至 8 解码器的 4 至 16 解码器的 框图。
并行输入 A2、A1 和 A0 应用于每个 3 至 8 解码器。输入的补码 A3 连接到下部 3 至 8 解码器的启用端 E,以获得输出 Y7 至 Y0。这些是 下 8 个最小项。输入 A3 直接连接到上部 3 至 8 解码器的启用端 E,以获得输出 Y15 至 Y8。这些是较高的八分钟术语。