名称:ISE数字式竞赛抢答器Basys2开发板verilog语言(代码在文末下载)
软件:ISE
语言:Verilog
代码功能:
数字式竞赛抢答器具体要求:
(1)设计一个可容纳3组参赛的数字式抢答器,每设个按钮,供抢答使用。
(2)抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
(3)设置一个主持人“复位”按钮。
(4)主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答祖别,扬声器发出12秒的音响。
5)设置一个计分电路,每组开始预置10分,由主持人记分,答对一次1分,答错一次减1分。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在Basys2开发板验证,开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 仿真图
Testbench
仿真图
部分代码展示:
module qiangdaqi ( input clk,//时钟 input reset_p,//复位 input add_key,//加分键 input sub_key,//减分键 input key_1,//抢答键 input key_2,//抢答键 input key_3,//抢答键 output beep,//蜂鸣器 //3灯指示3个选手 output led_1, output led_2, output led_3, output [3:0] weixuan,//位选 output [7:0] duanxian//段选 ); //按键消抖 wire add_score; wire sub_score; 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 [3:0] qiangda;//正常抢答 wire [2:0] state;//输出状态 wire [7:0] score_1;//1号分数 wire [7:0] score_2;//2号分数 wire [7:0] score_3;//3号分数 //抢答器控制模块 qiandda_ctrl i_qiandda_ctrl( . clk(clk), . reset_p(reset_p), . key_1(key_1), . key_2(key_2), . key_3(key_3), . beep(beep), //3灯指示3个选手 . led_1(led_1), . led_2(led_2), . led_3(led_3), . state_out(state),//输出状态 . qiangda(qiangda)//正常抢答 ); //分数统计模块 score_crtl i_score_crtl( . clk(clk), . state(state),//状态 . add_score(add_score),//加分键 . sub_score(sub_score),//减分键 . score_1(score_1),//1号分数 . score_2(score_2),//2号分数 . score_3(score_3)//3号分数 ); //数码管显示 display i_display( . clk(clk), . state(state),//状态 . qiangda(qiangda),//正常抢答 . score_1(score_1),//1号分数 . score_2(score_2),//2号分数 . score_3(score_3),//3号分数 . weixuan(weixuan),//位选 . duanxian(duanxian)//段选 ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=278
阅读全文
551