EDA课程设计四路智能抢答器
EDA课设 四路抢答器武汉理工

目录摘要.................................................................................................................... 错误!未定义书签。
1.课程设计目的 (3)2.系统功能及要求 (3)3.系统设计思路 (3)4.各模块芯片展示及说明 (4)4.1抢答模块 (4)4.2计分模块 (5)4.3计时模块 (5)4.4译码模块 (6)5.各模块程序及波形图 (6)5.1抢答器 (6)5.2计分模块 (8)5.3计时模块 (13)5.4译码模块 (14)6.总电路图及仿真波形图 (16)7. 总结与体会 (17)参考文献 (19)摘要EDA及电子设计自动化,是指使用计算机自动完成电子系统的设计,应用EDA技术进行电子产品的设计已成为当今电子工程师的一项基本技。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
VHDL语言:超高速集成电路硬件描述语言,是IEEE的一项标准设计语言。
它源于美国国防部提出的超高速集成电路计划,是ASIC设计和PLD设计的一种主要输入工具。
本次课程设计的目的是在学习完EDA课程的基础上,运用EDA的知识即VHDL语言,编写程序来实现此次我设计的电子抢答器所要实现的功能,不仅会编写程序,还要能够在实验室中检测我所编写的程序是否能够达到预期的目的。
关键词:EDA技术;VHDL语言;多路抢答器;功能模块基于EDA的多功能音乐抢答器1.课程设计目的(1)通过课程设计使学生能熟练掌握一种EDA软件的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程,为以后进行工程实际问题的研究打下设计基础。
(2)通过课程设计使学生能利用EDA软件进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或VHDL硬件描述语言输入法。
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智能四路抢答器设计(框图+vhdl源程序+仿真图)-课程设计

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技术大作业(一)——4路抢答器的设计

EDA技术大作业(一)4路抢答器的设计1.设计要求利用基本逻辑门电路、组合逻辑电路和触发器,设计一个四人抢答器。
要求:1)四个参加者编号为A、B、C和D,对应组号为1~4,每个参加者控制一个按键,用其发出抢答信号。
2)主持人有一个控制按键,用于将系统清零,即数码显示管灯灭,并控制抢答开始。
3)参加者按抢答按钮,蜂鸣器响铃,对应的指示灯亮,同时数码管上显示最先抢答者的组号。
4)电路具有互锁功能,有人优先抢答后系统能自动关闭其他路的输入信号。
2.设计报告要求1)给出设计方案,画出设计电路框图,并对各个功能模块进行简单的描述。
2)在multiSIM 2001下绘制仿真电路图,并进行仿真验证。
提示:采用CMOS器件设计抢答器(也可以采用74LSXXX系列芯片)数码显示抢答器采用CMOS电路制作,由触发器、编译码电路、数码管、LED指示灯和蜂鸣器等组成,数码管用于显示抢答者的组号,电路框图如下图所示。
(1)数码显示抢答器框图(2)参考电路(仅供参考,请自己设计)这里采用CMOS器件4511、4013、4069、4072设计4路抢答器,图中J1~J4为抢答按钮,J5为复位按钮,4013为D触发器,4069为反相器,4072为4输入或门,4511为4线-七段锁存/译码/驱动器。
(3)仿真分析依次按下A、B、C、D键观察数码管显示状态和蜂鸣器的输出状态。
按下复位键R,观察数码管显示状态和蜂鸣器的输出状态。
南京航空航天大学金城学院本科生实验报告课程名称:EDA技术设计题名:4路抢答器的设计学生姓名:XXX班级学号:XXXXX2010年X月X日一、实验题目和要求二、设计框图三、设计电路图要求对电路图进行简单的功能描述四、仿真结果和分析五、对本课程的几点建议附:个人联系方式手机:E-mail:。
四路抢答器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课程设计报告——四路抢答器一方案设计将该任务分成七个模块进行设计,分别为:抢答器鉴别模块、抢答器计时模块、抢答器记分模块、分频模块、译码模块、数选模块、报警模块,最后是顶层文件。
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源程序+仿真图)-课程设计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课程设计四路智能抢答器

