FPGA 入门:基于 Verilog 的 2 选 1 数据选择器设计
数据选择器简介
数据选择器是从多个输入的逻辑信号中选择一个逻辑信号输出,实现数据选择功能的逻辑电路。例如,手中有两张电影票 A 和 B,检票员决定使用哪一张,A 对应输入 in1,B 对应输入 in2,检票员相当于选择信号 sel(select),电影院相当于输出 out。因此,可以在 Vivado 中设计出 2-1 数据选择器。

真值表分析
2-1 数据选择器的真值表如下:

当选择信号 sel 为 0 时,对应输入信号 in1 的通道开启,无论 in2 取值如何,out 与 in1 相同。当 sel 为 1 时,in2 通道开启,out 与 in2 相同。
Verilog 实现
新建工程后,使用 Verilog 语言实现 2-1 数据选择器:

代码中 in1、in2、sel 前加 wire,out 前加 reg。reg 是寄存器类型,wire 是连线类型。wire 相当于导线,只能传递信号;reg 相当于寄存器,能记住信号。在 always@(*) 模块中,输出信号 out 需持续循环逻辑进程,故使用 reg 类型。
仿真验证
打开 RTL 视图验证电路正确性:

RTL 视图与设计一致。进行仿真,波形图分析如下:
第一组红线内波形:sel 恒为 0,无论 in2 变化,out 恒等于 in1。

第二组分析:sel 恒为 1,无论 in1 变化,out 恒等于 in2。

注意在进行仿真前,打开 Assignment--Settings 时,Tool name 选项卡中应选择 Modelsim 而不是 Modelsim-Altera,否则会出现 Can't launch the ModelSim-Altera software 报错:









