差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
logic_mux [2021/09/29 08:02] gongyu |
logic_mux [2021/10/03 02:06] (当前版本) gongyu [4. 几种常用的多路复用器] |
||
---|---|---|---|
行 18: | 行 18: | ||
### 2. 什么是多路复用器? | ### 2. 什么是多路复用器? | ||
多路复用器(Multiplexer)是一种最常用的组合逻辑电路,它根据选择(select)信号的值从几种可能的输入中选择一个作为输出,它有时也简称为MUX。 | 多路复用器(Multiplexer)是一种最常用的组合逻辑电路,它根据选择(select)信号的值从几种可能的输入中选择一个作为输出,它有时也简称为MUX。 | ||
+ | |||
+ | {{drawio>multiplexer_a_d.png}} | ||
+ | 关于模拟复用器: | ||
+ | 数字复用器在其电平范围内对输入信号进行高、低处理,模拟复用器不施加任何的处理,直接让模拟信号通过,适用于交流信号(数据选择器)。可以是双向的,也即同时充当解复用器(数据分配器)的作用。 | ||
多路复用器或MUX是一种数字开关,也称为数据选择器。它是一个多输入线、多输出线和多选择线的组合逻辑电路。它接受来自多个输入行或源的二进制信息,根据选择行的集合,将特定的输入行路由到单个输出行。 | 多路复用器或MUX是一种数字开关,也称为数据选择器。它是一个多输入线、多输出线和多选择线的组合逻辑电路。它接受来自多个输入行或源的二进制信息,根据选择行的集合,将特定的输入行路由到单个输出行。 | ||
行 35: | 行 39: | ||
这些多路复用器可在不同的输入和选择线配置的IC形式。一些可用的多路复用ic包括74157 (Quad 2对1 MUX), 78158 (Quad 2对1 MUX与逆输出),74153(4对1 MUX), 74152(8对1 MUX)和74150(16对1 MUX)。 | 这些多路复用器可在不同的输入和选择线配置的IC形式。一些可用的多路复用ic包括74157 (Quad 2对1 MUX), 78158 (Quad 2对1 MUX与逆输出),74153(4对1 MUX), 74152(8对1 MUX)和74150(16对1 MUX)。 | ||
- | ### 4. 2:1 多路复用器 | + | ### 4. 几种常用的多路复用器 |
- | ### 5. 4:1 多路复用器 | + | * [[mux_2_1|2:1 多路复用器]] |
- | ### 6. 8:1 多路复用器 | + | * [[mux_4_1|4:1 多路复用器]] |
- | ### 7. 16:1 多路复用器 | + | * [[8:1_mux|8:1 多路复用器]] |
- | ### 8. 多路选择器的应用: | + | * [[16:1_mux|16:1 多路复用器]] |
+ | * [[2x32_32_mux|2x32to32多路复用器]] | ||
+ | |||
+ | ### 5. 多路复用器的应用: | ||
在所有类型的数字系统应用中,多路复用器有其巨大的用途。由于多路复用器允许多个输入独立地连接到单个输出,因此多路复用器可以应用于各种应用,包括数据路由、逻辑函数生成器、控制程序、并行到串行转换器等。 | 在所有类型的数字系统应用中,多路复用器有其巨大的用途。由于多路复用器允许多个输入独立地连接到单个输出,因此多路复用器可以应用于各种应用,包括数据路由、逻辑函数生成器、控制程序、并行到串行转换器等。 | ||
- | #### 8.1 数据路由 | + | #### 5.1 数据路由 |
多路复用器广泛用于数据路由应用程序,从多个源中的一个将数据路由到一个特定的目的地。其中一个应用包括显示两个多位数BCD计数器,一次一个。在这种应用中,74157多路复用ic使用一套解码器和LED显示器来选择和显示两个BCD计数器的内容。 | 多路复用器广泛用于数据路由应用程序,从多个源中的一个将数据路由到一个特定的目的地。其中一个应用包括显示两个多位数BCD计数器,一次一个。在这种应用中,74157多路复用ic使用一套解码器和LED显示器来选择和显示两个BCD计数器的内容。 | ||
{{ :74157-multiplexer-ic-in-data-routing.jpeg |}} | {{ :74157-multiplexer-ic-in-data-routing.jpeg |}} | ||
- | #### 8.2 逻辑函数发生器 | + | #### 5.2 逻辑函数发生器 |
在逻辑门的位置,可以使用多路复用器生成逻辑表达式。可以连接多路复用器,使其复制任何真值表的逻辑。在这种情况下,它可以生成一组输入变量的布尔代数函数。 | 在逻辑门的位置,可以使用多路复用器生成逻辑表达式。可以连接多路复用器,使其复制任何真值表的逻辑。在这种情况下,它可以生成一组输入变量的布尔代数函数。 | ||
由于多路复用器是一个单一的集成电路,这就突然减少了执行逻辑功能的逻辑门或集成电路的数量。在这类应用中,多路复用器被视为逻辑函数生成器。 | 由于多路复用器是一个单一的集成电路,这就突然减少了执行逻辑功能的逻辑门或集成电路的数量。在这类应用中,多路复用器被视为逻辑函数生成器。 | ||
行 54: | 行 61: | ||
{{ :pinout-of-ic74151a.jpeg |}} | {{ :pinout-of-ic74151a.jpeg |}} | ||
- | #### 8.3 并行-串行转换 | + | #### 5.3 并行-串行转换 |
利用多路复用电路将并行数据转换为串行数据,通过将并行总线转换为串行信号来减少并行总线的数量。在电信、测试和测量、军事/航空航天、数据通信应用中需要这种类型的转换。 | 利用多路复用电路将并行数据转换为串行数据,通过将并行总线转换为串行信号来减少并行总线的数量。在电信、测试和测量、军事/航空航天、数据通信应用中需要这种类型的转换。 | ||
在大多数数字系统中,数据被并行处理以达到更高的速度。但是为了远距离传输数据信号,我们需要更多的线路。在这种情况下,并行数据被转换成串行形式使用多路复用器。 | 在大多数数字系统中,数据被并行处理以达到更高的速度。但是为了远距离传输数据信号,我们需要更多的线路。在这种情况下,并行数据被转换成串行形式使用多路复用器。 | ||
行 65: | 行 72: | ||
完成多路复用(MUX)和多路复用教程。你学习了多路复用的基础知识,多路复用器,不同类型的常用多路复用器,如2:1 MUX, 4:1 MUX, 8:1 MUX和16:1 MUX,它们的布尔表达式,逻辑电路,以及多路复用器的一些重要应用。 | 完成多路复用(MUX)和多路复用教程。你学习了多路复用的基础知识,多路复用器,不同类型的常用多路复用器,如2:1 MUX, 4:1 MUX, 8:1 MUX和16:1 MUX,它们的布尔表达式,逻辑电路,以及多路复用器的一些重要应用。 | ||
- | ### 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位输入连接到一个共同的目的地。 | ||
- | {{drawio>mux21_block.png}} | ||
- | |||
- | 4选1多路选择器,即从输入的四个数据中选择其中一个。通过定义两个变量,产生四种状态,分别对应四个数据的输出。由此可得到如下真值表。将输入的a,b,c,d,s0,s1和输出Y的关系写成逻辑表达式则得到:\\ | ||
- | |||
- | Y=a(s0’s1’)+b(s0’s1)+c(s0s1’)+d(s0s1)\\ | ||
- | |||
- | |||
- | {{::4选1多路选择器真值表.png?nolink&500|}} \\ | ||
- | |||
- | ### 2. 逻辑描述 | ||
- | Y = S0 S1 D0 + S0 S1 D1 + S0 S1 D2 + S0 S1 D3 | ||
- | ### 3. 电路实现 | ||
- | {{ :internal-circuit-of-quad-2-to-1-mux.jpeg |}} | ||
- | {{ :logic-circuit-of-4-to-1-mux.jpeg |}} | ||
- | {{ :logic-circuit-of-8-to-1-mux.jpeg |}} | ||
- | {{ :16-to-1-mux-using-8-to-1-muxes.jpeg |}} | ||
- | ### 4. CircuitJS电路仿真 | ||
- | 利用CircuitJS自带的案例 - 2选1多路复用器,只有1bit做选择控制,两路输入信号中的哪一路传递到输出端取决于这个选择控制信号的bit是高还是低 | ||
- | {{ :mux21.mp4 |}} | ||
- | ### 5. 小脚丫FPGA验证 - 4选1多路选择器 | ||
- | #### 5.1 真值表 | ||
- | {{drawio>turetable_mux41.png}} | ||
- | #### 5.2 原理图 | ||
- | {{drawio>sche_mux41.png}} | ||
- | #### 5.3 小脚丫FPGA模块验证连接图 | ||
- | {{drawio>step_mux21_conn.png}} | ||
- | ### 6. Verilog代码实现 | ||
- | <code 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 | ||
- | </code> |