一、课题简介在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等各种手段批示出第一抢答者。
同时,还可以设置计分、犯规及奖惩记录等各种功能。
本设计的具体要求是:设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。
(2) 电路具有第一抢答信号的鉴别和锁存功能。
(3)系统具有计时功能(4)系统具有计分电路。
二、课题背景数字电路产品在生活中有着极其广泛的应用,包括计算机、数字通信、智能仪器仪表、自动控制及航天等领域中。
这些给人们生活,工作等方面带来了极大的方便。
数字电路设备实现简单,速度和可靠性好。
智力竞赛是一种能锻炼人的头脑开发人的IQ的一种大众化游戏,也起到娱乐的作用。
现在智力竞赛越来越被多数人喜爱和娱乐,而且国内外各地电视台、工厂、学校等单位也会常常举办类似的智力竞赛活动,然而智力竞赛抢答器是必要设备。
在有些地方举行的各种智力竞赛游戏中我们经常看到有抢答的环节,举办方大多数采用让选手通过举答题板的方法或者是举手的方式判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。
所以,我们就需要一种具备自动锁存,置位,清零等功能智能抢答器来解决这些问题。
三、课题在国内外的研究现状抢答器一般分为电子抢答器和电脑抢答器。
电子抢答器的中心构造一般都是由抢答器由数字电子集成电路组成,其搭配的配件不同又分为,非语音非记分抢答器和语音记分抢答器。
非语音记分抢答器构造很简单,就是一个抢答器的主机和一个抢答按钮组成,在抢答过程中选手是没有记分的显示屏。
语音记分抢答器是由一个抢答器的主机、主机的显示屏以及选手的记分显示屏等构成,具有记分等功能。
电子抢答器多适用于学校和企事业单位举行的简单的抢答活动。
电脑抢答器又分为无线电脑抢答器和有线电脑抢答器。
无线电脑抢答器的构成是由:主机和抢答器专用的软件和无线按钮。
无线电脑抢答器利用电脑和投影仪,可以把抢答气氛活跃起来,一般多使用于电台等大型的活动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课题简介在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等各种手段批示出第一抢答者。
同时,还可以设置计分、犯规及奖惩记录等各种功能。
本设计的具体要求是:设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。
(2) 电路具有第一抢答信号的鉴别和锁存功能。
(3)系统具有计时功能(4)系统具有计分电路。
二、课题背景数字电路产品在生活中有着极其广泛的应用,包括计算机、数字通信、智能仪器仪表、自动控制及航天等领域中。
这些给人们生活,工作等方面带来了极大的方便。
数字电路设备实现简单,速度和可靠性好。
智力竞赛是一种能锻炼人的头脑开发人的IQ的一种大众化游戏,也起到娱乐的作用。
现在智力竞赛越来越被多数人喜爱和娱乐,而且国内外各地电视台、工厂、学校等单位也会常常举办类似的智力竞赛活动,然而智力竞赛抢答器是必要设备。
在有些地方举行的各种智力竞赛游戏中我们经常看到有抢答的环节,举办方大多数采用让选手通过举答题板的方法或者是举手的方式判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。
所以,我们就需要一种具备自动锁存,置位,清零等功能智能抢答器来解决这些问题。
三、课题在国内外的研究现状抢答器一般分为电子抢答器和电脑抢答器。
电子抢答器的中心构造一般都是由抢答器由数字电子集成电路组成,其搭配的配件不同又分为,非语音非记分抢答器和语音记分抢答器。
非语音记分抢答器构造很简单,就是一个抢答器的主机和一个抢答按钮组成,在抢答过程中选手是没有记分的显示屏。
语音记分抢答器是由一个抢答器的主机、主机的显示屏以及选手的记分显示屏等构成,具有记分等功能。
电子抢答器多适用于学校和企事业单位举行的简单的抢答活动。
电脑抢答器又分为无线电脑抢答器和有线电脑抢答器。
无线电脑抢答器的构成是由:主机和抢答器专用的软件和无线按钮。
无线电脑抢答器利用电脑和投影仪,可以把抢答气氛活跃起来,一般多使用于电台等大型的活动。
有线电脑抢答器也是由主机和电脑配合起来,电脑再和投影仪配合起来,利用专门研发的配套的抢答器软件,可以十分完美的表现抢答的气氛。
抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器有的电路较复杂不便于制作,可靠性低,实现起来很困难;有的则用一些专用的集成块 ,而专用集成块的购买又很困难。
四、课题设计意义在这个竞争激烈的社会中,知识竞赛,评选优胜,选拔人才之类的活动俞动愈加频繁。
在竞赛中,都是多个选手一起参加,如果采用举手回答问题的这个方式来进行竞赛已不适应社会的需要。
并且在主持人提出问题时候,如果让选手用举手的方式来抢答,这在某种程度上会因主持人的主观误断造成比赛的不公平性。
而在当今社会里,比赛要追求准确、公正、直观地判断第一抢答者,这时候抢答器就派上用场了。
随着科技的发展,现在的抢答器向着数字化、智能化的方向发展,这是必然提高了智能抢答器的制造成本,鉴于现在小规模的知识竞赛越来越多,操作简单,经济适用的小型抢答器肯定很有市场。
五、设计内容1、课题阐述根据系统设计要求可知,系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LEDA、LESB、LEDC、LEDD,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。
电路有三个主要模块:抢答鉴别模块QDJB;计时模块JSQ;记分模块JFQ。
可用静态显示,使用4个数码管,两个显示计时,一个显示组别,一个显示分数本系统应具有的功能有:第一抢答信号的鉴别和锁存功能;抢答计时功能;各组得分的累加和动态显示功能。
2、顶层原理图文件3、模块的介绍3.1抢答鉴别模块QDJB在抢答鉴别电路设计中,A、B、C、D四组抢答,理论上应该有16种可能情况,但实际上由于芯片反应速度快到一定程度时,两组以上同时抢答成功的可能性非常小,因此我们可设计成只有四种情况,这大大简化了电路的设计复杂性。
图2.2 QDJB3.2计时模块JSQ本系统中的计时器电路既有计时初始值的预置功能,又有减计数功能,功能比较齐全。
其中初始值的预置功能是将时间的两位数(单位为秒)分解成两个数分别进行预置,默认时间为60秒倒计时。
TA、TB端分别预置两位数值,再经过LDN端确认所置时间,EN端为高电平后开始计时。
每个数的预置则采用高电平计数的方式进行,CLK接时钟信号,操作简洁。
图2.3 JSQ3.3记分模块JFQ在计分器电路的设计中,按照一般的设计原则,按一定数进制进行加减即可,但是随着计数数目的增加,要将计数数目分解成十进制并进行译码显示分变得越来越麻烦。
因此为了减少译码显示的麻烦,一般是将一个大的进制数分解成数个十进制以内的时制数,计数器串级连接。
但随着位数的增加,电路的接口增加因此本设计采用IF语句从低往高判断是否有进位,以采取相应的操作,而且由于设计要求加减分均为10的倍数故而可以将个位一直设为0,这样既减少了接口,又大大地简化了设计。
图2.4 JFQ3.4译码器显示模块YMQ本译码器用于将抢答鉴别模块抢答成功的组别和计时器的时间进行显示,AIN4[3..0]端输入需显示的二进制数组,DOUT7[6..0]端输出显示在数码管,显示显示范围为0~9。
图2.5 YMQ4、 VHDL源程序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;4.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;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)VARIABLE TMPA: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE TMPB: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF CLR='1' THEN TMPA:="0000"; TMPB:="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 ART;4.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);AA2,AA1,AA0,BB2,BB1,BB0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CC2,CC1,CC0,DD2,DD1,DD0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY JFQ ;ARCHITECTURE ART OF JFQ ISBEGINPROCESS(RST,ADD,CHOS)VARIABLE 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';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';END IF;ELSIF CHOS="0100" THENIF POINTS_C1="1001" THENPOINTS_C1:="0000";IF POINTS_C2="1001" THENPOINTS_C2:="0000";ELSEPOINTS_C2:=POINTS_C2+'1';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';END IF;END IF;END IF;AA2<=POINTS_A2; AA1<=POINTS_A1; AA0<="0000"; BB2<=POINTS_B2; BB1<=POINTS_B1; BB0<="0000"; CC2<=POINTS_C2; CC1<=POINTS_C1; CC0<="0000"; DD2<=POINTS_D2; DD1<=POINTS_D1; DD0<="0000"; END PROCESS;END ART;4.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<="0111111"; --0 WHEN "0001"=>DOUT7<="0000110"; --1 WHEN "0010"=>DOUT7<="1011011"; --2 WHEN "0011"=>DOUT7<="1001111"; --3 WHEN "0100"=>DOUT7<="1100110"; --4 WHEN "0101"=>DOUT7<="1101101"; --5 WHEN "0110"=>DOUT7<="1111101"; --6 WHEN "0111"=>DOUT7<="0000111"; --7 WHEN "1000"=>DOUT7<="1111111"; --8 WHEN "1001"=>DOUT7<="1101111"; --9 WHEN OTHERS=>DOUT7<="0000000";END CASE;END PROCESS;END ART;5、仿真波形5.1抢答鉴别模块QDJB 5.2计时模块JSQ5.3记分模块JFQ5.4 译码显示模块YMQ5.5仿真波形图释对于抢答鉴别模块,CLR低电平有效,当其为高电平时,输出无效。