数字电路 - 多路复用器


多路复用器是一个组合电路,最多具有 2 n 个数据输入、“n”条选择线和单输出线。这些数据输入之一将根据选择线的值连接到输出。

由于有“n”条选择线,因此将有 2 n种可能的 0 和 1 组合。因此,每种组合只会选择一个数据输入。多路复用器也称为Mux

4x1 多路复用器

4x1 多路复用器有四个数据输入 I 3、 I 2、 I 1和 I 0,两条选择线 s 1和 s 0以及一个输出 Y。 4x1 多路复用器的框图如下图所示。

4x1 多路复用器

这 4 个输入之一将根据这两条选择线上存在的输入组合连接到输出。4x1 多路复用器的真值表如下所示。

选择线 输出
S 1 0 _
0 0 0
0 1 1
1 0 2
1 1 3

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

$$Y={S_{1}}'{S_{0}}'I_{0}+{S_{1}}'S_{0}I_{1}+S_{1}{S_{0}}' I_{2}+S_{1}S_{0}I_{3}$$

我们可以使用反相器、与门和或门来实现这个布尔函数。4x1多路复用器的电路图如下图所示。

4对1多路复用器电路图

我们很容易理解上述电路的工作原理。同样,您可以按照相同的过程实现 8x1 多路复用器和 16x1 多路复用器。

高阶多路复用器的实现。

现在,让我们使用低阶多路复用器来实现以下两个高阶多路复用器。

  • 8x1 多路复用器
  • 16x1 多路复用器

8x1 多路复用器

在本节中,让我们使用 4x1 多路复用器和 2x1 多路复用器来实现 8x1 多路复用器。我们知道 4x1 多路复用器有 4 个数据输入、2 个选择线和 1 个输出。而 8x1 多路复用器有 8 个数据输入、3 个选择线和 1 个输出。

因此,我们在第一阶段需要两个4x1 多路复用器才能获得 8 个数据输入。由于每个 4x1 多路复用器产生一个输出,因此我们在第二级需要一个2x1 多路复用器,将第一级的输出视为输入并产生最终输出。

令8x1 多路复用器具有八个数据输入I 7至I 0、三条选择线s 2、s 1 & s0 以及一个输出Y。8x1 多路复用器的真值表如下所示。

选择输入 输出
S 2 S 1 0 _
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7

通过考虑上面的真值表,我们可以使用低阶多路复用器轻松实现 8x1 多路复用器。8x1 多路复用器的框图如下图所示。

8 选 1 多路复用器

相同的选择线 s 1和 s 0应用于两个 4x1 多路复用器。上部4x1多路复用器的数据输入是I 7至I 4,下部4x1多路复用器的数据输入是I 3至I 0因此,每个 4x1 多路复用器都会根据选择线 s 1和 s 0的值产生输出。

第一级 4x1 多路复用器的输出用作第二级中存在的 2x1 多路复用器的输入。另一条选择线 s 2应用于 2x1 多路复用器。

  • 如果s 2为零,则2x1多路复用器的输出将是基于选择线s 1和s 0的值的4个输入I 3至I 0之一。

  • 如果s 2为1,则2x1多路复用器的输出将是基于选择线s 1和s 0的值的4个输入I 7至I 4之一。

因此,两个 4x1 多路复用器和一个 2x1 多路复用器的整体组合相当于一个 8x1 多路复用器。

16x1 多路复用器

在本节中,让我们使用 8x1 多路复用器和 2x1 多路复用器来实现 16x1 多路复用器。我们知道8x1多路复用器有8个数据输入、3个选择线和1个输出。而 16x1 多路复用器有 16 个数据输入、4 个选择线和 1 个输出。

因此,我们在第一阶段需要两个8x1 多路复用器才能获得 16 个数据输入。由于每个 8x1 多路复用器产生一个输出,因此我们在第二级需要一个 2x1 多路复用器,将第一级的输出视为输入并产生最终输出。

设16x1多路复用器具有16个数据输入I 15至I 0、4条选择线s 3至s 0以及1个输出Y。16x1多路复用器的真值表如下所示。

选择输入 输出
S 3 S 2 S 1 0 _
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9
1 0 1 0 10
1 0 1 1 11
1 1 0 0 12
1 1 0 1 13
1 1 1 0 14
1 1 1 1 15

通过考虑上面的真值表,我们可以使用低阶多路复用器轻松实现 16x1 多路复用器。16x1 多路复用器的框图如下图所示。

16 选 1 多路复用器

相同的选择线 s 2、s 1和 s 0应用于两个 8x1 多路复用器。上部8x1 多路复用器的数据输入是I 15至I 8,下部8x1 多路复用器的数据输入是I 7至I 0因此,每个 8x1 多路复用器都会根据选择线 s 2、 s 1和 s 0的值产生输出。

第一级 8x1 多路复用器的输出用作第二级中存在的 2x1 多路复用器的输入。另一条选择线 s 3应用于 2x1 多路复用器。

  • 如果s 3为零,则2x1多路复用器的输出将是基于选择线s 2、s 1和s 0的值的8个输入Is 7至I 0之一。

  • 如果s 3为1,则2x1多路复用器的输出将是基于选择线s 2、s 1和s 0的值的8个输入I 15至I 8之一。

因此,两个 8x1 多路复用器和一个 2x1 多路复用器的总体组合相当于一个 16x1 多路复用器。