**这是本文档旧的修订版!**

多路选择器 - MUX

在通信系统中一个非常有趣的概念就是多路复用(Multiplexing),使用组合逻辑实现的电路被称为多路复用器(Multiplexer)。本节的内容将包括什么是多路复用器、有哪些不同的多路复用器,如2:1, 4:1, 8:1和16:1多路复用器,一些常用的多路复用ic以及多路复用器的一些重要应用。

多路复用是将一个或多个信号组合在一个信道上传输的过程。在模拟通信系统中,通信信道是一个稀缺量,必须正确使用。为了节省成本和高效地使用信道,复用的概念非常有用,因为它允许多个用户以逻辑方式共享单个信道。

The three common types of Multiplexing approaches are:

  • Time
  • Frequency
  • Space

我们日常生活中使用的多路复用系统的两个最好的例子是固定电话网络和有线电视。

负责多路复用的设备被称为多路复用器。多路复用器用于模拟和数字信号。让我们在本教程中专注于数字信号,以保持事情简单。多路复用器是最常用的组合电路,是许多数字系统的重要组成部分。

它们通常用于在多个源和单个目的地之间形成选定的路径。一个基本的多路复用器有不同的数据输入线和单一的输出线。在许多数字系统应用中,如数据选择和数据路由,逻辑函数发生器,多路显示数字计数器,电话网络,通信系统,波形发生器等。在本文中,我们将讨论多路复用器的类型及其设计。

多路选择器(Multiplexer)是一种最常用的组合逻辑电路,它根据选择(select)信号的值从几种可能的输入中选择一个作为输出,它有时也简称为MUX。

什么是多路复用器?

多路复用器或MUX是一种数字开关,也称为数据选择器。它是一个多输入线、多输出线和多选择线的组合逻辑电路。它接受来自多个输入行或源的二进制信息,根据选择行的集合,将特定的输入行路由到单个输出行。

whatismux.png

下图是由n条输入线、m条选择线和一条输出线组成的多路复用器的框图。如果有m条选择线,那么可能的输入线的数量是2m。或者,我们可以说,如果输入线的数量等于2m,那么需要m条选择线来从n条(考虑2m = n)输入线中选择一条。

这种类型的多路复用器称为2n × 1多路复用器或2n对1多路复用器。例如,如果输入行数为4,则需要两个选择行。类似地,要从8条输入行中选择一条,需要3条选择行。

多路复用的基本思想如下图所示,当使能开关是ON时,来自多个源的数据被路由到单个输出线。这就是为什么多路复用器也被称为“多对一”组合电路。

generaic_mux_block.png

通用MUX的框图

通常,多路复用器的数据输入数为2的幂,如2,4,8,16等。一些最常用的多路复用器包括2- 1、4- 1、8- 1和16- 1多路复用器。

这些多路复用器可在不同的输入和选择线配置的IC形式。一些可用的多路复用ic包括74157 (Quad 2对1 MUX), 78158 (Quad 2对1 MUX与逆输出),74153(4对1 MUX), 74152(8对1 MUX)和74150(16对1 MUX)。

https://www.electronicshub.org/multiplexer-and-demultiplexer/

1. 工作原理

多路选择器multiplexer也被成为复用器或者数据选择器,简称为MUX,其功能是从多个可能的输入端中选择一个作为输出。

1.1 2:1多路选择器

图 给出了2:1多路选择器的原理图和真值表。它有两个输入信号D0和D1,一个选择输入S和一个输出Y。多路选择器根据选择信号的值在两个输入数据中选择一个作为输出,如果S=0,Y=D0;如果S=1,Y=D1,S也被成为控制信号(control signal),因为它控制多路选择其如何操作。

一个2对1多路复用器由两个输入D0和D1,一个选择输入S和一个输出y组成。根据选择信号,输出连接到任意一个输入。由于有两个输入信号,因此只有两种方法可以将输入连接到输出,因此需要进行一次选择来完成这些操作。

如果选择线是低的,那么输出将切换到D0输入,而如果选择线是高的,那么输出将切换到D1输入。下图显示了2对1多路复用器的框图,该多路复用器将两个1位输入连接到一个共同的目的地。

4选1多路选择器,即从输入的四个数据中选择其中一个。通过定义两个变量,产生四种状态,分别对应四个数据的输出。由此可得到如下真值表。将输入的a,b,c,d,s0,s1和输出Y的关系写成逻辑表达式则得到:

Y=a(s0’s1’)+b(s0’s1)+c(s0s1’)+d(s0s1)


2. 逻辑描述

Y = S0 S1 D0 + S0 S1 D1 + S0 S1 D2 + S0 S1 D3

3. 电路实现

4. CircuitJS电路仿真

利用CircuitJS自带的案例 - 2选1多路复用器,只有1bit做选择控制,两路输入信号中的哪一路传递到输出端取决于这个选择控制信号的bit是高还是低

5. 小脚丫FPGA验证 - 4选1多路选择器

5.1 真值表

turetable_mux41.png

5.2 原理图

sche_mux41.png

5.3 小脚丫FPGA模块验证连接图

step_mux21_conn.png

6. Verilog代码实现

  module mult4
   (
     input wire a,           //定义四位输入
     input wire b,
     input wire c,
     input wire d,
     input wire [1:0]  sel,  //定义输出的选择变量
     output reg  led    	   //定义选择器输出结果对应的led
   );
  always@(sel)           //根据sel结果选择输出,当sel变化时执行
	begin
		case(sel)
			2'b00: led = a;
			2'b01: led = b;
			2'b10: led = c;
			2'b11: led = d;
		endcase
	end
  endmodule