VHDL四人抢答器
- 格式:doc
- 大小:430.00 KB
- 文档页数:8
※※※※※※※※※※※※※※※※※※※※※※※※EDA课程设计报告书课题名称基于VHDL的四位抢答器姓名学号院系专业指导教师一、设计任务及要求:本次课程设计主要是《EDA技术与应用》理论课程而设置的一门实践性课程,起到巩固所学知识,加强综合能力,培养设计能力,提高实验技术,启发创新思想的效果。
指导教师签名:年月日二、指导教师评语:指导教师签名:年月日三、成绩验收盖章年月日基于VHDL 的四位抢答器1设计目的:本次课程设计主要是《EDA 技术与应用》理论课程而设置的一门实践性课程,起到巩固所学知识,加强综合能力,培养设计能力,提高实验技术,启发创新思想的效果。
2设计的主要内容和要求:1 .分析设计要求,明确性能指标。
必须仔细分析课题要求、性能、指标及应用环境等,广开思路,构思出各种总体方案,绘制结构框图。
2 .确定合理的总体方案。
对各种方案进行比较,以电路的先进性、结构的繁简、成本的高低及制作的难易等方面作综合比较,并考虑器件的来源,敲定可行方案。
3 .设计各单元电路。
总体方案化整为零,分解成若干子系统或单元电路,逐个设计。
4.组成系统。
在一定幅面的图纸上合理布局,通常是按信号的流向,采用左进右出的规律摆放各电路,并标出必要的说明。
3 整体设计方案:用元器件及印刷电路板设计并制作一个多路智力竞赛抢答器。
其电路框图如下:图3.1为设计方框图对于一个四人抢答器,四个选手在电路中的起始控制作用是一样的,当裁判员宣布开始抢答时,谁先按下他前面的控制开关,他的灯就会亮,而且这时其他人再怎么按,也就不会亮了,说明每个人对其他人都有一个先发制人的作用,及每个人都在时间控制下,能锁存住其他选手的功能。
当有一个指示灯亮了,计数抢答 按钮锁存电路编码电路译码驱动电路数码管显示复位按钮器就开始从99开始倒计时,到0时还要警告声,这样计数器开始工作就是在指示灯的指示下工作。
可以设四个人分别为输入端A,B,C,D;因为四个输入端在VHDL中,要求四个输入端应该是相等优先级别,但只要有一个输入端接入高电平时,就给其他信号一个反馈,使得他们的输入无效,及他们对应的指示灯不亮;所以我们可以也并行语句,让它们分为四个进程(process),同时也要求每个进程中都有反馈信号传给其他进程语句中,这样就可以完成抢答器基础部分了。
四位VHDL抢答器一、设计理念:1.1 需要设计的是四名选手的抢答过程所用到的抢答器,分别用S0~S3四个按钮表示。
1.2 设置一个由主持人控制的“复位”开关S,按下此开关后以前的状态复位并且重新开始计时抢答。
1.3 抢答器具有锁存与显示功能。
选手按动自己相应的抢答按钮,系统锁存对应的编号,并在LED数码管上显示出来。
同时,扬声器发出提示音。
锁存器实行优先锁存,因此,最先按动抢答按钮的选手编号将被显示,一直到主持人按下复位开关清除为止。
1.4 抢答器规定在一定时间内抢答,暂定为0-99s,当主持人按下复位开关后开始计时。
1.5若在规定时间内无人抢答,扬声器发出提示音并停止抢答过程,此时定时显示器上显示00。
二、设计内容2.1系统大致过程分析抢答器系统的结构分为抢答鉴别lock模块、定时模块、译码模块和报警器模块。
抢答器各步骤中最关键的是锁存,在选手按下抢答器的同时,LED数码管上将显示计时器的剩余有效时间(个位和十位)和选手号。
他们输出全都为BCD码输出,这样便于和显示译码器连接除此之外,整个抢答器还需有一个“复位开始”信号,以便抢答器能实现清零和开始。
当主持人按下控制键、选手按下抢答键蜂鸣器短暂响起。
2.2 方案设计1)抢答鉴别lock模块:这个模块就是起到抢答过程中的抢答功能。
模块中的输入端除了四个抢答输入信号(S0,S1,S2,S3)、时钟信号CLK和公用的时间控制系统的复位端外,还有一个以时间控制系统的警报(WARN)输出信号为信号源的WARN输入。
其中时钟信号是个高频信号,用来扫描S0,S1,S2,S3是否有信号输入。
输出端有对应于4位选手编号的LED指示灯和用来锁存当前状态的4线2进制输出端外,还有一个STOP端用来指示S0,S1,S2,S3按钮状态(控制计时器停止)。
这个模块中一直作用的是高频时钟信号,主持人按下复位键,所以输出端都清零,抢答开始,计时器开始计时。
在有效时间内若有选手按下抢答键,STOP就有就发出高电平到时间控制系统的STOP端,计时器停止计时。
《VHDL语言》课程设计报告四路抢答计时器班级:学号:姓名:第1章课程设计概述1.1设计目的本次设计的目的就是在掌握MAX+plus II实验开发系统的初步使用基础上,了解并掌握VHDL硬件描述语言的设计方法和思想,使自己能将已学过的数字电子系统设计、VHDL 程序设计等知识综合运用于电子系统的设计中,掌握运用VHDL 设计电子系统的流程和方法,加强和培养自己对电子系统的设计能力。
任务是通过二周的时间,基本掌握EDA的基本方法,熟悉一种EDA软件(MAX+plus II),并能利用EDA软件设计一个电子技术综合问题。
通过学习的VHDL语言结合电子电路的知识理论联系实际,掌握所学的课程知识,学习基本单元电路的综合设计应用通过对四路抢答计时器的设计,巩固和综合运用所学的课程,摆脱一维的思维模式,以多维并发的思路来完成VHDL 的程序设计。
目前市场上已有各种各样的抢答器, 但绝大多数是早期设计的, 以模拟电路、数字电路或者模拟电路与数字电路相结合的产品。
这部分抢答器已相当成熟, 但功能越多的电路相对来说就越复杂, 且成本偏高, 故障高, 显示方式简单( 有的甚至没有显示电路) , 无法判断提前抢按按钮的行为, 不便于电路升级换代。
而与非门和非门后的反馈信号的高电平作为解锁存,用555定时器的模型来倒计时,同时以脉冲信号来控制加法器和减法器来控制抢答过程中的计分,应用二极管和数码显示管为主要部件来设计扫描显示器则降低了其复杂性、高故障性以及显示方式简单的问题。
通过课程设计深入理解VHDL语言的精髓和掌握运用所学的知识,达到课程设计的目标。
1.2 设计内容通过VHDL程序设计一个4人参加的智力竞赛抢答计时器,当有某一参赛者首先按下抢答开关时,相应显示灯亮并伴有声响,此时抢答器不再接受其他输入信号。
电路具有回答问题时间控制功能。
要求回答问题时间小于等于100s(显示为0~99),时间显示采用倒计时方式。
当达到限定时间时,发出声响以示警告。
中南林业科技大学课程设计报告设计名称:基于VHDL语言的四人抢答器姓名:杜涵学号:******** 专业班级:电子信息工程一班院(系):计算机与信息工程学院设计时间:2015年12月8日设计地点:东园22栋201目录一、设计题目………………………………………………二、设计要求………………………………………………三、设计目的………………………………………………四、设计背景………………………………………………五、使用工具………………………………………………六、设计原理………………………………………………七、设计结构………………………………………………八、原理图…………………………………………………九、模块程序………………………………………………十、引脚分配………………………………………………十一、设计结果验证………………………………………十二、总结…………………………………………………一、设计题目:基于VHDL语言的四路抢答器二丶设计要求:1、设计制作一个竞赛抢答器,每组受控于一个抢答开关,分别为S1, S2, S3, S4。
2、控制键K,用于控制整个系统清零, K=0,系统清零;抬起复位键时,K=1,抢答开始。
3、每答对一题计十分,每次答题时间不能超过60秒。
4、第一抢答者按下抢答按钮,对应的led灯点亮,同时数码管显示是第几位抢答者,并封锁其他各组的按钮,即其他任何一组按键都不会再使电路响应。
与此同时,数码管开始显示60秒的倒计时。
通过K键复位,开始下一轮抢答。
三、设计目的1.通过设计竞赛抢答器的实例来体会设计实际产品的过程,在学好理论的基础上,提高动手实践能力。
2.学习怎样用vhdl语言来描述自己的设计思路,调试硬件后,能够使产品实现功能。
3.进一步掌握用vhdl语言编写数字电路。
4.在做课题过程中,掌握多位共阴极扫描显示数码管的驱动及编码,学会使用和调试硬件。
四、设计背景现代电子产品几乎渗透了社会的各个领域EDA技术是电子设计的发展趋势,EDA工具从数字系统设计的单一领域,应用范围己涉及模拟、微波等多个领域,可实现各个领域电子系统设计的测试、设计仿真和布局布线等。
1 绪论1.1 EDA技术的发展人类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。
现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。
前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管;后者的核心就是EDA技术。
EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作:IC设计,电子电路设计以及PCB设计。
没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的,但是面对当今飞速发展的电子产品市场,设计师需要更加实用、快捷的EDA工具,使用统一的集体化设计黄精,改变传统的设计思路,将精力集中到设计构想、方案比较和寻找优化设计等方面,需要以最快的速度,开发出性能优良、质量一流的电子产品,对EDA技术提出了更高的要求。
未来的EDA技术将在仿真、时序分析、集成电路自动测试、高速印刷版设计及开发操作平台的扩展等方面取得新的突破,向着功能强大、简单易学、使用方便的方向发展。
1.2 EDA技术的设计优势传统的设计方法采用自底向上的设计方法,一般先按电子系统的具体功能要求进行功能划分,然后对每个子模块画出真值表,用卡诺图进行手工逻辑简化,写出布尔表达式,画出相应的逻辑线路图,再据此选择元器件,设计电路板,最后进行实测与调试,由于无法进行硬件系统功能仿真,如果某一过程存在错误,查找和修改十分不便,所以这是一种费时、费力的设计方法,而现代电子设计技术(EDA)是自顶向下且先进高效的。
在电子产品的设计理念、设计方式、系统硬件构成、设计的重用性、知识产权、设计周期等方面,EDA技术具有一定的优势。
所以本次设计的抢答器抛弃了传统的设计方法,选择了采用主流的EDA 技术进行设计。
1 前言 (1)2 抢答器的设计要求及分析 (2)2.1 抢答器的设计要求 (2)2.2 抢答器的设计分析 (2)3 抢答器的设计 (4)3.1 抢答鉴别模块 (4)3.1.1 抢答鉴别模块源程序 (4)3.1.2 抢答鉴别模块程序仿真 (4)3.2 抢答计时模块 (4)3.2.1 抢答计时模块源程序 (4)3.2.2 抢答计时模块程序仿真 (4)3.3 抢答计分模块 (5)3.3.1 抢答计分模块源程序 (5)3.3.2 抢答计分模块程序仿真 (5)3.4 综合模块 (6)3.4.1 例化源程序 (6)3.4.2 例化程序仿真 (6)4 抢答器的硬件测试 (7)4.1 抢答器的引脚绑定 (7)4.2 在CPLD\FPGA实验系统上下载,进行硬件验证情况 (8)5 Quartus Ⅱ软件及VHDL语言介绍 (9)5.1 Quartus Ⅱ软件介绍 (9)5.2 VHDL语言简介 (10)心得体会 (11)参考文献 (12)EDA技术作为现代电子设计最新技术的结晶,其广阔的应用前景和深远的影响已毋庸置疑,它在信息工程类专业中的基础地位和核心作用也逐渐被人们所认识。
许多高等学校开设了相应的课程,并为学生提供了课程设计、综合实践、电子设计竞赛、毕业设计、科学研究和产品开发等EDA技术的综合应用实践环节。
相关的工程技术人员也特别重视学习EDA技术,并渴望提高其工程应用能力。
对于迅猛发展的EDA技术的综合应用,从EDA技术的综合应用系统的深度来分,可分为3个层次:(1) 功能电路模块的设计;(2)算法实现电路模块的设计;(3) 片上系统/嵌入式系统/现代DSP系统的设计。
从EDA技术的综合应用系统的最终主要硬件构成来分,已出现6种形式:(1) CPLD/FPGA系统;(2) "CPLD/FPGA+MCU"系统;(3) "CPLD/FPGA+专用DSP处理器"系统;(4) 基于FPGA实现的现代DSP系统;(5) 基于FPGA实现的SOC片上系统;(6) 基于FPGA实现的嵌入式系统。
题目:硬件描述语言实验十三:四人抢答器姓名:*** 学号: ***地点:主楼402 时间:5月9日一、实验目的:进一步练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言基本设计实体的编写方法。
二、实验环境:PC个人计算机、Windows XP操作系统、Quartus II集成开发环境软件。
三、设计要求:设计一个四人抢答的抢答器的逻辑模块,模块功能如下描述:(1)上一轮抢答结束后,主持人按下清零按钮,系统初始化,此时除了禁止抢答灯外,所有灯灭,而禁止抢答灯亮。
(2)主持人按下允许抢答按钮,允许抢答灯亮,模块开始计时;当达到设定的允许抢答的时间时,允许抢答灯灭,禁止抢答灯亮。
(3)参赛选手在允许抢答的时间内按下自己的抢答按钮,谁第一个按下,他的抢答成功灯亮,其他选手在抢答无效。
(4)选手在禁止抢答的时间段按下抢答的按钮,他的犯规灯亮,多个选手犯规,他们的犯规灯都亮。
由上述功能可确定模块的引脚:每个按钮对应一个输入信号,按钮按下输入为高电平;每个灯对应一个输出信号,输出高电平灯亮。
为了计时,还有一个时钟信号输入,允许抢答的时间为16个时钟周期。
四、设计思想:抢答器主要由两个模块来实现功能:(一)抢答鉴别及锁存模块根据设计要求,首先要有清零按钮clr,主持人控制按钮en,四人抢答按钮a、b、c、d,并由dsp显示抢答成功的选手号码,用wrg_lgt 表示犯规灯,用fbd_lgt表示禁止抢答灯,用alw_lgt表示允许抢答灯。
为了实现当有选手抢答后锁存电路使其他选手无法抢答的功能,设置两个锁存信号temp1、temp2。
按下清零开关(clr=1),tmp1、tmp2=0,若主持人未按下允许抢答按钮(en=0),即禁止抢答灯亮(alw_lgt=1)时,有人抢答,则tmp2=1,关闭抢答电路,犯规选手的犯规灯亮;若主持人按下允许抢答开关(en=1)后,即允许抢答灯亮(alw_lgt=1)时,有人抢答,则tmp1=1,关闭抢答电路,抢答成功选手的抢答成功灯亮。
一、设计要求:在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等各种手段批示出第一抢答者。
同时,还可以设置计分、犯规及奖惩记录等各种功能。
本设计的具体功能是:1.可容纳四组参赛者进行抢答,每组设置一个抢答按钮供抢答者使用。
2.电路具有第一抢答信号的鉴别和锁存功能。
在主持人交系统复位并发出抢答指令后,若有一组先按下抢答开关,则该组指示灯亮并用组别显示电路显示抢答者的组别,同时扬声器发出“嘀嘟”的双音音响,且持续2~3秒。
此时,电路具备自锁功能,使他组的抢答开关不起作用。
3.具有计分功能,使每组在开始时的分数预置成100分,抢答后由主持人计分,答对一次加10分。
二、系统方案论证与模块划分:根据系统设计要求可知:1.系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;2.系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LED_A、LES_B、LED_C、LED_D,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。
3.本系统应具有的功能有:第一抢答信号的鉴别和锁存功能;抢答计时功能;各组得分的累加和动态显示功能。
根据以上的分析,我们可将整个系统分为三个主要模块:抢鉴别模块QDJB;抢答计时模块JSQ;抢答计分模块JFQ;对于需显示的信息,需增加或外接译码器,进行显示译码。
考虑到FPGA、CPLD的可用接口及一般EDA实验开发系统的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。
整个系统的组成框图如图2-1所示:系统的工作原理如下:当主持人按下使能端EN1时,抢答器开始工作,A、B、C、D四个抢答者谁最先抢答成功则此选手的台号灯(LED_A—LED_D)将点亮,并且组别显示数码管将显示出抢答成功者的台号,并由蜂鸣器发出抢答成功的警报;接下来主持人提问,若回答正确,主持人按加分按钮ADD,抢答计分模块JFQ将给对应的组加分,并将该组的总分显示在对应的选手计分数码管JF2_A-JF0_A、JF2_B-JF0_B、JF2_C-JF0_C、JF2_D-JF0_D、上。
河海大学计算机与信息学院(常州)课程设计报告题目四人抢答器电路设计学号 1062510130 授课班号 274302 学生姓名王聪同组成员 1062510135 张恒指导教师奚吉完成时间2013.01.04四人抢答器电路设计摘要Verilog HDL课程设计的主要动机是1.培养综合运用知识和独立开展实践创新的能力;2.通过完成四人抢答器电路设计,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础;3.通过搭建调试电路,进一步熟悉相关仪器设备的使用;4.通过Verilog程序的编写,进一步熟悉Verilog HDL的语法知识;5.规范化训练学生撰写技术研究报告,提高书面表达能力。
四人抢答器电路设计的主要问题在于各个模块的正确分配,从而使设计出的电路更加符合要求。
为了使各个模块能够正确分配,在程序开始设计之前,必须反复推敲本组的设计方案并设计好各个模块的方框图。
如果一切都设计好之后,那么最后的电路会具有抢答第一信号鉴别和锁存功能、主持人清屏功能、30秒倒计时功能、蜂鸣器报警功能。
实现四人抢答器的预期功能需要:1.将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2.遇到本组内解决不了的问题,及时和其他小组交流或询问老师;3.进行模块调试时,根据试验箱上现象的不同及时调整相关程序的内容。
本次课程设计的实现的重要结果1.完成了实验环境搭建;2.实现了一四人抢答器,有人抢答成功后,其他人再抢答无效;3.通过蜂鸣器响1秒来提示抢答成功,并在数码管上显示抢答者的序号;4.主持人通过按键清除抢答信息,并开始30秒的答题倒计时,当倒计时结束时,通过蜂鸣器响1秒来提示回答问题时间到,此时可以开始新一轮的抢答。
当然,本次课程设计还有诸多不足之处,我们已经力求改进以求设计的实用性及完美性。
四人抢答器设计一、设计任务及要求:(1)设计用于竞赛抢答的四人抢答器;①有多路抢答,抢答台数为8;②具有抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警;③能显示超前抢答台号并显示犯规警报;(2) 系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其余各路抢答信号封锁,同时铃声想起,直至该路按键松开,显示牌显示该路抢答台号;(3) 用VHDL语言设计符合上述功能要求的四人抢答器,并用层次化设计方法设计该电路;(4) 完成电路全部设计后,通过系统实验箱下载验证设计课题的正确性。
二、设计思路设计制作一个竞赛抢答器,每组受控于一个抢答开关,分别为S1, S2, S3, S4,低电平表示抢答有效;设置主持人控制键K,用于控制整个系统清0 和抢答有效控制,按下复位键时, K=0,系统清零;抬起复位键时,K=1,抢答开始;系统具有第一抢答信号鉴别和锁存功能。
在主持人将系统复位并使抢答有效开始后,第一抢答者按下抢答按钮,对应的输入引脚接低电位0,电路应记忆下第一抢答者的组别,并封锁其他各组的按钮,即其他任何一组按键都不会使电路响应;系统以两种方式指示第一抢答者:其一是通过译码程序显示其组别号;其二是在第一抢答者产生时,蜂鸣器警示;设置违规电路单元,当抢答者在主持人按下复位清零按钮之前就已经按下抢答按钮时,则给出违规信号为高电平。
对应组别的红色信号灯亮;当20秒倒计时后无人抢答显示超时,并报警。
系统设计框图如图1所示。
抢答按钮主持人按钮控制电路第一信号鉴别组别数码显示声音警示计时控制提前抢答控制S1S2S3S4K图1 整体设计框图三、VHDL程序实现1、正常抢答程序及仿真此模块包括正常抢答第一信号鉴别和显示抢答台号,并发生声音提示。
其中S1,S2,S3,S4为抢答按钮,当对应的按钮信号为0时表示有抢答信号;K为主持人按钮,按下复位键K时, K=0,系统清零;抬起复位键时,K=1,抢答开始;G为报警信号。
四人抢答器设计一、设计任务及要求:(1)设计用于竞赛抢答的四人抢答器;①有多路抢答,抢答台数为8;②具有抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警;③能显示超前抢答台号并显示犯规警报;(2) 系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其余各路抢答信号封锁,同时铃声想起,直至该路按键松开,显示牌显示该路抢答台号;(3) 用VHDL语言设计符合上述功能要求的四人抢答器,并用层次化设计方法设计该电路;(4) 完成电路全部设计后,通过系统实验箱下载验证设计课题的正确性。
二、设计思路设计制作一个竞赛抢答器,每组受控于一个抢答开关,分别为S1, S2, S3, S4,低电平表示抢答有效;设置主持人控制键K,用于控制整个系统清0 和抢答有效控制,按下复位键时, K=0,系统清零;抬起复位键时,K=1,抢答开始;系统具有第一抢答信号鉴别和锁存功能。
在主持人将系统复位并使抢答有效开始后,第一抢答者按下抢答按钮,对应的输入引脚接低电位0,电路应记忆下第一抢答者的组别,并封锁其他各组的按钮,即其他任何一组按键都不会使电路响应;系统以两种方式指示第一抢答者:其一是通过译码程序显示其组别号;其二是在第一抢答者产生时,蜂鸣器警示;设置违规电路单元,当抢答者在主持人按下复位清零按钮之前就已经按下抢答按钮时,则给出违规信号为高电平。
对应组别的红色信号灯亮;当20秒倒计时后无人抢答显示超时,并报警。
系统设计框图如图1所示。
抢答按钮主持人按钮控制电路第一信号鉴别组别数码显示声音警示计时控制提前抢答控制S1S2S3S4K图1 整体设计框图三、VHDL程序实现1、正常抢答程序及仿真此模块包括正常抢答第一信号鉴别和显示抢答台号,并发生声音提示。
其中S1,S2,S3,S4为抢答按钮,当对应的按钮信号为0时表示有抢答信号;K为主持人按钮,按下复位键K时, K=0,系统清零;抬起复位键时,K=1,抢答开始;G为报警信号。
VHDL语言编抢答器四人抢答器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity QDQ4R isport(sta:in std_logic;clk :in std_logic;rst :in std_logic;a,b,c,d :in std_logic;lb :out std_logic;t_limit :out std_logic_vector(3 downto 0);led :out std_logic_vector(3 downto 0);seg :out std_logic_vector(3 downto 0)); end QDQ4R;architecture bhe of QDQ4R issignal tem :std_logic_vector(3 downto 0); signal scq :std_logic;signal s :std_logic;signal t :std_logic;signal ns :std_logic;signal s_sta :std_logic;constant w1 :std_logic_vector:="0001"; constant w2 :std_logic_vector:="0010"; constant w3 :std_logic_vector:="0011"; constant w4 :std_logic_vector:="0100"; begintem<=d&c&b&as<=a or b or c or d;ns<=not(a or b or c or d);p1: process(sta,ns)beginif sta='1' thens_sta<='1';elsif(ns'event and ns='1')thens_sta<='0';end if;end process p1;p2: process(rst,s_sta,s,t)beginif rst='1' thenled<="0000";elsif(s'event and s='1')thenif (s_sta='1' and t='1') thencase tem iswhen "0001"=> led<="0001";when "0010"=> led<="0010";when "0100"=> led<="0100";when "1000"=> led<="1000";when others=> led<="0000";end case;end if;end if;end process p2;p3: process(clk,s_sta)variable lb_cnt :std_logic_vector(1 downto 0):="10"; begin if(s='1') thenif (clk='1' and clk'event) thenif lb_cnt>"00" thenlb<=clk;lb_cnt:=lb_cnt+1;elselb_cnt:="10";end if;end if;end if;end process p3;p4: process(s)beginif(rst='1') thenseg<="0000";elsif(s'event and s='1') thencase tem iswhen "0001" =>seg<=w1;when "0010" =>seg<=w2;when "0100" =>seg<=w3;when "1000" =>seg<=w4;when others =>seg<="0000";end case;end if;end process p4;p5: process(clk,s_sta)variable s_time :std_logic_vector(3 downto 0):="1010"; begin if(clk'event and clk='1') thenif(sta='1' and s_time>"0000") thent<='1';s_time:=s_time-1;t_limit<=s_time;elses_time:="1010";t<='0';end if;end process p5; end bhe;。
第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电路图略。
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 的倒计时。
VHDL语言EDA四人抢答器第一篇:VHDL语言EDA四人抢答器一.EDA技术简介在计算机技术的推动下,20世纪末,电子技术获得了飞速的发展,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA的概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
二.设计要求l、设计用于竞赛的四人抢答器,功能如下:(1)有多路抢答器,台数为四,能显示抢答台号;(2)具有抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警;(3)能显示超前抢答台号并显示犯规警报;2、系统复位后进入抢答状态,当有一路抢答键按下时,该路抢答信号将其余各路抢答封锁,同时铃声响,直至该路按键松开,显示牌显示该路抢答台号。
前言 (3)一、项目名称 (3)二、设计目的 (3)三、设计任务与要求3.1 设计任务: (4)3.2 设计要求 (4)四、四人智力竞赛抢答器设计4.1 基本功能 (4)4.2 扩展框图 (4)4.3 系统框图 (4)五、总模块图 (5)六、仿真图 (5)七、结论 (7)八、管脚绑定 (7)九、源代码 (8)前言进入21世纪越来越来多的电子产品出现在人们的日常生活中,例如企业、学校和电视台等单位常举办各种智力竞赛, 抢答记分器是必要设备。
过去在举行的各种竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。
人们于是开始寻求一种能不依人的主观意愿来判断的设备来规范比赛。
因此,为了克服这种现象的惯性发生人们利用各种资源和条件设计出很多的抢答器,从最初的简单抢答按钮,到后来的显示选手号的抢答器,再到现在的数显抢答器,其功能在一天的趋于完善不但可以用来倒计时抢答,还兼具报警,计分显示等等功能,有了这些更准确地仪器使得我们的竞赛变得更加精彩纷呈,也使比赛更突显其公平公正的原则。
今天随着科技的不断进步抢答器的制作也更加追求精益求精,人们摆脱了耗费很多元件仅来实现用指示灯和一些电路来实现简单的抢答功能,使第一个抢答的参赛者的编号能通过指示灯显示出来,避免不合理的现象发生。
但这种电路不易于扩展,而且当有更高要求是酒无法实现,例如参赛人数的增加。
随着数字电路的发展,数字抢答器诞生了,它易于扩展,可靠性好,集成度高,而且费用低,功能更加多样话,是一种高效能的产品。
而如今在市场上销售的抢答器大多采用可编程逻辑元器件,或利用单片机技术进行设计,本次设计主要通过划分功能模块进行各个部分的设计,最后完成了四路智力竞赛抢答器的设计。
一.项目名称基于FPGA的四路抢答器二、设计目的1、掌握四人智力竞赛抢答器电路的设计。
2、熟悉数字集成电路的设计和使用方法。
四人抢答器设计一、设计任务及要求:(1)设计用于竞赛抢答的四人抢答器;①有多路抢答,抢答台数为8;②具有抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警;③能显示超前抢答台号并显示犯规警报;(2) 系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其余各路抢答信号封锁,同时铃声想起,直至该路按键松开,显示牌显示该路抢答台号;(3) 用VHDL语言设计符合上述功能要求的四人抢答器,并用层次化设计方法设计该电路;(4) 完成电路全部设计后,通过系统实验箱下载验证设计课题的正确性。
二、设计思路设计制作一个竞赛抢答器,每组受控于一个抢答开关,分别为S1, S2, S3, S4,低电平表示抢答有效;设置主持人控制键K,用于控制整个系统清0 和抢答有效控制,按下复位键时, K=0,系统清零;抬起复位键时,K=1,抢答开始;系统具有第一抢答信号鉴别和锁存功能。
在主持人将系统复位并使抢答有效开始后,第一抢答者按下抢答按钮,对应的输入引脚接低电位0,电路应记忆下第一抢答者的组别,并封锁其他各组的按钮,即其他任何一组按键都不会使电路响应;系统以两种方式指示第一抢答者:其一是通过译码程序显示其组别号;其二是在第一抢答者产生时,蜂鸣器警示;设置违规电路单元,当抢答者在主持人按下复位清零按钮之前就已经按下抢答按钮时,则给出违规信号为高电平。
对应组别的红色信号灯亮;当20秒倒计时后无人抢答显示超时,并报警。
系统设计框图如图1所示。
抢答按钮主持人按钮控制电路第一信号鉴别组别数码显示声音警示计时控制提前抢答控制S1S2S3S4K图1 整体设计框图三、VHDL程序实现1、正常抢答程序及仿真此模块包括正常抢答第一信号鉴别和显示抢答台号,并发生声音提示。
其中S1,S2,S3,S4为抢答按钮,当对应的按钮信号为0时表示有抢答信号;K为主持人按钮,按下复位键K时, K=0,系统清零;抬起复位键时,K=1,抢答开始;G为报警信号。
其VHDL源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee. std_logic_arith.all;use ieee. std_logic_unsigned.all;-------------------------------------------------------------------- entity qiangda isport( S1,S2,S3,S4 : in std_logic; --输入:表示4个人,为0表示有抢答 K : in std_logic; --主持人抢答开始键G : out std_logic; --报警信号ledag : out std_logic_vector (6 downto 0);Dout : out std_logic_vector(3 downto 0) ); --抢答结果显示end qiangda;-------------------------------------------------------------------- architecture behave of qiangda issignal Enable_Flag : std_logic;--允许抢答控制变量,为1表示允许抢答signal S : std_logic_vector(3 downto 0);signal D : std_logic_vector(3 downto 0);beginprocess(S1,S2,S3,S4,K) --允许抢答控制beginS<=S1&S2&S3&S4;If (K='1') thenEnable_Flag<='1';elsif(S/="1111") thenEnable_Flag<='0';end if;end process;process(S1,S2,S3,S4,K) --抢答结果显示 beginif(K='0') thenD<="0000";Elsif (Enable_Flag='1') thenif(S1='0') thenD(0)<='1';G<='0';elsif(S2='0') thenD(1)<='1';G<='0';elsif(S3='0') thenD(2)<='1';G<='0';elsif(S4='0') thenD(3)<='1';G<='0';end if;dout<=d;end if;end process;process(d) --显示抢答成功者号码begincase d iswhen "0000"=>ledag<="0111111";when "0001"=>ledag<="0000110";when "0010"=>ledag<="1011011";when "0100"=>ledag<="1001111";when "1000"=>ledag<="1100110";when others=>ledag<="0000000";end case;end process;end behave;以上VHDL程序的系统框图如图2所示。
图2 抢答部分框图通过MAX+PLUSⅡ软件仿真结果如图3所示。
从图中可看出S1和S2选手抢答情况,在K为高电平时,S1选手为低电平,抢答成功,报警信号G为低电平,给出报警信号,同时七段数码管译码为06H,显示1。
图3 抢答部分仿真图2、抢答倒计时程序此模块为抢答20s倒计时程序,在主持人按下按钮K后此模块即开始工作,在20s倒计时完后会有声音提示,G为声音报警信号。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT ISPORT (CLK, Enable_Flag: IN STD_LOGIC; H,L: OUT STD_LOGIC_VECTOR (3 DOWNTO 0);G:OUT STD_LOGIC); --声音报警END COUNT;ARCHITECTURE COUNT_ARC OF COUNT ISBEGINPROCESS (CLK, Enable_Flag)VARIABLE HH, LL: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINIF CLK'EVENT AND CLK='1'THENIF Enable_Flag='1'THENIF LL=0 AND HH=0 THENG<='1';ELSIF LL=0 THENLL: ="1001";HH: =HH-1;ELSELL: =LL-1;END IF;ELSEG<='0';HH: ="1001";LL: ="1001";END IF;END IF;H<=HH;L<=LL;END PROCESS;END COUNT_ARC;其模块结构图如图4所示:图4 倒计时结构图3、超前犯规抢答程序及仿真此模块为违规电路。
当抢答者在主持人复位系统之前就已按下抢答按钮,即当RESET=0时,有抢答信号出现,则Y=11表示某组违规,当RESET = 1时,显示违规组别。
其中K为主持人按钮,S1,S2,S3,S4为抢答按钮,R1,R2,R3,R4为对应组别犯规红色显示灯。
其VHDL源程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY wg ISPORT(K: IN std_logic;S1, S2, S3, S4: IN std_logic;R1, R2, R3, R4: OUT std_logic; --红色灯指示超前抢答台号y: OUT std_logic_VECTOR (1 DOWNTO 0) );END wg;ARCHITECTURE a OF wg ISSIGNAL TEMP1: STD_LOGIC;SIGNAL TEMP2: STD_LOGIC_VECTOR (1 DOWNTO 0);BEGINTEMP1<=S1 OR S2 OR S3 OR S4 ;TEMP2<=K&TEMP1;process(TEMP2) --显示抢答成功者号码begincase TEMP2 iswhen "01"=>Y<="11";when "10"=>Y<="00";when "11"=>Y<="00";when others=>Y<="00";end case;if(K<='0') thenif(S1='0') thenR1<='0';elsif(S2='0') thenR2<='0';elsif(S3='0') thenR3<='0';elsif(S4='0') thenR4<='0';end if;end if;end process;END a;通过VHDL程序可生成其对应的框图如图5所示:图5犯规部分框图同样在MAX+PLUSⅡ环境下可得到其对应的仿真分析图如图6所示。
从仿真分析可看出在为高电平前,S1按钮有超前抢答低电平出现,故Y=11表示有超前抢答产生,同时R1为低电平,对应S1选手的红灯亮,指示其违规抢答。