差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
4:1_mux [2021/09/29 08:08] gongyu 创建 |
4:1_mux [2021/09/29 08:28] (当前版本) gongyu |
||
---|---|---|---|
行 1: | 行 1: | ||
## 4:1 多路复用器 | ## 4:1 多路复用器 | ||
+ | ### 1. 知识点 | ||
+ | |||
+ | ### 2. 理论 | ||
4选1多路复用器器,即从输入的四个数据中选择其中一个。通过定义两个变量,产生四种状态,分别对应四个数据的输出。由此可得到如下真值表。将输入的a,b,c,d,s0,s1和输出Y的关系写成逻辑表达式则得到:\\ | 4选1多路复用器器,即从输入的四个数据中选择其中一个。通过定义两个变量,产生四种状态,分别对应四个数据的输出。由此可得到如下真值表。将输入的a,b,c,d,s0,s1和输出Y的关系写成逻辑表达式则得到:\\ | ||
- | + | ||
+ | **2.1 功能框图** | ||
+ | {{drawio>mux41_block_diagram.png}} | ||
+ | |||
+ | **2.2 真值表** | ||
+ | {{drawio>turetable_mux41.png}} | ||
+ | 根据上面的真值表,我们可以写出输出表达式如下: | ||
+ | Y = s0 s1 d0 + s0 s1 d1 + s0 s1 d2 + s0 s1 d3 | ||
+ | 由上述输出表达式,可以使用基本逻辑门实现4对1多路复用器。下图显示了4:1 MUX的逻辑电路,它是由四个3输入AND门,两个1输入NOT门和一个4输入OR门实现的。 | ||
+ | 在这个电路中,每条数据输入线被连接成与门的输入,两条选择线被连接成与门的其他两个输入。此外,还有一个启用信号。所有与门的输出都连接到OR门的输入端,以产生输出Y。 | ||
+ | **2.3 逻辑电路** | ||
+ | {{ :logic-circuit-of-4-to-1-mux.jpeg |}} | ||
+ | |||
+ | 2.4 器件 | ||
+ | |||
Y=a(s0’s1’)+b(s0’s1)+c(s0s1’)+d(s0s1)\\ | Y=a(s0’s1’)+b(s0’s1)+c(s0s1’)+d(s0s1)\\ | ||
行 7: | 行 25: | ||
{{::4选1多路选择器真值表.png?nolink&500|}} \\ | {{::4选1多路选择器真值表.png?nolink&500|}} \\ | ||
+ | |||
+ | ### 5. 小脚丫FPGA验证 - 4选1多路选择器 | ||
+ | |||
+ | #### 5.1 真值表 | ||
+ | |||
+ | #### 5.2 原理图 | ||
+ | |||
+ | #### 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> |