1 / 16
文档名称:

基于EDA四位智能竞赛抢答器.docx

格式:docx   大小:92KB   页数:16页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于EDA四位智能竞赛抢答器.docx

上传人:小雄 2021/2/19 文件大小:92 KB

下载得到文件列表

基于EDA四位智能竞赛抢答器.docx

相关文档

文档介绍

文档介绍:四位智能竞赛抢答器
第一章系统设计
第一节课题目标
《硬件描述语言》是一门技术性、应用性很强的学科,实验课教 学是它的一个极为重要的环节。不论理论学****还是实际应用,都离不 开实验课教学。如果不在切实认真地抓好学生的实践技能的锻炼上下 功夫,单凭课堂理论课学****势必出现理论与实践脱节的局面。《HDL 项目设计》的目的就是让我们在理论学****的基础上,通过完成一个涉 及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统 设计,使我们不但能够将课堂上学到的理论知识与实际应用结合起 来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为 今后能够独立进行某些数字应用系统的开发设计工作打下一定的基 础。
通过这次设计实验,首先,使我们更加深入的巩固了书本上的 知识,在掌握理论基本知识的基础上,学会了对常用软件的使用。其 次,通过这次设计实验,使我们了解并熟悉了程序的设计方法和步骤, 而且在与同学讨论的同时也提高了团结合作的能力。然后,学会用仿 真实验来验证方案的正确性,培养我们综合运用知识和独立开展实验 创新的能力。最后,规范化训练我们撰写技术研究报告,提高书面表 达能力。
第二节设计要求
本设计是一个功能较为简单的四路抢答器,基本要求有以下几点:
实现一四人抢答器,有人抢答成功后,其他人再抢答无效;
主持人通过按键清除抢答信息,并开始30秒的答题倒计时, 当倒计时结束时,通过蜂鸣器响来提示回答问题时间到,此时可以 开始新一轮的抢答。
第三节设计方案
设计是以Verilog HDL语言为基础设计的电子抢答器,在设计过
程中先将系统模块化,然后逐步实现,根据设计功能要求,该设计主
要包括按键抢答输入,数码管显示,报警电路及FPGA系统。抢答器
结构原理图如图1:
锁存电 路
图1抢答器结构原理图
按键2
倒计时模块
数码管片 选信号
数码管
显示模块
数码管 译码电 路
第二章系统分析与实现
第一节系统分析
该系统可实现要求中的最基本功能,除此之外还可以实现抢答时 间限制的功能,其中,抢答成功者组号由静态显示的方法使用,使四 个数码管同时显示其组号,同时,该抢答者对应的led灯亮。若还有 其他抢答者在其后按下按键,抢答无效,只取第一个抢答者信息。
第二节程序及程序功能介绍
一、端口定义部分
module main(reset,clock,dinl,din2,din3,din4,judge,beep,wei,duan,beep,weil,dua
nl);
input reset,clock;
input dinl,din2,din3,din4,judge;
output[3:0] wei;
output[7:0] duan;
output beep;
output[3:0] weil;
output[7:0] duanl;
wire elk lk;
wire clklhz;
fenpin uut 1 (reset,clock,elk lk,clklhz);
qiangde uut2(clock,din 1, din2,din3, din4 ,j udge,clk 1 hz, wei,duan);
daojishi uut3(reset,clklk,clklhz,beep,weil,duanl);
Endmodule
二、抢答部分
IJ
reset
beep
clk1_k
wei1[3..O]
clk1_hz
duan1[7..O]
qiangdaqi
inst
本段程序实现基本的抢答功能,block为锁存信号,当有一组按 下抢答按钮后,系统锁存,其他组别抢答无效;同时通过fl向蜂鸣 器发出信号,蜂鸣器1S表示抢答成功;于此同时信号out输送给led 灯,抢答成功者对应led灯亮;seg_figure4为静态显示抢答成功的 组号,预置数为” _” ; 一组抢答成功后若其他组再抢答,数码管熄 灭示警。
module qiangde(clock,dinl,din2,din3,din4,judge,clkl_hz,wei,duan);
input clock judge;
input dinl,din2,din3,din4;
input clkl_hz;
output[3:0] wei;
output[7:0] duan;
reg[3:0] wei;
reg [7:0] duan;
reg block;
always @(posedge clock)
begin
if(! judge)
begin
block=0;
wei=4'bllll;
duan=8'hff;
els