Verilog 多路复用器

17 Mar 2025 | 6 分钟阅读

多路复用器是一种从多个输入中选择一个输出的设备。它也被称为数据选择器。我们用术语 MUXMPX 来指代多路复用器。

多路复用器用于通信系统,以在一定的时间和带宽内增加通过网络发送的数据量。它允许我们将多条数据线压缩成一条数据线。

它在多个输入线之间切换,并将它们逐个组合到输出。它使用控制信号决定切换哪个输入线。

从物理上讲,多路复用器有 n 个输入引脚、一个输出引脚和 m 个控制引脚。 n = 2^m。由于多路复用器的作用是选择一个数据输入线并将其发送到输出,因此它也被称为 数据选择器

Verilog Multiplexer

构建多路复用器有三种主要方式。

  • 数字多路复用器由逻辑门组成。
  • 模拟多路复用器使用晶体管制成。
  • 机械开关或旋转开关使用旋转轴制成。

MUX 本身就像一个数字控制的多位置开关,应用于选择输入的二进制代码控制将切换到输出的数据输入。

例如,它根据选择信号将数据从 N 个输入中的一个传输到输出。一个 4 位多路复用器将有 N 个 4 位输入,其中每个输入都可以通过使用选择信号传输到输出。

Verilog Multiplexer

Sel 是一个 2 位输入,可以有四个值。选择线上的每个值都将允许其中一个输入被发送到输出。

4x1 多路复用器可以通过多种方式实现,这里我们展示了两种最常见的方式

1. 使用 assign 语句

名为 mux_4x1_assign 的模块有四个 4 位数据输入,一个 2 位选择输入和一个 4 位数据输出。多路复用器将根据使用 assign 语句的选择信号 sel 选择 a、b、c 或 d。

2. 使用 case 语句

当我们使用 case 语句时,信号 out 被声明为 reg 类型,因为它用于 过程性 块中。

名为 mux_4x1_case 的模块有四个 4 位数据输入,一个 2 位选择输入和一个 4 位数据输出。多路复用器将根据使用 case 语句的选择信号 sel 选择 a、b、c 或 d。

多路复用器的应用

多路复用器包括以下有用的点,例如

  1. 在具有通信网络的通信系统中,多路复用器通过允许音频和视频数据在单个通道上传输来提高系统的效率。
  2. 在光纤通信中,多路复用器使用一种称为 密集波分复用 的技术来完成相同的工作,将多根光纤电缆组合到一根光纤电缆上。
  3. 在卫星通信中,多路复用器使用 GSM 通信将数据从卫星的计算机系统传输到地面部分。
  4. 它也可以用作并行到串行数据转换器。
  5. 计算机减少了将内存连接到计算机其他部件所需的铜线数量。

如何连接多路复用器?

如果我们有小型多路复用器,但我们想增加它们的功能,我们可以将它们连接起来以获得具有更多输入的多路复用器。多路复用器的级联很容易。确保我们连接以提供与目标 MUX 相同数量的输入和控制线。

让我们使用 2:1 多路复用器制作 4:1 MUX。我们知道 2:1 MUX 有两个输入和一条选择线。因此,连接两个 2:1 多路复用器将为我们提供四个输入和两条选择线。

我们可以将输出减少到一个,所以我们使用另一个 2:1 MUX 将两条线组合成一条线。

然而,虽然这为我们提供了一个我们要求的输出,但它为我们提供了一条额外的选择线。所以现在我们有三条选择线。

现在我们将三条选择线减少到两条选择线。我们可以通过连接两条选择线来实现。这本质上会将两条线减少到一条线。下图显示了应用我们的逻辑后得到的结果。

Verilog Multiplexer

8:1 和 16:1 多路复用器

与我们上面看到的流程类似,我们可以使用 2:1 多路复用器设计一个 8 到 1 多路复用器,使用 4:1 MUX 设计 16:1 MUX,或使用 8:1 多路复用器设计 16:1 MUX。

Verilog Multiplexer

我们也可以反过来,使用比所需输入更多的多路复用器作为较小的 MUX。这是一个用作 2:1 多路复用器的 8:1 多路复用器。

Verilog Multiplexer

多路分配器

解复用器是一个组合逻辑电路,其执行的功能与多路复用器相反。解复用器也称为 demux

demux 中,我们有 n 条输出线、一条输入线和 m 条选择线。输出线和选择线的数量之间的关系与我们在多路复用器中看到的一样。也就是说,2^m = n。根据选择线形成的二进制数的值,任何一条输出线都连接到输入线。

此时,其余的输出线进入 OFF 状态。也就是说,其余线路的值为 0。

通过这种方式,解复用器将串行数据转换为并行数据,并充当串行到并行转换器。此外,由于它将一条数据线连接到多条数据线并在它们之间切换,因此解复用器也被称为 数据分配器。解复用器的通用符号如下图所示。

Verilog Multiplexer

解复用器如何工作?

为了理解解复用器的工作原理,我们将直接设计一个。1:2 demux 是所有解复用器中最简单的。我们有一个输入,两个输出,和一条选择线(2^m = 2,因此 m=1)。

Verilog Multiplexer

我们可以看到,根据选择线的值,其中一个输出连接到输入线。当 S 为 0 时,第一条输出线连接到输入。当 S 为 1 时,第二条输出线连接到输入。

通过这种方式,解复用器将数据从一条数据线分发到多条数据线。

接下来,我们将设计一个 1:4 解复用器。根据我们上面看到的用于选择线的公式,一个 1:4 demux 将有两条选择线。让我们画出 1:4 demux 的真值表。

真值表

I0S0S1Y0Y1Y2Y3
I00I000
I010I00
I1000I0
I11000I

我们可以看到,这个真值表比 4:1 mux 的短,因为我们没有取输入的所有可能值,我们只是把它作为 I。结果方程将相同。因此,从真值表中,我们得到

Y0 = S0'S1'
Y1 = S0'S1
Y2 = S0S1'
Y3 = S0S1

上面等式的最终电路如下图所示。

Verilog Multiplexer

解复用器的应用

以下是解复用器的一些重要用途,例如

  1. 在通信系统中,解复用器可以接收来自传输端的多路复用器的串行数据。然后 demux 将数据转换为其原始形式。
  2. 我们可以使用解复用器将 ALU 的输出存储在多个内存寄存器中。
  3. 解复用器也充当串行到并行转换器。

下一主题#