差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
logic_mux [2021/09/29 08:03]
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是一种数字开关,也称为数据选择器。它是一个多输入线、多输出线和多选择线的组合逻辑电路。它接受来自多个输入行或源的二进制信息,根据选择行的集合,将特定的输入行路由到单个输出行。
行 36: 行 40:
  
 ### 4. 几种常用的多路复用器 ### 4. 几种常用的多路复用器
-  * 2:1 多路复用器 +  * [[mux_2_1|2:1 多路复用器]] 
-  * 4:1 多路复用器 +  * [[mux_4_1|4:1 多路复用器]] 
-  * 8:1 多路复用器 +  * [[8:1_mux|8:1 多路复用器]] 
-  * 16:1 多路复用器+  * [[16:1_mux|16:1 多路复用器]] 
 +  * [[2x32_32_mux|2x32to32多路复用器]]
  
-### 5. 多路选择器的应用:+### 5. 多路复用器的应用:
 在所有类型的数字系统应用中,多路复用器有其巨大的用途。由于多路复用器允许多个输入独立地连接到单个输出,因此多路复用器可以应用于各种应用,包括数据路由、逻辑函数生成器、控制程序、并行到串行转换器等。 在所有类型的数字系统应用中,多路复用器有其巨大的用途。由于多路复用器允许多个输入独立地连接到单个输出,因此多路复用器可以应用于各种应用,包括数据路由、逻辑函数生成器、控制程序、并行到串行转换器等。
  
行 67: 行 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>​