名称:智力竞赛抢答器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
智力竞赛抢答器
设计一个四路智力竞赛抢答器,每路用一个按键代表抢答按钮。主持人通过“复位”按钮宣布开始抢答,开始抢答后数码管显示倒计时时间(30秒),至0秒时无人抢答则通过扬声器报警。当有参赛者按下抢答按钮后,相应指示灯亮,此时抢答器不再接受其他输入信号,使除第一抢答者外的按钮不起作用,倒计时也相应停止,主持人复位后,重新开始抢答。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. Testbench
2. 仿真图
部分代码展示:
module?qiangdaqi?( input?clk, input?reset_n,// input?start_n,// input?add_key,//加分键 input?sub_key,//减分键 input?key_1,//抢答键 input?key_2,//抢答键 input?key_3,//抢答键 input?key_4,//抢答键 //4灯指示4个选手 output?led_1, output?led_2, output?led_3, output?led_4, output??led_tiqian,//提前抢答报警 output??led_overtime,//超时报警 output?[7:0]?dataout, output?[7:0]?en//COM使能输出 ); //按键消抖 wire?start_p; wire?add_score; wire?sub_score; key_debounce?i_key_debounce( .?clk(clk), .?button_in(start_n),//输入 .?button_neg(start_p)//消抖后按键下降沿 ); key_debounce?iadd_key_debounce( .?clk(clk), .?button_in(add_key),//输入 .?button_neg(add_score)//消抖后按键下降沿 ); key_debounce?isub_key_debounce( .?clk(clk), .?button_in(sub_key),//输入 .?button_neg(sub_score)//消抖后按键下降沿 ); wire?[7:0]?time_done;//倒计时 wire?[3:0]?tiqian_qiangda;//提前抢答 wire?[3:0]?qiangda;//正常抢答 wire?[3:0]?state; wire?[3:0]?score_1;//1号分数 wire?[3:0]?score_2;//2号分数 wire?[3:0]?score_3;//3号分数 wire?[3:0]?score_4;//4号分数 //计时模块 jishi?i_jishi( .?clk(clk), .?reset_n(reset_n), .?state(state), .?time_done(time_done)//倒计时 ); qiandda_ctrl?i_qiandda_ctrl( .?clk(clk), .?reset_n(reset_n), .?start_p(start_p), .?key_1(key_1), .?key_2(key_2), .?key_3(key_3), .?key_4(key_4), //4灯指示4个选手 .?led_1(led_1), .?led_2(led_2), .?led_3(led_3), .?led_4(led_4),
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1246
阅读全文
270