差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
logic_mux [2021/09/29 08:07] 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 多路复用器]] | + | * [[mux_2_1|2:1 多路复用器]] |
- | * [[4:1_mux|4:1 多路复用器]] | + | * [[mux_4_1|4:1 多路复用器]] |
* [[8:1_mux|8:1 多路复用器]] | * [[8:1_mux|8:1 多路复用器]] | ||
* [[16:1_mux|16:1 多路复用器]] | * [[16:1_mux|16:1 多路复用器]] | ||
+ | * [[2x32_32_mux|2x32to32多路复用器]] | ||
### 5. 多路复用器的应用: | ### 5. 多路复用器的应用: | ||
行 66: | 行 71: | ||
结论 | 结论 | ||
完成多路复用(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,其功能是从多个可能的输入端中选择一个作为输出。 | ||
- | {{ :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> |