回顾 LED 工程建立流程后,本篇介绍数据选择器工程的实现方法。
数据选择器是从多个输入逻辑信号中选择一个输出的电路。例如电影票 A 和 B 对应输入信号 in1 与 in2,检票员对应选择信号 sel,电影院对应输出信号 out。

真值表如下:

当 sel 为 0 时,out 等于 in1;sel 为 1 时,out 等于 in2。
新建工程后,使用 Verilog 实现:
module mux_2to1(
input wire in1,
input wire in2,
input wire sel,
output reg out
);
always @(*) begin
if (sel == 1'b1)
out = in2;
else
out = in1;
end
endmodule
代码分析:in1、in2、sel 为 wire 类型,用于传递信号;out 为 reg 类型,用于存储状态并在 always 块中循环更新逻辑。
验证电路正确性:

RTL 视图与设计一致。仿真波形分析:
第一组波形中 sel 恒为 0,out 跟随 in1。

第二组波形中 sel 恒为 1,out 跟随 in2。

仿真设置提示:Tool name 选项卡中选择 Modelsim 而非 Modelsim-Altera,避免报错。


引脚分配:
参考 EP4C 最小系统板原理图。KEY1(pin90) 接 in1,KEY2(pin89) 接 in2,RESET(pin88) 接 sel。LED1(IO_75/pin75) 接 out。



配置完成:

注意:分配引脚后需对未使用管脚进行设置,烧录前必须全编译。
效果演示:
不按 RESET 时,sel 为 0,按 KEY2 则 LED1 亮。

长按 RESET 时,sel 为 1,按 KEY1 则 LED1 亮。

