基于EDA四位智能竞赛抢答器
EDA电子项目4路抢答器的原理图输入设计
4路抢答器适用于各类知识竞赛、文娱综艺节目,一 般有抢答、违例、抢答时限、答题时间倒计时/正 计时显示等功能。 本项目设计一个简易4路抢答器:设置4个按键作 为4路抢答开关,4个LED作为抢答指示,当按下抢 答开始键开始抢答。一旦某路抢答成功,蜂鸣器 发声,同时与抢答开关对应的LED被点亮指示抢答 的组别,输出被锁定,抢答开关按键无效直到再 次按下抢答开始键。
(5)完成器件编程
四、项目实施
2.硬件电路调试及排故
电路调试: 按下复位键,再按下第一个抢答键,是否听到蜂鸣器发声,同 时第一个LED是否发光,此时再按抢答键是否起作用。再按下 复位键,蜂鸣器是否停止发声。以相同的方法调试其他抢答键。
故障分析及排除:
1.完成器件编程后,蜂鸣器常叫不止,直到抢答器按下。出 现这种情况,是由于4输入与非门调用成了4输入与门。 2.无论怎样按复位键和抢答键,抢答器始终无反应。出现这 种情况,应该考虑管脚没有分配好,或者分配了管脚,但是没 有重新编译。
(2) 建编辑原理图设计文件
新建原理图文件QDQ.BDF。
放置元件,调整元件位置。
四、项目实施——1. Quartus Ⅱ原理图设计
完成连线、并重新命名管脚
四、项目实施——1. Quartus Ⅱ原理图设计
(3) 项目编译
分析综合 点击Quartus Ⅱ软件工具条上的快捷按钮 进行分析综合。 引脚分配 完成抢答器的分析综合过程,得到工程的数据库文件以后, 需要给抢答器的输入输出引脚进行引脚分配。 全编译 选择Processing→Start Compilation启动全编译过程。 ,对抢答器工程
教师评价+互评
教师评价+互评
3.操作实施 (30%)
四路抢答器EDA
DEA设计(二)——四路抢答器学院:自动化姓名:学号:指导老师:2015年9月28日目录1 实验任务及要求 (1)2 程序流程图 (2)3 电路原理图 (3)4 电路模块 (3)4.1 KEY模块 (4)4.2 KEEP模块 (4)4.3 TIME模块 (5)4.4 STATE模块 (6)4.5 BEEP模块 (7)5 下载程序 (8)5.1 分配引脚 (8)5.2 下载到实验箱 (8)6 实验心得 (9)1 实验任务及要求1.设计用于竞赛抢答的四人抢答器1)有多路抢答,抢答台数为4;2)抢答开始后20秒倒计时,20秒后无人抢答显示超时并报警;3)能显示抢答台号并显示犯规警报;2.系统复位后进入抢答状态,当有一路抢答键按下,该路抢答信号将其他各路抢答信号封锁,同时铃声响起,直至该路按键松开,显示该路抢答台号。
3.用VHDL语言设计符合上述功能要求的四人抢答器,并用层次化设计方法设计该电路。
4.完成电路设计后,通过系统试验箱下载验证设计的正确性。
2 程序流程图图2.1 程序流程图3 电路原理图电路原理图如下:图3.1 电路原理图电路说明:1)抢答状态由一个数码管显示,“F”代表超时,“E”代表犯规,“0”代表正常。
2)倒计时由两个数码管显示,从“20”记到“00”。
3)还有一个数码管用来显示当前抢答号“1”,“2”,“3”,“4”。
4 电路模块本次实验中我主要负责抢答模块的编程,即key模块和keep模块,这两个模块的主要功能是记录无论是正常抢答还是提前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余的抢答信号封锁的功能。
4.1 KEY模块图4.1 Entity KEY模块功能:抢答队伍共分为四组1,2,3,4。
当主持人按下START键后,四组队伍才可以按抢答键抢答。
当有人按下抢答键且此时keep模块的反馈信号为feedback为“1”时,将相应的输出置“1”,但在主持人未按下START键之前,所有的抢答键按下时,feedback信号为“0”,此时按键是无效的。
EDA课程设计—四人抢答器设计
EDA课程设计—四⼈抢答器设计摘要现代⽣活中,数字电路产品与我们接触的是越来越平凡了,包括计算机、电⼦表、智能仪器表及其它很多领域中,它给我们带来的不仅是⼯作上的⽅便,⽽且也给我们的⽣活娱乐添滋加彩。
这次EDA课程设计中,我做的是四⼈抢答器,基于设计要求,本⽂主要是从锁存器及计数器功能和VHDL语⾔着⼿,但侧重点在⽤VHDL语⾔上。
⾸先简单介绍⼀下数字电路、EDA、VHDL等的有关知识,其次介绍了⼀下设计要求和我的设计构想,再运⽤VHDL语⾔特点,写出程序代码,最后是⼀些总结和抢答器部分实验电路图与倒计时设计的电路图和⽤MAX+PLUSII软件仿真的结果部分图附录等部分。
关键词:置位;复位;锁存;计数器;七段显⽰器;MAX+PLUSII;译码器⽬录摘要: (1)引⾔: (2)⼀、设计任务及要求: (2)⼆、题⽬分析与整体构思: (2)三、VHDL程序设计: (3)四、⼼得体会及模型评价与推⼴: (5)附录: (6)参考⽂献: (10)引⾔数字电路主要是基于两个信号(我们可以简单的说是有电压和⽆电压),⽤数字信号完成对数字量进⾏算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。
EDA技术⼜称电⼦设计⾃动化,它是为解决⾃动控制系统设计⽽提出的,从70年代经历了计算机辅助设计(CAD),计算机辅助⼯程(CAE),电⼦系统设计⾃动化(ESDA)3个阶段。
前两个阶段的EDA产品都只是个别或部分的解决了电⼦产品设计中的⼯程问题;第三代EDA⼯具根据⼯程设计中的瓶颈和⽭盾对设计数据库实现了统⼀管理,并提出了并⾏设计环境概念,提供了独⽴于⼯艺和⼚家的系统级的设计⼯具。
VHDL(VERY HIGH SPEED INTEGRA TED CIRCUIT HARDW ARE DESCRIPTION LANGUAGE)语⾔最早是有美国国防部提出的,它⽀持⾏为领域和结构领域的硬件描述,并且可以从最抽象的系统级⼀直到最精确的逻辑级,在描述数字系统时,可以使⽤前后⼀致的语义和语法跨越多个层次,并且使⽤跨越多个级别的混合描述模拟该系统。
EDA课程设计四人智力竞赛计数抢答器
四人智力竞赛计数抢答器一、设计任务与要求任务:要求设计一个四人智力计数抢答器。
要求:四人使用抢答,当其中一人按下抢答器,将封锁其余抢答器,数码管显示一位二进制数,同时倒计时开始计时(0—99)秒,如果在倒计时间内没答完题报警器开始响。
二、总体框图根据设计要求,本系统应具有第一抢答信号的鉴别和锁存、答题计时、动态显示和声光提示等功能。
为了完成上述功能,该系统应由抢答鉴别和锁存电路、答题计时电路、数显驱动电路和声光驱动电路等组成。
抢答器设计的关键是准确地判断第一抢答信号和锁存。
在得到第一抢答信号后应立即进行电路封锁,使其他组抢答无效。
形成抢答信号后,由数显电路显示抢答组别,由声光电路提示超时抢答。
图1 总体框图三、选择器件1、装有QuartusII软件的计算机一台。
2、7段数码显示管。
3、芯片:使用Altera公司生产的Cyclone系列芯片,如EP1C12Q240C8芯片。
4、EDA实验箱一个。
5,下载接口是数字芯片的下载接口(JTAG)主要用于FPGA芯片的数据下载。
6、时钟源。
Cyclone的性能特性Cyclone器件的性能足以和业界最快的FPGA进行竞争。
Cyclone FPGA内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
FPGA的基本特点主要有:1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
四、功能模块1:library ieee;use ieee.std_logic_1164.all;entity feng isport(cp,clr:in std_logic;q :out std_logic);end feng;architecture feng_arc of feng isbeginprocess(cp,clr)beginif clr='0' thenq<='0';elsif cp'event and cp='0' thenq<='1';end if;end process;end feng_arc;此程序为抢答鉴别模块feng该模块主要实现抢答和鉴别的功能。
EDA课程设计四路智能抢答器
一、课题简介在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等各种手段批示出第一抢答者。
同时,还可以设置计分、犯规及奖惩记录等各种功能。
本设计的具体要求是:设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。
(2) 电路具有第一抢答信号的鉴别和锁存功能。
(3)系统具有计时功能(4)系统具有计分电路。
二、课题背景数字电路产品在生活中有着极其广泛的应用,包括计算机、数字通信、智能仪器仪表、自动控制及航天等领域中。
这些给人们生活,工作等方面带来了极大的方便。
数字电路设备实现简单,速度和可靠性好。
智力竞赛是一种能锻炼人的头脑开发人的IQ的一种大众化游戏,也起到娱乐的作用。
现在智力竞赛越来越被多数人喜爱和娱乐,而且国内外各地电视台、工厂、学校等单位也会常常举办类似的智力竞赛活动,然而智力竞赛抢答器是必要设备。
在有些地方举行的各种智力竞赛游戏中我们经常看到有抢答的环节,举办方大多数采用让选手通过举答题板的方法或者是举手的方式判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。
所以,我们就需要一种具备自动锁存,置位,清零等功能智能抢答器来解决这些问题。
三、课题在国内外的研究现状抢答器一般分为电子抢答器和电脑抢答器。
电子抢答器的中心构造一般都是由抢答器由数字电子集成电路组成,其搭配的配件不同又分为,非语音非记分抢答器和语音记分抢答器。
非语音记分抢答器构造很简单,就是一个抢答器的主机和一个抢答按钮组成,在抢答过程中选手是没有记分的显示屏。
语音记分抢答器是由一个抢答器的主机、主机的显示屏以及选手的记分显示屏等构成,具有记分等功能。
电子抢答器多适用于学校和企事业单位举行的简单的抢答活动。
电脑抢答器又分为无线电脑抢答器和有线电脑抢答器。
无线电脑抢答器的构成是由:主机和抢答器专用的软件和无线按钮。
无线电脑抢答器利用电脑和投影仪,可以把抢答气氛活跃起来,一般多使用于电台等大型的活动。
基于EDA技术的四人电子抢答器
基于EDA技术电子抢答器的设计冯贵锋(广东工程职业技术学院电子信息工程技术)摘要:本设计采用EDA(电子设计自动化)技术,利用层次化设计方法设计4位抢答器,首先给出系统的功能描述,然后进行功能分解,逐层设计。
在抢答器设计过程中,层次化思想体现在利用VHDL语言实现显示功能,在仿真成功的基础上,利用Altera公司的FPGA(现场可编程门阵列)芯片EP1K30QC208-2来实现该4位抢答器。
实践证明,所设计的4位抢答器运行稳定,可靠性达到设计要求,分辨力较高,且无论是前面的锁存还是后面的显示都具有很大的拓展空间,可以很方便地得到拓展。
关键词:层次化,FPGA,电子抢答器,EDA一、4位抢答器系统功能及功能分解在各种知识竞赛中,电子抢答器是必不可少的设备之一,它的整体功能如下:每个参赛者控制一个抢答按钮,主持人控制复位按钮,每个参赛选手对应一个号码,竞赛开始后,LED(发光二极管)显示器上显示先按动按钮的选手号码,此后其他人再按动按钮对电路不起作用。
当主持人按下复位按钮后可进行新一轮抢答。
将上述功能分解成显示功能、锁存功能、优先排序功能。
在设计过程中,利用图形输入来实现锁存和优先排序功能,将排序输出作为显示的输入,利用VHDL语言实现显示功能。
二、锁存与优先排序功能的实现利用MXA+PLUSⅡ软件的图形界面设计该功能,由于触发器具有锁存功能,所以采用74LS175触发器来保存数据,用与或非门来实现优先级别的判断。
用aa、bb、cc、dd表示4位抢答输入按钮,接到输入端,clr表示复位按钮,接到复位端,clk表示时钟输入按钮,采用周期为200 ns的时钟源作为输入,Qa、Qb、Qc、Qd作为输出端,接到显示的输入端。
如下图所示:编译完成后,生成qdq. Sym,供顶层文件调用。
三、显示功能的实现抢答者的号码通过共阴七段译码管显示,当1号选手首先按下时显示1,依类推,当按下复位键或其他非选手号码输入时,译码管显示为0。
EDA课程设计教程---四路抢答器
前言“数字逻辑”是我院计算机科学与技术专业及自动化专业最重要的专业基础课之一。
随着电子技术的高速发展,数字技术也可谓是一日千里。
尤其是九十年代迅速发展起来的在系统可编程技术ISP,更使数字系统的设计方法发生本质性、革命性变化。
为了适应数字技术的飞速发展,培养出在二十一世纪具有竞争力的计算机及自动化的高等人才,采用可编程技术及可编程器件进行数字电路及系统的设计势在必行。
为此,我院“数字逻辑”实验设备更新为具有当前国内先进水平的EDA实验开发系统。
EDA(Electronic Des ign Automation)即指电子设计自动化。
EDA实验开发系统是一种多功能、高配置、高品质的EDA教学与开发设备。
该系统由于采用可编程CPLD器件及独特的设计技术,从而使学生的实验从传统的硬件连接方式进入到软件设计、仿真调试系统的实验方式,并使传统的硬件设计方式用EDA技术实现。
这与用连线搭接电路的实验方式相比,不仅故障率大大降低,而且节省了时间、提高了实验效率。
同时,也使学生获得的知识紧跟国际数字技术的先进水平。
EDA实验教程是为适应数字逻辑课程的教学改革而编写的。
考虑到现代教育不仅使学生通过实验能够掌握所学理论知识,而且有利于激发和培养学生的创新意识和创造能力,该教程结合实验室已更新的EDA实验开发系统,为学生提供了一些以设计性和综合性实验为主的、具有任意可选性的基础实验课题;同时也为数字逻辑课程设计提供了一些即具有实用价值、趣味性又较强的数字系统设计项目。
该教程适用于“数字逻辑”课程教学实验和课程设计。
因时间短促,还存在很多不足及错误,敬请各位老师及同学指正。
“数字逻辑”课程组2008年10月目录前言第一章MAX+PLUSⅡ基本操作 (3)1.1 设计环境与设计方法 (3)1.1.1 系统配置与安装 (3)1.1.2 MAX+PLUSⅡ操作环境 (5)1.1.3 MAX+PLUSⅡ的设计方法 (6)1.2 设计输入 (8)1.2.1 建立图形设计文件 (8)1.2.2建立文本设计文件(VHDL) (14)1.2.3 VHDL语言和原理图混合输入方式 (16)1.3 设计项目的编译 (16)1.4 设计校验 (23)1.4.1 仿真 (23)1.4.2 定时分析 (26)1.5 器件编程 (28)第二章数字逻辑基础实验 (30)2.1 交通控制灯监视电路 (30)2.2 五人表决器 (30)2.3 逻辑运算电路 (31)2.4 3:8线译码器 (31)2.5 逻辑函数发生器 (32)2.6 4位二进制数∕BCD码变换器 (32)2.7 格雷码变换器 (33)2.8 BCD码加法器 (33)2.9 四位并行乘法器 (33)2.10 BCD∕七段数字显示译码器 (34)2.11 基本触发器 (35)2.12 同步十进制计数器 (35)2.13 动态扫描数码显示器 (36)2.14 双向移位寄存器 (37)2.15 环形计数器与扭环计数器 (37)2.16 二十四进制计数器 (38)第三章数字系统综合设计 (40)3.1 多功能数字电子钟 (40)3.2 数字密码锁电路 (42)3.3 8位数字频率计 (42)3.4 等精度数字频率计 (44)3.5 快速加法器 (46)3.6 移位乘法器 (46)3.7 篮球30秒定时控制电路 (48)3.8 交通灯控制电路 (48)3.9 序列检测器 (49)3.10 出租车计费器 (50)3.11 智力竞赛抢答器 (51)3.12 模拟乒乓球游戏机 (52)附表SE-5M(EPF10K10)引脚对应表 (54)第一章MAX+PLUSⅡ基本操作本章介绍Altera公司的CPLD的开发工具软件MAX+PLUSⅡ。
EDA四人抢答器
HUBEI NORMAL UNIVERSITY电工电子实验报告课程名称EDA技术及应用实验名称四人抢答器选题性质综合设计学号姓名专业名称所在院系物理与电子科学学院报告时间2016年4月19湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验四人抢答器实验总结报告一. 任务解析1.实现一四人抢答器,有人抢答成功后,其他人再抢答无效;2.点亮选手对应的LED灯,并在数码管上显示抢答者的序号;3.主持人通过按键清除抢答信息,重新开始新一轮的抢答。
二. 方案论证三. 实验步骤1.电路分析(1)复位电路图中的reset按键作用是主持人按键清屏,当主持人按下按键后各电路复位,放开按键标志着开始抢答。
(2)抢答电路图中的key0,key2,key3,key4代表着选手a,b,c,d。
当主持人按键清屏后四人就开始按键抢答,如果其中一人首先按下抢答键抢答成功后,其他人再按键无效。
(3)LED灯显示电路图中选用led0,led1,led2,led3分别做为a,b,c,d四位选手对应的指示灯,抢答开始后当其中一位选手按下抢答键则点亮这位选手对应的指示灯。
(4)数码管显示电路图中选用引脚为75号的位的数码管来显示选手的序号,将a,b,c,d四位选手分别编号为1,2,3,4。
若其中一位选手抢答成功数码管就显示该位选手的编号,例如a选手抢答成功那数码管就显示1。
2.实验代码module cnt(clk,duan,wei,reset,qiangda1,qiangda2,qiangda3,qiangda4,ledout);input clk,qiangda1,qiangda2,qiangda3,qiangda4,reset;output [7:0]duan,wei;output[3:0]ledout;reg[7:0]ledout;reg [7:0]wei,duan;reg [3:0]data;reg [0:0]cnt;reg [0:0] key1 = 1'b0;reg [0:0] key2 = 1'b0;reg [0:0] key3 = 1'b0;reg [0:0] key4 = 1'b0;reg [28:0]jia1;reg [20:0]jia;reg [2:0]count;reg clk600hz,clk2hz;always@(posedge (qiangda1 || reset)) beginif(key1 == 0)key1 = ~key1;if(reset)key1 = 0;endalways@(posedge qiangda2 || reset) beginif(key2 == 0)key2 = ~key2;if(reset)key2 = 0;endalways@(posedge qiangda3 || reset) beginif(key3 == 0)key3 = ~key3;if(reset)key3 = 0;endalways@(posedge qiangda4 || reset) beginif(key4 == 0)key4 = ~key4;if(reset)key4 = 0;endalways @(posedge clk)beginif(jia<8333-1)jia=jia+1;begin jia=0;clk600hz=!clk600hz;endif(key1 && count == 0)count=1;if(key2 && count == 0)count=2;if(key3 && count == 0)count=3;if(key4 && count == 0)count=4;if(reset == 1)count = 0;endalways @(posedge clk)begincase(count)0:ledout=8'b0000000;1:ledout=8'b0000001;2:ledout=8'b0000010;3:ledout=8'b0000100;4:ledout=8'b0001000;endcaseendalways @(posedge clk600hz)begincnt <= cnt +1;case(cnt)1'b0:data=count%10;endcasecase(cnt)1'b0:wei=8'b11111110;default:wei=8'b11111111;endcaseendalways @(data)begincase(data)4'h0:duan=~8'b00111111;4'h1:duan=~8'b00000110;4'h2:duan=~8'b01011011;4'h3:duan=~8'b01001111;4'h4:duan=~8'b01100110;4'h5:duan=~8'b01101101;4'h6:duan=~8'b01111101;4'h7:duan=~8'b00000111;4'h8:duan=~8'b01111111;4'h9:duan=~8'b01101111;default:duan=~8'b00000000;endcaseendendmodule四. 实验总结经过这次的EDA课程,我收获很多。
(完整版)基于EDA四位智能竞赛抢答器
四位智能竞赛抢答器第一章系统设计第一节课题目标《硬件描述语言》是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。
不论理论学习还是实际应用,都离不开实验课教学。
如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节的局面。
《HDL 项目设计》的目的就是让我们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使我们不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础。
通过这次设计实验,首先,使我们更加深入的巩固了书本上的知识,在掌握理论基本知识的基础上,学会了对常用软件的使用。
其次,通过这次设计实验,使我们了解并熟悉了程序的设计方法和步骤,而且在与同学讨论的同时也提高了团结合作的能力。
然后,学会用仿真实验来验证方案的正确性,培养我们综合运用知识和独立开展实验创新的能力。
最后,规范化训练我们撰写技术研究报告,提高书面表达能力。
第二节设计要求本设计是一个功能较为简单的四路抢答器,基本要求有以下几点:(1)实现一四人抢答器,有人抢答成功后,其他人再抢答无效;(2)主持人通过按键清除抢答信息,并开始30秒的答题倒计时,当倒计时结束时,通过蜂鸣器响来提示回答问题时间到,此时可以开始新一轮的抢答。
第三节设计方案设计是以Verilog HDL语言为基础设计的电子抢答器,在设计过程中先将系统模块化,然后逐步实现,根据设计功能要求,该设计主要包括按键抢答输入,数码管显示,报警电路及FPGA系统。
抢答器结构原理图如图1:图1 抢答器结构原理图第二章系统分析与实现第一节系统分析该系统可实现要求中的最基本功能,除此之外还可以实现抢答时间限制的功能,其中,抢答成功者组号由静态显示的方法使用,使四个数码管同时显示其组号,同时,该抢答者对应的led灯亮。
基于EDA的智力抢答器的课程设计
山东建筑大学课程设计说明书目录摘要1、课程设计目的与要求 (1)2、课程设计原理.................................................................. 错误!未定义书签。
3、课程设计内容.......................................................................................... .. (2)3.1软件整体设计 (2)3.2总体设计电路 (3)3.3模块设计和相应模块程序 (4)3.3.1抢答鉴别模块 (4)3.3.2计时模块 (7)3.3.3数据选择模块和译码模块 (9)3.3.4仿真及仿真结果分析 (11)结论与致谢................................................................................................. 错误!未定义书签。
参考文献..................................................................................................... 错误!未定义书签。
附录. (14)山东建筑大学课程设计说明书摘要抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者可以分为若干组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。
当第一个人按下按键后,则在显示器上显示该组的号码,同时电路将其他各组按键封锁,使其不起作用。
若抢答时间内无人抢答,警报器发出警报。
回答完问题后,由主持人将所有按键恢复,重新开始下一轮抢答。
因此要完成抢答器的逻辑功能,该电路至少应包括抢答鉴别模块、计时模块、选择模块和报警模块组成。
关键词:抢答鉴别封锁计时报警Verilog HDL山东建筑大学课程设计说明书1、课程设计目的与要求根据设计要求分析智力抢答器的功能,掌握设计中所涉及到抢答锁存;抢答计时;数据选择;译码显示、Verilog HDL语言的编程技术,阐明设计原理。
EDA四路电子抢答器设计报告1
《EDA技术应用》课程设计报告专业: 通信工程班级: 09301**: **指导教师:2013年5 月22 日目录一、设计任务 (1)二、设计方案 (2)三、设计内容及程序 (2)(一)抢答鉴别及锁存模块 (3)(二)计分模块 (4)(三)计时模块 (6)(四)译码显示模块 (8)(五)分频模块 (9)(六)抢答器的顶层原理图设计 (10)四、总结 (11)五、心得与体会 (11)六、参考文献 (12)一、设计任务进一步掌握QUARTUSⅡ软件的使用方法;(1)会使用VHDL语言设计小型数字电路系统;(2)掌握应用QUARTUSⅡ软件设计电路的流程;(3)掌握电子抢答器的设计方法。
(二)设计要求(1)设计一个可以容纳四组参赛队进行比赛的电子抢答器。
(2)具有第一抢答信号的鉴别和锁存功能。
在主持人发出抢答指令后, 若有参赛者按抢答器按钮, 则该组指示灯亮, 显示器显示出抢答者的组别。
同时, 电路处于自锁存状态, 使其他组的抢答器按钮不起作用。
(3)具有计时功能。
在初始状态时, 主持人可以设置答题时间的初始值。
在主持人对抢答组别进行确认, 并给出倒计时记数开始信号以后, 抢答者开始回答问题。
此时, 显示器从初始值开始倒计时, 计到0时停止计数, 同时扬声器发出超时警报信号。
若参赛者在规定的时间内回答完问题, 主持人可以给出计时停止信号, 以免扬声器鸣叫。
(4)具有计分功能。
在初始状态时, 主持人可以给每组设置初始分值。
每组抢答完毕后, 由主持人打分, 答对一次加10分, 答错一次减1分。
(5)具有犯规设置电路。
对提前抢答者和超时抢答者, 给予鸣喇叭警示, 并显示规范组别。
二、设计方案系统的输入信号有: 各组的抢答按钮A.B.C.D, 系统允许抢答信号STA, 系统清零信号CLR, 系统时钟信号CLK, 计分复位端CLR, 加分按钮端ADD, 计时使能端EN;系统的输出信号有: 四个组抢答成功与否的指示灯控制信号输出口可用如LED_A.LED_B.LED_C.LED_D表示, 四个组抢答时的计时数码显示控制信号若干, 抢答成功组别显示的控制信号若干, 各组计分动态显示的控制信号若干。
EDA四人抢答器设计
前言 (1)1软件及语言相关介绍 (2)1.1quartus软件介绍及功能 (2)1.2VHDL语言介绍 (3)2设计要求与说明 (5)2.1抢答器鉴别模块 (5)2.2回答计时模块 (5)2.3计分模块 (5)2.4顶层文件综合模块 (5)3单元模块电路设计 (7)3.1抢答器鉴别模块 (7)3.1.1设计原理图 (7)3.1.2编译报告 (7)3.1.3仿真结果 (8)3.1.4设计说明 (8)3.2计时模块 (8)3.2.1设计原理图 (8)3.2.2编译报告 (9)3.2.3仿真结果 (9)3.2.4设计说明 (9)3.3计分模块 (10)3.3.1计分模块原理图 (10)3.3.2编译报告 (11)3.3.3仿真结果 (11)3.3.4设计说明 (11)3.4顶层文件模块 (12)3.4.1顶层模块原理图 (12)3.4.2编译报告 (12)3.4.3仿真结果 (13)3.4.4设计说明 (13)心得体会 (14)参考文献 (15)附录顶层文件源程序 (16)现代电子产品几乎渗透了社会的各个领域EDA技术是电子设计的发展趋势,EDA工具从数字系统设计的单一领域,应用范围已涉及模拟、微波等多个领域,可实现各个领域电子系统设计的测试、设计仿真和布局布线等。
设计者只要完成对电子系统的功能描述,就可利用计算机和EDA工具,进行设计处理,最终得到设计结果。
随着大规模集成电路技术和计算机技术的不断发展,即便是普通的电子产品的开发,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性价比大幅度提高。
不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。
从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。
在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。
EDA课程设计--四人智力竞赛计数抢答器
显示程序需要实现倒计时功能,倒 计时结束后,抢答器停止工作,并 显示得分。
声音报警程序
功能:当抢答器检测到有人抢答时,发出声音报警 设计思路:使用声音播放模块,当检测到有人抢答时,播放报警声音 实现方法:使用Python的pygame库,实现声音播放功能 注意事项:确保声音报警声音足够响亮,能够引起注意,同时避免声音过大导致干扰其他设备
兼容性测试:验证计数抢答器 在不同硬件和软件环境下的兼
容性
用户体验测试:评估用户界面 和操作流程的友好性和易用性
测试结果分析
测试环境:实 验室环境
测试设备:四 人智力竞赛计
数抢答器
测试方法:手 动测试和自动
测试
测试结果:抢 答器功能正常, 计数准确,响
应速度快
改进与优化
硬件优化方案
采用模块化设计,提高系统的稳定性和可维护性 优化电路布局,减少电磁干扰和信号损失 选用低功耗、高可靠性的元器件,降低系统功耗和故障率 增加散热措施,提高系统的散热效率和稳定性
软件调试
调试工具:使用调试器进行代 码调试
调试方法:单步调试、断点调 试、条件调试等
调试技巧:观察变量值、查看 堆栈信息、分析错误日志等
调试目标:发现并修复软件中 的错误和漏洞,提高软件稳定 性和性能。
整体测试
性能测试:测试计数抢答器 的响应速度和稳定性
功能测试:验证计数抢答器 的基本功能是否正常
的编号。
如果有多个参赛者同时按下按 钮,抢答器会显示错误信息,
重新开始计时。
抢答器的应用场景
学校课堂:用于课堂问答、知识竞 赛等活动
综艺节目:用于电视节目、网络直 播等活动
添加标题
添加标题
添加标题
四人智力竞赛抢答器课程设计报告(最终5篇)
四人智力竞赛抢答器课程设计报告(最终5篇)第一篇:四人智力竞赛抢答器课程设计报告一、设计题目四人电子抢答器二、设计功能1.基本功能(1)抢答器同时供4名选手比赛,分别用4个按钮key5 ~ key8表示。
(2)设置一个系统重置和抢答控制开关start(key1),该开关由主持人控制。
(3)抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,扬声器发出声响提示,并在数码管上显示选手号码。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
2.扩展功能(1)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(30秒)。
当主持人启动“开始”键后,定时器进行减计时。
(2)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
(3)在设定的抢答时间内如果定时时间已到,无人抢答,本次抢答无效,3.自主功能(1)抢答器具有自动计时功能,当有选手抢答答题时间(10秒)自动开始。
(2)报警电路设计:当答题时间和抢答时间将到或结束(还剩3秒时)发出蜂鸣声结束答题。
(3)每个选手有一个记分板,答对题目可以由主持人控制start 键给予加分。
每加一分响一次。
(4)长按start可以自动准备计时和系统清零,短按开始计时和暂停。
三、原理电路设计:1、方案抢答电路:使用74175作为锁存电路,当有人抢答时,利用锁存器的输出信号号将时钟脉冲置零,74175立即被锁存,同时蜂鸣器鸣叫1s,这时抢答无效,使用74148作为编码器,对输入的型号进行编码。
输出在共阳数码管显示主持人电路:(1)利用2个74168计数器作为倒计时的芯片,当主持人按下抢答按钮时,2个74168被置29,同时将开始倒计时。
假如在30秒内有人抢答,则计数器停止倒计时,将锁存器锁存,禁止选手抢答,蜂鸣器鸣叫一秒,停止倒计时。
(2)利用4个74160分别控制4位选手的得分,分别显示在4个共阳数码管。
EDA技术-VHDL-5.1 四人抢答器设计
第5章数字系统程序设计与仿真实验5.1 四人抢答器程序设计与仿真实验1.实验目的设计一个四人抢答器。
2.实验原理系统设计一个4人参加的智力竞赛抢答器,当有一参赛选手首先按下抢答器开关时,相应显示该选手所在抢答器开关的编号,此时抢答器不再接受其他的输入信号。
电路还具有时间控制功能,要求回答问题时间小于100秒,显示为(0-99),时间显示采用倒计时,当达到限定时间时,发出提示信号。
系统组成模块如下:四输入与门模块和catch模块的功能为捕捉选手输入的开关信号;Lock模块为锁存模块,锁存产生开关信号和输入开关的状态;ch41a模块的功能是将抢答的结果转换成二进制数,易于读数;计数count 模块的功能是对100秒进行计数。
四人抢答器总体方框图如图5.1.1所示。
图5.1.1 四人抢答器总体方框图3.实验内容(1)根据实验原理,完成抢答器各模块的设计,并仿真。
(2)完成顶层设计文件的编写,实现四人抢答器的设计。
(3)对四人抢答器进行功能仿真,检验是否达到设计要求。
(4)下载,并进行硬件测试。
4.实验预习与思考(1)考虑四人抢答器设计中信号传递的时间延迟方法。
(2)如何实现当已经有选手输入抢答信号后对其他选手的输入信号进行屏蔽。
5.程序设计与仿真(1)程序设计①四输入与门模块(略)。
126②catch模块(catch.vhd)源程序如下,RTL电路如图5.1.2所示。
library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity catch isPort ( cp : in std_logic; --脉冲clr : in std_logic; --复位信号q : out std_logic);end catch;architecture Behavioral of catch isbeginprocess(cp,clr)beginif clr='0' thenq<='0';elsif cp'event and cp='0' thenq<='1';end if;end process;end Behavioral;图5.1.2 catch模块RTL电路③Lock模块(lock.vhd)为锁存模块,锁存产生开关信号时和输入开关的状态,锁存模块源程序如下,RTL电路图略。
EDA课程设计--VHDL四路智力抢答器
VHDL 四路智力抢答器EDA 课程设计一、任务与目的1.1熟练掌握EDA 工具软件Quartus 的使用1.2 熟悉使用VHDL 硬件描述语言描述数字电路1.3 学会使用VHDL 进行大规模集成电路设计1.4 学习使用CPLD/FPGA 实验系统硬件验证电路设计的正确性1.5 初步掌握EDA 技术并具备一定的可编程逻辑芯片的开发能力二、设计题目与要求2.1 设计题目四路智力竞赛抢答器2.2 设计要求1. 按所布置的题目要求,每一位学生独立完成全过程2. 分模块层次化的设计;3. 各功能模块的底层文件必须用VHDL 语言设计,顶层文件可以用VHDL 语言设计,也可以用原理图设计。
2.3 设计内容设计一个可容纳四组参赛者同时抢答的数字抢答器。
主持人可控制系统发的清零和抢答的开始,控制电路可实现最快抢答选手按键抢答的判别和锁定功能,并禁止后续其他选手抢答。
抢答选手确定后给出选手编号的显示,抢答选手的编号显示保持到系统被清零为止,若提前抢答则对相应的抢答组发出警告。
*扩展内容:增加答题限时的功能,在确定了抢答成功有效后,有主持人按下答题限时功能键,开始9s 的倒计时。
在计时结束后,超时提示LED 闪烁。
在主持人按下clear 开关时限时复位。
三、功能分析四路智力竞赛抢答器按功能设计分为三个模块1. 抢答锁存模块,在主持人发出抢答指令后(start=''),若有参赛者按下抢答按钮,则显示器显示抢答组别,同时电路处于自锁状态,使其它组的抢答器不起作用。
主持人可以用清零按钮进行清零(Clr= '0').若抢答指令未发出(Start='0'),而有参赛者按下抢答按钮,则发出警告信号(alm=1).2. 显示功能模块,在参赛者抢答信号(组别)发出后,对参赛者信号进行译码,然后用7 段数码管显示出来。
3. 计时模块,在确定了抢答成功有效后,有主持人按下答题限时功能键,开始9s 的倒计时。
EDA课程设计四路抢答器
目录第一章 EDA技术简介 (2)第二章抢答器的设计要求 (2)第三章抢答器的设计分析 (3)第四章抢答器的抢答鉴别模块 (4)4.1抢答鉴别的功能 (4)4.2抢答鉴别模块的源程序 (4)4.3抢答鉴别模块的时序仿真图 (7)第五章抢答器的计时模块 (8)5.1计时模块的功能 (8)5.2计时模块的源程序 (8)5.3计时模块的时序仿真图 (11)第六章抢答器的计分模块 (12)6.1计分模块的功能 (12)6.2计分模块的源程序 (12)6.3计分模块的时序仿真图 (15)第七章抢答器的译码显示模块 (16)7.1译码显示模块的功能 (16)7.2译码显示模块的源程序 (16)7.3译码显示模块的时序仿真图 (17)第八章抢答器的其他功能模块 (18)8.1其他功能模块的具体信息 (18)第九章抢答器的顶层原理图设计 (19)9.1顶层原理图的源文件 (20)9.2顶层设计的时序仿真图 (21)第十章抢答器的硬件测试 (22)10.1抢答器的引脚绑定 (22)10.2抢答器的测试结果 (22)第十一章课程设计的总结 (23)参考文献 (23)1第一章 EDA技术简介数字抢答器控制系统在现今许多工厂、学校和电视台等单位所举办的各种知识竞赛中起着不可替代的作用。
基于EDA技术设计的电子抢答器,以其价格便宜、安全可靠、使用方便而受到了人们的普遍欢迎。
本文以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言VHDL为主要表达方式,以OuartusⅡ开发软件和GW48EDA开发系统为设计工具设计的电子抢答器,具有抢答鉴别与锁存功能以及60秒答题限时功能、对抢答犯规的小组进行警告和对各抢答小组进行相应的成绩加减操作等功能。
第二章抢答器的设计要求1 电子抢答器的功能该电子抢答器实现的功能主要包括四项操作:(1)第一抢答信号的鉴别和锁存该电子抢答器共设4个组别,每组控制一个抢答开关,分别为a,b,c,d。
EDA设计智力抢答器设计
用EDA设计智力抢答器设计一、用EDA设计智力抢答器设计,设计要求:1设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮。
2电路具有第一抢答信号鉴别和锁存功能。
3设置记分电路。
二、原理分析:将电路分为三个主要模块:抢答鉴别模块QDJB;计时模块JSQ;记分模块JFQ;译码器显示模块YMQ;元件例化QDQ三、代码:方法1用静态显示,使用4个数码管,两个显示计时,一个显示组别,一个显示分数1抢答鉴别模块QDJBLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY QDJB ISPORT(CLR: IN STD_LOGIC;A, B, C, D: IN STD_LOGIC; --4个组A1,B1,C1,D1: OUT STD_LOGIC;STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY QDJB;ARCHITECTURE ART OF QDJB ISsignal a_1,b_1,c_1,d_1:std_logic;BEGINPROCESS(CLR,A,B,C,D) ISBEGINIF CLR='1' THEN STATES<="0000";a_1<='0';b_1<='0';c_1<='0';d_1<='0';--清零elsif a_1='1' or b_1='1' or c_1='1' or d_1='1' then null;--锁存,当有一组选中时其他组再抢答没作用elsif a='1' then a_1<='1';states<="0001";elsif b='1' then b_1<='1';states<="0010";elsif c='1' then c_1<='1';states<="0011";elsif d='1' then d_1<='1';states<="0100";end if;a1<=a_1;b1<=b_1;c1<=c_1;d1<=d_1;END PROCESS;END ARCHITECTURE ART;2计时模块JSQLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JSQ ISPORT(CLR,LDN,EN,CLK: IN STD_LOGIC;TA,TB:IN STD_LOGIC_vector(3 downto 0);QA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --ge weiQB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); --shi weiEND ENTITY JSQ;ARCHITECTURE ART OF JSQ ISBEGINPROCESS(CLK) ISVARIABLE TMPA:STD_LOGIC_VECTOR(3 DOWNTO 0);VARIABLE TMPB:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLR='1' THEN TMPA:="0000"; TMPB:="0110"; --清零,倒计时60秒ELSIF CLK'EVENT AND CLK='1' THENIF LDN='1' THEN TMPA:=tA; TMPB:=tB; --置数控制,如果不想要60可以从TA,TB输入倒计时秒数ELSIF EN='1' THEN--计时开始IF TMPA="0000" THEN--遇到9则自动变为0,否则减一TMPA:="1001";IF TMPB="0000" THEN TMPB:="0110";ELSE TMPB:=TMPB-1;END IF;ELSE TMPA:=TMPA-1;END IF;END IF;END IF;QA<=TMPA; QB<=TMPB;END PROCESS;END ARCHITECTURE ART;3记分模块JFQLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JFQ ISPORT(RST: IN STD_LOGIC;ADD: IN STD_LOGIC;CHOS: IN STD_LOGIC_VECTOR(3 DOWNTO 0);out1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY JFQ ;ARCHITECTURE ART OF JFQ ISBEGINPROCESS(RST,ADD,CHOS) ISVARIABLE POINTS_A0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_B0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_C0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_D0: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF (ADD'EVENT AND ADD='1') THENIF RST='1' THENPOINTS_A0:="0000";POINTS_B0:="0000";POINTS_C0:="0000";POINTS_D0:="0000";ELSIF CHOS="0001" THENIF POINTS_A0="1001" THENPOINTS_A0:="0000";ELSEPOINTS_A0:=POINTS_A0+1;END IF;ELSIF CHOS="0010" THENIF POINTS_B0="1001" THENPOINTS_B0:="0000";ELSEPOINTS_B0:=POINTS_B0+1;END IF;ELSIF CHOS="0011" THENIF POINTS_C0="1001" THENPOINTS_C0:="0000";ELSEPOINTS_C0:=POINTS_C0+1;END IF;ELSIF CHOS="0100" THENIF POINTS_D0="1001" THENPOINTS_D0:="0000";ELSEPOINTS_D0:=POINTS_D0+1;END IF;END IF;END IF;if chos="0001" then out1<=POINTS_a0;elsif chos="0010" then out1<=POINTS_b0;elsif chos="0011" then out1<=POINTS_c0;elsif chos="0100" then out1<=POINTS_D0;elsif chos="0000" then out1<="0000";end if;END PROCESS;END ARCHITECTURE ART;4译码器显示模块YMQLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YMQ ISPORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END YMQ;ARCHITECTURE ART OF YMQ ISBEGINPROCESS(AIN4)BEGINCASE AIN4 ISWHEN "0000"=>DOUT7<="1111110"; --0WHEN "0001"=>DOUT7<="0110000"; --1WHEN "0010"=>DOUT7<="1101101"; --2WHEN "0011"=>DOUT7<="1111001"; --3WHEN "0100"=>DOUT7<="0110011"; --4WHEN "0101"=>DOUT7<="1011011"; --5WHEN "0110"=>DOUT7<="1011111"; --6WHEN "0111"=>DOUT7<="1110000"; --7WHEN "1000"=>DOUT7<="1111111"; --8WHEN "1001"=>DOUT7<="1111011"; --9WHEN OTHERS=>DOUT7<="0000000";END CASE;END PROCESS;END ARCHITECTURE ART;5元件例化library ieee;use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity qdq isport(qd :in std_logic_vector(3 downto 0);clk,en,ldn,add,rst,clrqd,clrsj :in std_logic;ta,tb : in std_logic_vector(3 downto 0);qdo :out std_logic_vector(3 downto 0);out1 :out std_logic_vector(3 downto 0);out2 :out std_logic_vector(3 downto 0);out4 :out std_logic_vector(3 downto 0);out3 :out std_logic_vector(3 downto 0));end;architecture aa of qdq iscomponent qdjb isPORT(CLR:IN STD_LOGIC;A, B, C, D: IN STD_LOGIC;A1,B1,C1,D1: OUT STD_LOGIC;STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END component QDJB;component jsq isPORT(CLR,LDN,EN,CLK: IN STD_LOGIC;TA,TB:IN STD_LOGIC_vector(3 downto 0);QA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);QB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END component JSQ;component ymq isPORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END component YMQ;component jfq isPORT(RST: IN STD_LOGIC;ADD: IN STD_LOGIC;CHOS: IN STD_LOGIC_VECTOR(3 DOWNTO 0);out1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END component JFQ ;signal tmp1,tmp2,tmp3,tmp4 : std_logic_vector(3 downto 0);beginu1: qdjb port map(clr=>clrqd,a=>qd(0),b=>qd(1),c=>qd(2),d=>qd(3),a1=>qdo(0),b1=>qdo(1),c1=>qdo(2),d1=>qdo(3),STATES=>tmp1);u2: jfq port map (rst=>rst,add=>add,chos=>tmp1,out1=>out2);u3: jsq port map(clr=>clrsj,ldn=>ldn,en=>en,clk=>clk,ta=>ta,tb=>tb,qa=>out3,qb=>out4);out1<=tmp1;end;方法2用动态显示library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jfq isport(rst:in std_logic;add:in std_logic;chos:in std_logic_vector(3 downto 0);PP2,PP1,PP0:OUT std_logic_vector(3 downto 0));end entity jfq;architecture art of jfq isSIGNAL aa2,aa1,aa0,bb2,bb1,bb0: std_logic_vector(3 downto 0);SIGNAL cc2,cc1,cc0,dd2,dd1,dd0: std_logic_vector(3 downto 0);beginprocess(rst,add,chos) isvariable points_a2,points_a1:std_logic_vector(3 downto 0);variable points_b2,points_b1:std_logic_vector(3 downto 0);variable points_c2,points_c1:std_logic_vector(3 downto 0);variable points_d2,points_d1:std_logic_vector(3 downto 0);beginIF(ADD'EVENT AND ADD='1') THENIF RST='1'THENPOINTS_A2:="0001";POINTS_A1:="0000"; POINTS_B2:="0001";POINTS_B1:="0000"; POINTS_C2:="0001";POINTS_C1:="0000"; POINTS_D2:="0001";POINTS_D1:="0000"; ELSIF CHOS="0001"THENIF POINTS_A1="1001"THENPOINTS_A1:="0000";IF POINTS_A2="1001"THENPOINTS_A2:="0000";ELSEPOINTS_A2:=POINTS_A2+'1';END IF;ELSEPOINTS_A1:=POINTS_A1+'1';AA2<=points_A2;AA1<= points_A1;AA0<="0000"; PP2<=AA2;PP1<=AA1;PP0<=AA0;END IF;ELSIF CHOS="0010"THENIF POINTS_B1="1001"THENPOINTS_B1:="0000";IF POINTS_B2="1001"THENPOINTS_B2:="0000";ELSEPOINTS_B2:=POINTS_B2+'1';END IF;ELSEPOINTS_B1:=POINTS_B1+'1';BB2<= points_B2;BB1<= points_B1;BB0<="0000"; PP2<=BB2;PP1<=BB1;PP0<=BB0;END IF;ELSIF CHOS="0100"THENIF POINTS_C1="1001"THENPOINTS_C1:="0000";IF POINTS_C2="1001"THENPOINTS_C2:="0000";ELSEPOINTS_C2:=POINTS_C2+'1';CC2<= points_C2;CC1<= points_C1;CC0<="0000"; PP2<=CC2;PP1<=CC1;PP0<=CC0;END IF;ELSEPOINTS_C1:=POINTS_C1+'1';END IF;Elsif chos="1000" thenIf points_D1="1001" thenPoints_D1:="0000";If points_D2="1001" thenPoints_D2:="0000";ElsePoints_D2:=points_D2+'1';End if;ElsePoints_D1:=points_D1+'1';DD2<= points_D2;DD1<= points_D1;DD0<="0000"; PP2<=DD2;PP1<=DD1;PP0<=DD0;End if;End if;End if;End process;End architecture art;Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity jsq isPort(clr,ldn,en,clk:in std_logic;TA,Tb:in std_logic;Qa:out std_logic_vector(3 downto 0);Qb:out std_logic_vector(3 downto 0));End entity jsq;Architecture art of jsq isSignal da: std_logic_vector(3 downto 0);Signal db: std_logic_vector(3 downto 0); BeginProcess(ta,tb,clr) isBeginIf clr='1' thenDa<="0000";db<="0000";elseif ta='1' thenda<=da+'1';end if;if tb='1' thendb<=db+'1';end if;end if;end process;process(clk) isvariable tmpa:std_logic_vector(3 downto 0); variable tmpb:std_logic_vector(3 downto 0); beginif clr='1' then tmpa:="0000";tmpa:="0110"; elsif clk'event and clk='1' thenif ldn='1' then tmpa:=da;tmpb:=db;elsif en='1' thenif tmpa="0000" thentmpa:="1001";if tmpb="0000" then tmpb:="0110"; else tmpb:=tmpb-1;end if;else tmpa:=tmpa-1;end if;end if;end if;qa<=tmpa;qb<=tmpb;end process;end architecture art;library ieee;use ieee.std_logic_1164.all;entity qdjb isport(clr:in std_logic;A,B,C,D:in std_logic;A1,B1,C1,D1:out std_logic;states:out std_logic_vector(3 downto 0)); end entity qdjb;architecture art of qdjb isconstant w1:std_logic_vector:="0001";constant w2:std_logic_vector:="0010";constant w3:std_logic_vector:="0100";constant w4:std_logic_vector:="1000";beginprocess(clr,A,B,C,D) isbeginif clr='1' then states<="0000";elsif (A='1' and B='0' and C='0' and D='0') then A1<='1';B1<='0';C1<='0';D1<='0';states<=w1; elsif (A='0' and B='1' and C='0' and D='0') then A1<='0';B1<='1';C1<='0';D1<='0';states<=w2; elsif (A='0' and B='0' and C='1' and D='0') then A1<='0';B1<='0';C1<='1';D1<='0';states<=w3; elsif (A='0' and B='0' and C='0' and D='1') then A1<='0';B1<='0';C1<='0';D1<='1';states<=w4; end if;end process;end architecture art;library ieee;use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity qdq isport(qd :in std_logic_vector(3 downto 0);ck,clk,en,ldn,add,rst,clr:in std_logic;TA,TB:in std_logic;qdo :out std_logic_vector(3 downto 0);sel:out std_logic_vector(5 downto 0);sm:out std_logic_vector(6 downto 0));end;architecture aa of qdq iscomponent qdjb isPORT(CLR: IN STD_LOGIC;A, B, C, D: IN STD_LOGIC;A1,B1,C1,D1: OUT STD_LOGIC;STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END component QDJB;component jsq isPORT(CLR,LDN,EN,CLK: IN STD_LOGIC;TA,TB:IN STD_LOGIC;QA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);QB :OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END component JSQ;component jfq isPORT(RST: IN STD_LOGIC;ADD: IN STD_LOGIC;CHOS: IN STD_LOGIC_VECTOR(3 DOWNTO 0);pp2,pp1,pp0:inOUT STD_LOGIC_VECTOR(3 DOWNTO 0));END component JFQ ;signal tmp1,tmp2,tmp3: std_logic_vector(3 downto 0); signal pp22,pp11,pp00: std_logic_vector(3 downto 0); signal tmp: integer range 0 to 5;signal q_s:std_logic_vector(3 downto 0);beginu1:qdjb port map(clr,qd(0),qd(1),qd(2),qd(3),qdo(0),qdo(1),qdo(2),qdo(3),tmp1);u2: jfq port map (rst,add,tmp1,pp22,pp11,pp00);u3: jsq port map(clr,ldn,en,clk,ta,tb,tmp2,tmp3); process(ck) isbeginif (ck'event and ck='1') thentmp<=tmp+1;end if;end process;process(tmp) isbeginif tmp=0 then q_s<=tmp1;sel<="000001";elsif tmp=1 then q_s<=tmp2;sel<="000010";elsif tmp=2 then q_s<=tmp3;sel<="000100";elsif tmp=3 then q_s<=pp00;sel<="001000";elsif tmp=4 then q_s<=pp11;sel<="010000";else q_s<=pp22;sel<="100000";end if;end process;process(q_s) isbegincase q_s iswhen"0000"=>sm<="0111111";when"0001"=>sm<="0000110";when"0010"=>sm<="1011011";when"0011"=>sm<="1001111";when"0100"=>sm<="1100110";when"0101"=>sm<="1101101";when"0110"=>sm<="1111101";when"0111"=>sm<= "0000111"; when"1000"=>sm<="1111111"; when"1001"=>sm<="1101111";when others=>sm<="0000000";end case;end process;end;。
EDA技术课程设计-四人抢答器设计模板
四人抢答器一、摘要与概述我国科技迅速发展,而电子行业这个新兴产业的发展更是日新月异,在很多行业和竞争场合都要求有公正的快速的裁决,例如体育竞技、证券、股票交易,以及各种智力竞赛等。
在现在社会中,智力竞赛更是作为一种生动活泼的教育形式和方法来引起观众和参与者的极大地兴趣,在各种各样的竞赛中,往往有几组货多组选手参加,这时当主持人针对某个问题提问时,选手们都要经过比大河抢答,对于必答问题,一般都有时间限制,到时会有报警提示;对于抢答部分,先要判断哪组先按键,为了公平,就要求人们能够设计一种电路来充当裁判员,一般抢答电路由很多模块组成,本课程设计介绍了一种实用的设计方法来实现四人抢答器,具有很强的实用性与可行性。
本抢答器的主体中主要包括以下几个模块,即:抢答模块、分频模块、计时模块、选择模块、报警模块。
抢答器具有数据锁存和显示功能。
抢答开始后,4个选手按动抢答按钮,编号立即锁存,数码管上立即显示数字,同时扬声器给出生音提示;抢答器具有定时抢答功能,而且每次强大时间有限制,当主持人按下开始键时,定时器立即倒计时,参赛选手在限定的时间里进行抢答,若在倒计时结束后仍未有选手进行抢答,则开始报警,本次抢答无效。
整个抢答器中,最最关键的一部就是如何实现抢答封锁,在控制键按下时同时计数器开始倒计时显示有效剩余时间,设为20s。
在这以外,这个抢答器还必须包含一个使能信号,外加一个归零信号,这样做是为了方便实现共平抢答和及时停止。
这个抢答器有4个输出结果显示,,选手代号,计数器的个位和十位等。
他们的输出结果要用BCD码表示出来,这样是为了便于显示译码连接,便于主持人直接读出结果。
当主持人按下控制键、选手按下抢答键或者倒计时结束时报警声会暂时响起(报警声暂时设为3秒)。
除此之外,该电路还应有清0功能。
二、方案阐述论证在概述中,将该电路分为了5个模块,然后编写顶层文件,在本部分中,我们将详细叙述该方案的各个部分功能及其实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四位智能竞赛抢答器第一章系统设计第一节课题目标《硬件描述语言》是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。
不论理论学习还是实际应用,都离不开实验课教学。
如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节的局面。
《HDL 项目设计》的目的就是让我们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使我们不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础。
通过这次设计实验,首先,使我们更加深入的巩固了书本上的知识,在掌握理论基本知识的基础上,学会了对常用软件的使用。
其次,通过这次设计实验,使我们了解并熟悉了程序的设计方法和步骤,而且在与同学讨论的同时也提高了团结合作的能力。
然后,学会用仿真实验来验证方案的正确性,培养我们综合运用知识和独立开展实验创新的能力。
最后,规范化训练我们撰写技术研究报告,提高书面表达能力。
第二节设计要求本设计是一个功能较为简单的四路抢答器,基本要求有以下几点:(1)实现一四人抢答器,有人抢答成功后,其他人再抢答无效;(2)主持人通过按键清除抢答信息,并开始30秒的答题倒计时,当倒计时结束时,通过蜂鸣器响来提示回答问题时间到,此时可以开始新一轮的抢答。
第三节设计方案设计是以Verilog HDL语言为基础设计的电子抢答器,在设计过程中先将系统模块化,然后逐步实现,根据设计功能要求,该设计主要包括按键抢答输入,数码管显示,报警电路及FPGA系统。
抢答器结构原理图如图1:图1 抢答器结构原理图第二章系统分析与实现第一节系统分析该系统可实现要求中的最基本功能,除此之外还可以实现抢答时间限制的功能,其中,抢答成功者组号由静态显示的方法使用,使四个数码管同时显示其组号,同时,该抢答者对应的led灯亮。
若还有其他抢答者在其后按下按键,抢答无效,只取第一个抢答者信息。
第二节程序及程序功能介绍一、端口定义部分modulemain(reset,clock,din1,din2,din3,din4,judge,beep,wei,duan,beep,wei1,dua n1);input reset,clock;input din1,din2,din3,din4,judge;output[3:0] wei;output[7:0] duan;output beep;output[3:0] wei1;output[7:0] duan1;wire clk1k;wire clk1hz;fenpin uut1(reset,clock,clk1k,clk1hz);qiangde uut2(clock,din1,din2,din3,din4,judge,clk1hz,wei,duan); daojishi uut3(reset,clk1k,clk1hz,beep,wei1,duan1);Endmodule二、抢答部分本段程序实现基本的抢答功能,block为锁存信号,当有一组按下抢答按钮后,系统锁存,其他组别抢答无效;同时通过f1向蜂鸣器发出信号,蜂鸣器1s表示抢答成功;于此同时信号out输送给led 灯,抢答成功者对应led灯亮;seg_figure4为静态显示抢答成功的组号,预置数为”_”;一组抢答成功后若其他组再抢答,数码管熄灭示警。
module qiangde(clock,din1,din2,din3,din4,judge,clk1_hz,wei,duan); input clock,judge;input din1,din2,din3,din4;input clk1_hz;output[3:0] wei;output[7:0] duan;reg[3:0] wei;reg[7:0] duan;reg block;always@(posedge clock)beginif(!judge)beginblock=0;wei=4'b1111;duan=8'hff;endelsebeginif(!din1)beginif(!block)beginwei<=4'b1101;duan<=8'hf9;block=1;endendelse if(!din2)beginif(!block)beginwei<=4'b1101;duan<=8'ha4;block=1;endendelse if(!din3)beginif(!block)beginwei<=4'b1101;duan<=8'hb0;block=1;endendelse if(!din4)beginif(!block)beginwei<=4'b1101;duan<=8'h99;block=1;endendendendendmodule三、分频module fenpin(reset,clock,clk1k,clk1hz); input reset,clock;output clk1k,clk1hz;reg clk1k;reg clk1hz;reg[24:0] count1;reg[14:0] count2;always@(posedge clock or posedge reset) beginif(reset)count1<=0;else if(count1==25'd2*******)beginclk1hz<=~clk1hz;count1<=0;endelsecount1<=count1+1;endalways@(posedge clock or posedge reset)beginif(reset)count2<=0;else if(count2==15'd25000)beginclk1k<=~clk1k;count2<=0;endelsecount2<=count2+1;endendmodule四、抢答时限30s,倒计时到,蜂鸣器响该部分功能:当抢答倒计时30s结束时,若没有任何一组抢答成功,则向蜂鸣器发出信号,蜂鸣器响作为警报,提示此次抢答结束且该题作废。
module daojishi(reset,clk1_k,clk1_hz,beep,wei1,duan1);input reset,clk1_k,clk1_hz;output [3:0] wei1;output beep;output [7:0] duan1;reg [5:0] shi,ge;reg [5:0] data;reg [4:0] count;reg [3:0] wei1;reg [7:0] duan1;reg beep;reg state;always@(posedge clk1_hz or posedge reset) beginif(reset)count<=0;else if(count>=5'd30)count<=count;elsecount<=count+1;endalways@(count)beginif(count>=5'b10101)//21~30beginshi<=5'b00000;ge<=5'b11110-count;endelse if(count>=5'b01011) //11~20 beginshi<=5'b00001;ge<=5'b10100-count;endelse if(count>=5'b00001) //1~10 beginshi<=5'b00010;ge<=5'b01010-count;endelse //0beginshi<=5'b00011;ge<=5'b00000;endif(shi==0 && ge==0)beginbeep<=0;endelse beep<=1;endalways@(posedge clk1_k)beginif(reset)wei1<=4'b0000;else if(state==1'b1)state<=1'b0;elsestate<=state+1'b1;case(state)1'b0:begin wei1<=4'b0111;data<=ge;end 1'b1:begin wei1<=4'b1011;data<=shi;end default:wei1<=4'b0000;endcaseendalways @(data)begincase(data)6'b000000: duan1=8'b1100_0000;6'b000001: duan1=8'b1111_1001;6'b000010: duan1=8'b1010_0100;6'b000011: duan1=8'b1011_0000;6'b000100: duan1=8'b1001_1001;6'b000101: duan1=8'b1001_0010;6'b000110: duan1=8'b1000_0010;6'b000111: duan1=8'b1111_1000;6'b001000: duan1=8'b1000_0000;6'b001001: duan1=8'b1001_0000;default:duan1=8'b1111_1111;endcaseendendmodule第三章编译调试第一节 Quartus II的使用(1)双击Quartus II软件快捷图标进入Quartus II集成开发环境,新建工程项目文件traffic.pof,并在该项目下新建Verilog源程序文件traffic.v,输入上面的程序代码并保存。
(2)然后为该工程项目选择一个目标器件并对相应的管脚进行锁定。
(3)对该工程文件进行编译处理,若在编译过程中发现错误,找出并更正错误直至成功为止。
(4)将CCIT CPLD/FGPA JTAG下载电缆的两端分别接到PC机和CCIT CPLD/FGPA实验仪上,再打开工作电源,执行下载命令把程序下载到CCIT CPLD/FGPA实验仪的EPM1270T144C5N器件中,通过K1~K4抢答按键按下后,由裁判员根答题情况,通过控制按键操作,这样就可以看到数码管上的组别和LED四盏小灯的变化。