名称:可容纳3组竞赛的数字式抢答器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
综合训练内容要求
1)设计一个可容纳3组竞赛的数字式抢答器,每组设一个按钮,供抢答使用。
2)抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
3)设置一个主持人“复位”按钮。
4)主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示答组别,扬声器发出1-2秒的音响。
5)设置一个计分电路,每组开始预制100分,由主持人记分,答对一次10分错一次减10分。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
分频模块
抢答控制模块
分数控制模块
显示模块
部分代码展示:
//显示模块 module?display ( input?clk, input?[7:0]?score_1,//1号分数 input?[7:0]?score_2,//2号分数 input?[7:0]?score_3,//3号分数 input?[3:0]?responder_num,//抢答指示1~3 output?reg?[3:0]?weixuan,//位选,低亮 output?reg?[7:0]?duanxian//段选,低亮 ); reg[15:0]jishu='d0; always@(posedge?clk) begin jishu<=jishu+16'd1; end reg?[7:0]?score;//分数 always@(posedge?clk) begin case(responder_num)//抢答者 4'd0:score<=0;// 4'd1:score<=score_1;//分数1 4'd2:score<=score_2;//分数2 4'd3:score<=score_3;//分数3 ??????default:; endcase end reg?[3:0]?display_data=4'd0; always@(posedge?clk) begin case(jishu[4:3])//显示 2'd0:display_data<=score%10;//分数个位 2'd1:display_data<=score%100/10;//分数十位 2'd2:display_data<=score/100;//分数百位 2'd3:display_data<=responder_num;//抢答指示1~3 ??????default:; endcase end always@(posedge?clk) begin case(jishu[4:3])//位选,低亮 2'd0:?weixuan<=4'b1110; 2'd1:?weixuan<=4'b1101; 2'd2:?weixuan<=4'b1011; 2'd3:?weixuan<=4'b0111; default:weixuan<=4'b1111; endcase case(display_data)//段选,低亮 0?:?duanxian=?(8'hc0);? 1?:?duanxian=?(8'hf9);? 2?:?duanxian=?(8'ha4);? 3?:?duanxian=?(8'hb0);? 4?:?duanxian=?(8'h99);? 5?:?duanxian=?(8'h92); 6?:?duanxian=?(8'h82);? 7?:?duanxian=?(8'hf8);? 8?:?duanxian=?(8'h80);? 9?:?duanxian=?(8'h90);? endcase end endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=926
阅读全文