名称:智力竞赛抢答器设计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
阅读全文
380