与其担心未来,不如现在好好努力。在这条路上,只有奋斗才能给你安全感。你若努力,全世界都会为你让路。

本次项目任务,利用开发板上的4个按键KEY1,KEY2,KEY3,KEY4和2个LED灯LED1,LED2,完成以下功能:

①如果没有按键按下,LED1和LED2均熄灭;

②如果有奇数个按键同时被按下,则LED1亮,LED2熄灭;

③如果有偶数个按键同时被按下,则LED1和LED2都亮;

实验平台:野火征途Pro开发板

写代码之前,我们先利用真值表根据任务做一个功能拆解。



《FPGA学习》->多个按键控制LED灯_Powered by 金山文档


①当按键没有一个按键按下时,这时候LED1应该为1;

②当按键有任意一个按下时,LED1都会亮;

③当按键有偶数个同时按下时,LED2才会亮。

根据真值表写出程序如下:

module KEY_LED_1(          //定义一个模块,名称为KEY_LED_1

input wire KEY1, //定义KEY1为输入模式
input wire KEY2, //定义KEY2为输入模式
input wire KEY3, //定义KEY3为输入模式
input wire KEY4, //定义KEY4为输入模式

output wire LED1, //定义LED1为输出模式
output wire LED2 //定义LED2为输出模式
);

assign LED1 = ((KEY1)&&(KEY2)&&(KEY3)&&(KEY4)); //没按键按下,LED1灭
assign LED2 = (
((~KEY1)&&(~KEY2)&&(~KEY3)&&(~KEY4))|| //0000
((~KEY1)&&(~KEY2)&&( KEY3)&&( KEY4))|| //0011
((~KEY1)&&( KEY2)&&(~KEY3)&&( KEY4))|| //0101
((~KEY1)&&( KEY2)&&( KEY3)&&(~KEY4))|| //0110
(( KEY1)&&(~KEY2)&&(~KEY3)&&( KEY4))|| //1001
(( KEY1)&&(~KEY2)&&( KEY3)&&(~KEY4))|| //1010
(( KEY1)&&( KEY2)&&(~KEY3)&&(~KEY4)) //1100
);

endmodule //模块结束

🔥🔥🔥本系列文章持续更新,喜欢的话可以关注收藏~🔥🔥🔥