名称:抢答器设计Verilog代码Quartus? DE2-70开发板
软件:Quartus
语言:Verilog
代码功能:
1.设计目的:
(1)了解DE2-70开发极的硬件构成;
(2)熟悉开发极可用资源的硬件电路;
(3)掌握EDA开发疏程;
(4)熟悉 Quartus开发环境;
(5)掌握 Verilog基本语法;
(6)熟练掌握在 Quartus环境下进行软件仿真的方法。
2.设计内容及基本要求
设计一个抢答计分器,实现抢答和计分功能
(1)基本功能
①主持人按键清零,数码管显示0,此时进入抢答环节;
②主持人发出开始命令,5人开始抢答。其中一人先按下抢答键,数码管显示该人号码,且屏蔽其他人的按键。直到主持人按键请零,则开始下一次抢答;
3.完成分值的计算,每个人答对题目的概率为50%答对则加1分,答错则减;
④显示每个人的分值。
(2)扩展功能
可以实现题目分值的设置,分别设置分值为1、2、5分。
3.撰写课程设计报告。
报告内容要求如下:
设计题目、目的,内容设计思路;
系统电路图
各功能模块的功能,实现方法,电路图(源代码)、功能仿真图;开发极硬件资源便用情况
编程模块的源代码请单;设计时碰到的问题及解决方法
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-70开发板验证,DE2-70开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1.?工程文件
2.?程序文件
3.?程序编译
4.?RTL图
5.?管脚分配
6.?仿真图
控制模块仿真图
显示模块仿真图
部分代码展示:
//显示模块 module?display ( input?clk, input?[3:0]?score_1,//分数 input?[3:0]?score_2, input?[3:0]?score_3, input?[3:0]?score_4, input?[3:0]?score_5, input?[3:0]?number,//抢答号码 output?reg?[7:0]?HEX0,//数码管段选 output?reg?[7:0]?HEX1,//数码管段选 output?reg?[7:0]?HEX2,//数码管段选 output?reg?[7:0]?HEX3,//数码管段选 output?reg?[7:0]?HEX4,//数码管段选 output?reg?[7:0]?HEX5//数码管段选 ); always@(posedge?clk) begin case(number)//抢答号码 4'd0?:?HEX0<=?8'hc0;? 4'd1?:?HEX0<=?8'hf9;? 4'd2?:?HEX0<=?8'ha4;? 4'd3?:?HEX0<=?8'hb0;? 4'd4?:?HEX0<=?8'h99;? 4'd5?:?HEX0<=?8'h92; 4'd6?:?HEX0<=?8'h82;? 4'd7?:?HEX0<=?8'hf8;? 4'd8?:?HEX0<=?8'h80;? 4'd9?:?HEX0<=?8'h90;? default:;? endcase end always@(posedge?clk) begin case(score_1)//分数1 4'd0?:?HEX1<=?8'hc0;? 4'd1?:?HEX1<=?8'hf9;? 4'd2?:?HEX1<=?8'ha4;? 4'd3?:?HEX1<=?8'hb0;? 4'd4?:?HEX1<=?8'h99;? 4'd5?:?HEX1<=?8'h92; 4'd6?:?HEX1<=?8'h82;? 4'd7?:?HEX1<=?8'hf8;? 4'd8?:?HEX1<=?8'h80;? 4'd9?:?HEX1<=?8'h90;? default:;? endcase end always@(posedge?clk) begin case(score_2)//分数2 4'd0?:?HEX2<=?8'hc0;? 4'd1?:?HEX2<=?8'hf9;? 4'd2?:?HEX2<=?8'ha4;? 4'd3?:?HEX2<=?8'hb0;? 4'd4?:?HEX2<=?8'h99;? 4'd5?:?HEX2<=?8'h92; 4'd6?:?HEX2<=?8'h82;? 4'd7?:?HEX2<=?8'hf8;? 4'd8?:?HEX2<=?8'h80;? 4'd9?:?HEX2<=?8'h90;? default:;? endcase end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1204