EDA课设 多路抢答器
- 格式:doc
- 大小:322.50 KB
- 文档页数:23
EDA智能四路抢答器设计(框图+vhdl源程序+仿真图)-课程设计EDA智能四路抢答器设计(框图+vhdl源程序+仿真图) 设计目的 1. 进一步了解VHDL语言功能;2. 了解EDA在高频工作下的优势;3. 学习资料的收集与整理,学会撰写课程设计报告。
实验环境 1 微型电子计算机(PC);2. 安装Windows 2000以上操作系统,Maxplus软件等开发工具。
3. EDA综合实验仪,连线若干。
任务要求 1. 按照课题设计任务和要求,对设计系统进行验证调试或仿真;观察程序运行和仿真结果,判断其正确性。
2. 利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;3. 在第15周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作;4. 结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确。
工作进度计划序号起止日期工作内容1 2009.12.14~2009.12.14 在预设计的基础上,进一步查阅资料,完善设计方案.2 2009.12.15~2009.12.16 设计总体方案,编写代码,上机调试,实验仿真验证。
3 2009.12.17~2009.12.17 测试程序,完善功能,撰写设计报告。
42009.12.18 参加答辩,根据教师反馈意见,修改、完善设计报告。
摘要抢答器作为一种工具,已经广泛应用于各种智力和知识竞赛场合。
但是抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低,减少兴致。
作为一个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使抢答器损坏,再购置一台新的就会影响活动的开展,因此设计了本抢答器。
本设计是以四路抢答为基本概念。
从实际应用出发,利用电子设计自动化( EDA)技术,用可编程逻辑器件设计具有扩充功能的抢答器。
它以VHDL硬件描述语言作为平台,结合动手实验而完成的。
它的特点是电路简单、制作方便、操作简单、方便、性能可靠,实用于多种智力竞赛活动。
燕山大学EDA课程设计报告一、设计题目:智力竞赛抢答器二、设计要求:1 .五人参赛每人一个按钮,主持人一个按钮,按下就开始;2 .每人一个发光二极管,抢中者灯亮;3 .有人抢答时,喇叭响两秒钟;4 .答题时限为10秒钟,从有人抢答开始,用数码管倒计时间,0,9,8…1,0;倒计时到0的时候,喇叭发出两秒声响。
三、设计内容:1.设计方案:主持人控制总开关,主持人置高电平后,系统进入准备工作。
有人抢答时,相应的二极管发光,同时数码管开始倒计时,且喇叭响两秒钟。
当倒计时再次到0的时候,喇叭再响2秒钟。
我设计的方案由五个高低电平控制相应的发光二极管,第六个用于主持人复位。
由二极管控制数码管和其中一个喇叭响,再由数码管控制另一喇叭响。
因此把整个课题分成四个模块:抢答器、倒计时器、计时器、秒脉冲生成器。
2.模块一:抢答器I6为置零端,主持人控制,i1-i5由每位选手控制。
o1-o5为发光二极管,主持人置低电平后,o1-o5都被置零。
当主持人置为高电平时,抢答开始,成功者对应的二极管发光,通过与门将cp信号封锁,并输入到DFF中,则其他选手在按键时,输出不会有影响,则实现了一人抢答后,其他人不能再做答。
若重新开始则主持人再按i6清零即可。
此模块的仿真波形如下:仿真说明:当i6为1时,即主持人按键以后,i5最先抢答成功,显示o5是1,使其对应的二极管发光,然后主持人清零,o5变成零,可以再次抢答。
模块二:十秒倒计时器此十秒钟倒计时器是由74168组成的十进制减法计数器,它只保留预制置数端,CP信号端,计数输出端,其余的都置为0。
Ldn是置零端,当它等于1的时候,74168有效,倒计时开始。
当输出0、9、--1时,D 触发器输出结果总是1,不影响CP信号。
当输出从1到0时,D触发器到上升沿,输出结果为1,则CP信号被封锁。
此时倒计时器保持在0不变。
若要重新开始,则把Ldn置0即可。
此模块的仿真波形如下:由图可见,Ldn为1的时候开始倒计时,输出结果0,9,8…0。
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”,此时按键是无效的。
课程设计课题数字式竞赛抢答器学院电气与信息工程学院摘要当今的社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,那么也就必然离不开抢答器。
而现在的抢答器有着数字化,智能化的方向发展,这就必然提高了抢答器的成本。
鉴于现在小规模的知识竞赛越来越多,操作简单,经济实用的小型抢答器必将大有市场。
本课程设计设计的八路数字式抢答器由抢答鉴别模块、抢答计时模块、计分模块、译码显示模块组成。
基于FPGA,经过程序设计、调试、仿真、下载和软硬件联合调试等工作,实现了抢答功能.本方案具有的优点是:随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLD/FPGA的出现,给设计人员带来了诸多方便。
利用它进行产品开发,不仅修改方便、开发周期短、仿真方便、可靠性高,而且具有完全的知识产权。
不足之处是:成本比基于基本IC器件开发的多路智力抢答器高,要有较高的软件开发平台,并要求初学者能熟练掌握开发平台的使用.一、我的设计实现的功能:基本功能:1.八路智力抢答器,同时供8个选手参赛,编号分别为1到8。
每位选手用一个答题按钮和LED灯,选手按下时其灯亮。
2.给主持人一个控制开关,实现系统的清零和抢答的开始。
3.具有数据锁存和显示功能.抢答开始后,如果有选手按下了抢答按钮,其编号立即锁存并显示在LCD液晶显示屏上.此外,禁止其他选手再次抢答。
选手的编号一直保存直到主持人清除。
扩展功能:1.具有提前抢答的鉴别功能,在主持人抢答使能键没按下之前的抢答会被判无效并且蜂鸣器响。
2.具有定时抢答功能,可由主持人设定抢答时间.当抢答开始后。
定时其开始倒计时,并显示在LCD上。
3.具有计分功能,初始每位选手100分,以后按选手答题情况可以加分和减分,并将每位选手的得分在LCD上显示。
二、设计原理框图:八路智能抢答器系统可分为三个大的功能模块,抢答鉴别模块,计时模块和译码显示模块。
它们之间的控制关系如图1所示:图1 抢答器基本原理当主持人设置答题时间后,启动开始抢答按键时,抢答鉴别模块进入工作状态,选手可以进行抢答,有选手抢答,则抢答鉴别模块锁存该选手的号码,其他选手抢答无效,同时,译码显示选手编号,当定时器时间减少到0秒时,表示抢答时间到,选手抢答无效。
EDA课程设计报告——四路抢答器一方案设计将该任务分成七个模块进行设计,分别为:抢答器鉴别模块、抢答器计时模块、抢答器记分模块、分频模块、译码模块、数选模块、报警模块,最后是顶层文件。
1.抢答器鉴别模块:在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。
其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。
2.抢答器计时模块:在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。
其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。
3.数据选择模块:在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。
4.报警模块:在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q;计数脉冲clk2。
5.译码模块:在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。
6.分频模块:在这个模块中主要实现抢答过程中实现输出双脉冲的功能。
7.顶层文件:在这个模块中是对前七个模块的综合编写的顶层文件。
二单元电路设计(一)抢答模块1.VHDL源程序LIBRARY IEEE;--抢答鉴别模块USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY qdjb ISPORT(rst,clk2:IN STD_LOGIC;s0,s1,s2,s3:IN STD_LOGIC;states:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);tmp:OUT STD_LOGIC);END qdjb;ARCHITECTURE ONE OF qdjb ISSIGNAL ST:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINP1:PROCESS(S0,RST,S1,S2,S3,CLK2)BEGINIF RST='0' THENTMP<='0';ST<="0000";ELSIF CLK2'EVENT AND CLK2='1' THENIF (S0='1' OR ST(0)='1')AND NOT( ST(1)='1' OR ST(2)='1' OR ST(3)='1' ) THEN ST(0)<='1';END IF ;IF (S1='1' OR ST(1)='1')AND NOT( ST(0)='1' OR ST(2)='1' OR ST(3)='1' ) THEN ST(1)<='1';END IF ;IF (S2='1' OR ST(2)='1')AND NOT( ST(0)='1' OR ST(1)='1' OR ST(3)='1' ) THEN ST(2)<='1';END IF ;IF (S3='1' OR ST(3)='1')AND NOT( ST(0)='1' OR ST(1)='1' OR ST(2)='1' ) THEN ST(3)<='1';END IF ;TMP<=S0 OR S1 OR S2 OR S3;END IF ;END PROCESS P1;P2:PROCESS(STATES(0),STATES(1),STATES(2),STATES(3))BEGINIF (ST="0000") THEN STATES<="0000";ELSIF (ST<="0001") THEN STATES<="0001";ELSIF (ST<="0010") THEN STATES<="0010";ELSIF (ST<="0100") THEN STATES<="0011";ELSIF (ST<="1000") THEN STATES<="0100";END IF;END PROCESS P2;END ONE;2.仿真图:3.抢答鉴别模块符号图在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。
EDA智能四路抢答器设计(框图+vhdl源程序+仿真图)-课程设计EDA智能四路抢答器设计(框图+vhdl源程序+仿真图) 设计目的 1. 进一步了解VHDL语言功能;2. 了解EDA在高频工作下的优势;3. 学习资料的收集与整理,学会撰写课程设计报告。
实验环境 1 微型电子计算机(PC);2. 安装Windows 2000以上操作系统,Maxplus软件等开发工具。
3. EDA综合实验仪,连线若干。
任务要求 1. 按照课题设计任务和要求,对设计系统进行验证调试或仿真;观察程序运行和仿真结果,判断其正确性。
2. 利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;3. 在第15周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作;4. 结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确。
工作进度计划序号起止日期工作内容1 2009.12.14~2009.12.14 在预设计的基础上,进一步查阅资料,完善设计方案.2 2009.12.15~2009.12.16 设计总体方案,编写代码,上机调试,实验仿真验证。
3 2009.12.17~2009.12.17 测试程序,完善功能,撰写设计报告。
42009.12.18 参加答辩,根据教师反馈意见,修改、完善设计报告。
摘要抢答器作为一种工具,已经广泛应用于各种智力和知识竞赛场合。
但是抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低,减少兴致。
作为一个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使抢答器损坏,再购置一台新的就会影响活动的开展,因此设计了本抢答器。
本设计是以四路抢答为基本概念。
从实际应用出发,利用电子设计自动化( EDA)技术,用可编程逻辑器件设计具有扩充功能的抢答器。
它以VHDL硬件描述语言作为平台,结合动手实验而完成的。
它的特点是电路简单、制作方便、操作简单、方便、性能可靠,实用于多种智力竞赛活动。
目录目录 0一、方案设计与论证 (2)二、单元电路设计 (4)(一)抢答鉴别模块 (4)(二)计时模块 (7)(三)数据选择模块 (9)(四)报警模块 (11)(五)译码模块 (13)(六)分频模块 (14)(七)顶层文件 (16)(八)主电路连线图 (19)(九)将程序下载到芯片FLEX—EPF10LC84-4上,引脚图如下 (19)三、器件编程与下载 (20)四、性能测试与分析 (20)五、实验设备 (20)六、心得体会 (21)七、参考文献 (21)程序设计流程图一、方案设计与论证将该任务分成七个模块进行设计,分别为:抢答器鉴别模块、抢答器计时模块、抢答器记分模块、分频模块、译码模块、数选模块、报警模块,最后是撰写顶层文件.1、抢答器鉴别模块:在这个模块中主要实现抢答过程中地抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者地台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁地功能.其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp.2、抢答器计时模块:在这个模块中主要实现抢答过程中地计时功能,在有抢答开始后进行30秒地倒计时,并且在30秒倒计时后无人抢答显示超时并报警.其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta.3、数据选择模块:在这个模块中主要实现抢答过程中地数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示.4、报警模块:在这个模块中主要实现抢答过程中地报警功能,当主持人按下控制键,有限时间内人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q;计数脉冲clk2.5、译码模块:在这个模块中主要实现抢答过程中将BCD码转换成7段地功能.6、分频模块:在这个模块中主要实现抢答过程中实现输出双脉冲地功能.7、顶层文件:在这个模块中是对前七个模块地综合编写地顶层文件.抢答器地设计分析按照要求,我们可以将整个系统分为四个主要模块:抢答鉴别模块;抢答计时模块;抢答计分模块;译码显示模块.对于需显示地信息,需要增加或外接译码器,进行显示译码.考虑到实验开发平台提供地输出显示资源地限制,我们将组别显示和计时显示地译码器内设,而将各组地计分显示地译码器外接.整个系统地大致组成框图如图2.1所示.LED ALED BLED CLED D图 2.12 电子抢答器地结构原理2.1 电子抢答器地整体结构电子抢答器地整体结构如图1所示.它包括鉴别与锁存模块、定时与犯规设置模块以及计分模块.二、单元电路设计(一)抢答鉴别模块1、VHDL源程序library ieee。
数字式竞赛抢答器设计要求1、设计一个可容纳4组参赛的数字式抢答器,每组设一个按钮,供抢答使用.2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
3、设置一个主持人“复位”按钮。
4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别,扬声器发出 2~3 秒的音响。
5、设置一个计分电路,每组开始预置 100 分,由主持人记分,答对一次加 10 分,答错一次减 10 分。
1、总体方案设计原理及分析1.1、方案原理按照设计要求,设计一个4组参赛的抢答器,所以这种抢答器要求有四路不同组别的抢答输入信号,并能识别最先抢答的信号,直观地通过数码显示和蜂鸣报警等方式提示主持人并显示出组别;同时该系统还应有复位功能。
主持人按下系统复位键(RST),系统进入抢答状态,计分模块输出初始信号给数码显示模块并显示出初始值。
当某参赛组抢先将抢答键按下时,系统将其余三路抢答信号封锁,同时扬声器发出2-3秒的声音提示,组别显示模块送出信号给数码显示模块,从而显示出该抢答成功组台号,并一直保持到下一轮主持人将系统清零为止。
主持人对抢答结果进行确认,随后,计时模块送出倒计时计数允许信号,开始回答问题,计时显示器则从初始值开始以计时,在规定的时间内根据答题的正误来确定加分或减分,并通过数码显示模块将成绩显示出来。
计时至0时,停止计时,扬声器发出超时报警信号,以中止未回答完问题。
当主持人给出倒计时停止信号时,扬声器停止鸣叫.若参赛者在规定时间内回答完为题,主持人可给出倒计时计数停止信号,以免扬声器鸣叫。
主持人按下复位键,即RST 为高电平有效状态,清除前一次的抢答组别,又可开始新的一轮的抢答。
此抢答器的设计中采用自顶向下的设计思路,运用VHDL 硬件描述语言对各个模块进行层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起来。
1。
2、方案设计框图主电路 扩展功能电路图1 方案系统结构图1.3、方案各路功能分析此方案是由主体电路和扩展电路两部分构成,整个系统包括这样几个主要模块:抢答鉴别模块、抢答计时模块、抢答计分模块、译码显示模块、报警模块。
EDA技术课程设计报告题目智力竞赛抢答器设计学院电子信息工程学院专业学生姓名学号年级级指导教师职称二〇一一年十二月智力竞赛抢答器摘要:本课程设计分为智力竞赛抢答器的分模块设计和智力竞赛抢答器的原理图设计两个层次的设计。
在本次设计中,模块设计分为锁存器设计,编码器设计,译码器设计;系统开发平台为MAX plus Ⅱ;硬件描述语是VHDL。
竞赛者可以分为八组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。
当第一个人按下按键后,则在显示器上显示该组的号码,同时电路将其他各组按键封锁,使其不起作用。
回答完问题后,由主持人将所有按键恢复,重新开始下一轮抢答。
关键词:锁存;显示;抢答器;目录第1章引言 (1)1.1 EDA的概述 (1)1.2 MAX+plus II的概述 (1)1.3 VHDL的概述 (2)1.4 智力竞赛抢答器的概述 (2)1.4.1 课程设计题目 (2)1.4.3 课程设计的思想 (2)1.4.4 软硬件运行环境及开发工具 (3)第2章设计流程 (4)2.1设计模块方框图 (4)2.2 模块功能分析 (4)2.2.1 抢答输入开关电路 (4)2.2.2 锁存器 (4)2.2.4 译码器 (4)2.2.5 解锁器 (4)2.2.6数码显示器与喇叭 (5)2.2.7图1.1与图2.1比较 (5)第3章软硬件设计 (6)3.1系统方框图 (6)3.2模块分析 (6)3.2.1锁存器模块和仿真波形 (6)3.2.2编码器模块和仿真波形 (9)3.2.3译码器模块和仿真波形 (10)3.2.4完整模块和仿真波形 (12)3.3硬件调试与操作说明 (13)3.3.1引脚锁定 (13)3.3.2调试与故障处理 (14)第4章课程设计总结与体会 (15)参考文献 (16)附录共阴极7段数码管 (17)第1章引言1.1 EDA的概述20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
目录目录 0一、方案设计与论证 (2)二、单元电路设计 (4)(一)抢答鉴别模块 (4)(二)计时模块 (7)(三)数据选择模块 (9)(四)报警模块 (11)(五)译码模块 (13)(六)分频模块 (14)(七)顶层文件 (16)(八)主电路连线图 (19)(九)将程序下载到芯片FLEX—EPF10LC84-4上,引脚图如下 (19)三、器件编程与下载 (20)四、性能测试与分析 (20)五、实验设备 (20)六、心得体会 (21)七、参考文献 (21)程序设计流程图一、方案设计与论证将该任务分成七个模块进行设计,分别为:抢答器鉴别模块、抢答器计时模块、抢答器记分模块、分频模块、译码模块、数选模块、报警模块,最后是撰写顶层文件。
1、抢答器鉴别模块:在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。
其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。
2、抢答器计时模块:在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。
其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。
3、数据选择模块:在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。
4、报警模块:在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q;计数脉冲clk2。
5、译码模块:在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。
6、分频模块:在这个模块中主要实现抢答过程中实现输出双脉冲的功能。
7、顶层文件:在这个模块中是对前七个模块的综合编写的顶层文件。
抢答器的设计分析按照要求,我们可以将整个系统分为四个主要模块:抢答鉴别模块;抢答计时模块;抢答计分模块;译码显示模块。
对于需显示的信息,需要增加或外接译码器,进行显示译码。
考虑到实验开发平台提供的输出显示资源的限制,我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。
整个系统的大致组成框图如图2.1所示。
LED ALED BLED CLED D图2.12 电子抢答器的结构原理2.1 电子抢答器的整体结构电子抢答器的整体结构如图1所示。
它包括鉴别与锁存模块、定时与犯规设置模块以及计分模块。
二、单元电路设计(一)抢答鉴别模块1、VHDL源程序library ieee;--抢答鉴别模块use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qdjb isport(rst,clk2:in std_logic;s0,s1,s2,s3:in std_logic;states:buffer std_logic_vector(3 downto 0);tmp:out std_logic);end qdjb;architecture one of qdjb issignal st:std_logic_vector(3 downto 0);beginp1:process(s0,rst,s1,s2,s3,clk2)beginif rst='0' thentmp<='0';st<="0000";elsif clk2'event and clk2='1' thenif (s0='1' or st(0)='1')and not( st(1)='1' or st(2)='1' or st(3)='1' ) then st(0)<='1';end if ;if (s1='1' or st(1)='1')and not( st(0)='1' or st(2)='1' or st(3)='1' ) then st(1)<='1';end if ;if (s2='1' or st(2)='1')and not( st(0)='1' or st(1)='1' or st(3)='1' ) then st(2)<='1';end if ;if (s3='1' or st(3)='1')and not( st(0)='1' or st(1)='1' or st(2)='1' ) then st(3)<='1';end if ;tmp<=s0 or s1 or s2 or s3;end if ;end process p1;p2:process(states(0),states(1),states(2),states(3))beginif (st="0000") then states<="0000";elsif (st<="0001") then states<="0001";elsif (st<="0010") then states<="0010";elsif (st<="0100") then states<="0011";elsif (st<="1000") then states<="0100";end if;end process p2;end one;2、仿真图:抢答鉴别模块图在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。
其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。
(二)计时模块1、VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity js isport(clk,rst,s,stop:in std_logic;warn:out std_logic;ta,tb:buffer std_logic_vector(3 downto 0));end js;architecture one of js issignal co:std_logic;beginp1:process(clk,rst,s,stop,ta)beginif rst='0' or stop='1' thenta<="0000";elsif clk'event and clk='1' thenco<='0';if s='1' thenif ta="0000" thenta<="1001";co<='1';else ta<=ta-1;end if;end if;end if;end process p1;p2:process(co,rst,s,stop,tb)beginif rst='0' or stop='1' thentb<="0010";elsif co'event and co='1' thenif s='1' thenif tb="0000" then tb<="0011";else tb<=tb-1;end if;end if;end if;end process p2;end one;2、仿真图计时模块图在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。
其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。
(三)数据选择模块1、VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sjxz isport (a,b,c: in std_logic_vector(3 downto 0);clk2,rst: in std_logic;s: out std_logic_vector(1 downto 0);y: out std_logic_vector(3 downto 0) ); end sjxz;architecture body_chooser of sjxz issignal count: std_logic_vector (1 downto 0);begins<=count;process(clk2,rst)beginif(rst='0')then count<="00";elsif(clk2'event and clk2='1')thenif(count>="10")thencount<="00";else count<=count+1;end if;end if;case count iswhen "00"=>y<=a;when "01"=>y<=b;when "10"=>y<=c;when others=>null;end case;end PROCESS;end body_chooser;2、仿真图数据选择模块图在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。