名称:可容纳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
阅读全文
436