多路选择器

1、选择器介绍

  多路选择器(MUX)是一种重要的数字电路元件,用于选择多个输入信号中的一个,并将其传递到单个输出。多路选择器也是 FPGA 内部的一个基本资源,主要用于内部信号的选通。

2、实战任务

  这里我们选择一个简单的 2 选 1 的选择器,主要功能是通过选通控制信号 sel 确定输入信号 A 和 B 哪一个信号作为输出。当选通控制信号 sel 为 0 时,输出为 A 端信号;当选通控制信号 sel 为 1 时,信号输出为 B 端信号。

3、系统框图

  根据实战任务描述是一个二选一的多路选择器,因此给模块命名为 2_sel_1。模块中的输入为三个一位的信号,其中 A 和 B 为两个输入信号,sel 为一位(因为两个输入端,sel 位宽取一位(即0/1即可表示选择的是 A 还是 B ))输入的控制信号,X 为输出信号。模块图如下图所示:

4、真值表

  根据实战任务所述,二选一的多路选择器的真值表,如下表所示:

输入 A输入 B选择 sel输出 X
0000
0100
1001
1101
0010
0111
1010
1111

5、波形图

  通过对真值表进行分析,我们可以绘制多路选择器的输入与输出波形。其波形如下图所示:

 

6、程序编写

  首先我们来编写二选一多路选择器的逻辑代码,其中实现二选一多路选择器功能的 Verilog 代码形式有很多种,这里选择 assign 中条件运算符(三目运算符)实现方法(注:由于语法规则我们将 2_sel_1 改为 sel_2_1 ,避免编译器报错):

module sel_2_1(
    input A,        // 输入信号 A
    input B,        // 输入信号 B
    input sel,      // 选择控制信号 sel

    output X        // 输出信号 X
);

// 三目运算符实现多路选择器
assign X = (sel == 1'b0) ? A  : B;

//(sel == 1'b0)这是一个布尔表达式。如果这个表达式的结果为真,则返回 A;如果为假,则返回 B
//当条件为真时,返回 A 的值。
//当条件为假时,返回 B 的值。
//X 为存储最终结果的变量。
//即 assign out = (sel == 1'b0) ? A : B; 表示如果 sel == 1'b0 为真,则 out 输出 A;如果 sel != 1'b0 为假,则 out 输出 B。
endmodule

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值