VHDL抢答器设计--LC
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河南科技学院机电学院EDA课程设计报告
题目:基于VHDL的抢答器设计
专业班级:
姓名:LC
时间:2012.12.10 ~2012.12.28
指导教师:
完成日期:2012年12月27日
基于VHDL的抢答器设计任务书
要求设计一个16用户的抢答器。每个用户使用一个按键,有清零端,自动显示用户所在的线号。
基于VHDL的抢答器设计
1 智能抢答器系统的设计与实现 (3)
1.1 抢答器系统设计要求 (3)
1.2系统总体设计思想 (3)
1.3子模块的设计思想和实现 (4)
1.3.1 锁存模块的设计与实现 (4)
1.3.2 编码模块的设计与实现 (4)
1.3.3译码模块的设计与实现 (5)
1.4抢答器的系统实现 (6)
2抢答器的仿真验证 (7)
3实习心得与体会 (7)
参考文献 (7)
附录 (8)
附录1 锁存模块VHDL程序 (8)
附录2 编码模块VHDL程序 (9)
附录3 译码模块VHDL程序 (10)
基于VHDL的抢答器设计
摘要:伴随着集成电路(IC)技术的发展,EDA技术已经成为现代电子设计的发展趋势,并在各大公司、企事业单位和科研教学部门广泛使用。VHDL是一种全方位的硬件描述语言,几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。本文阐述了EDA的概念和发展、VHDL语言的优点和语法结构并分析讲解了智能抢答器的各模块的功能要求、基本原理以及实现方法。本系统的设计就是采用VHDL硬件描述语言编程,基于Quartus II平台进行编译和仿真来实现的,其采用的模块化、逐步细化的设计方法有利于系统的分工合作,并且能够及早发现各子模块及系统中的错误,提高系统设计的效率。
关键词:电子设计自动化(EDA);VHDL;抢答器;
1抢答器系统的设计与实现
1.1 抢答器系统设计要求
一般来说,设计一个抢答器,必须能够准确判断出第一位抢答者,并且通过数显、蜂鸣这些途径能让人们很容易得知谁是抢答成功者所以我们在设计智能抢答器的模块需要满足鉴别数显等功能,具体设计要求如下:(1)抢答器可容纳16组选手,并为每组选手设置一个按钮供抢答者使用;为主持人设置一个控制按钮,用来控制系统清零(组别显示数码管灭灯)和抢答开始;
(2)电路具有对第一抢答信号的锁存、鉴别和显示等功能。在主持人将系统复位并发出抢答指令后,若参赛选手按下抢答按钮,则该组别的信号立即被锁存,并在数码显示管上显示该组别,此时,电路具备自锁功能,使其他抢答按钮不起作用。
1.2系统总体设计思想
本设计为16路抢答器,所以这种抢答器要求有16路不同组别的抢答输入信号,并能识别最先抢答的信号,直观地通过数显和蜂鸣等方式显示出组别。
抢答过程:主持人按下系统复位键(RST),系统进入抢答状态,当某参赛组抢先将抢答键按下时,系统将其余15路抢答信号封锁,同时扬声器发出声音提示,译码显示模块送出信号给数码显示模块,从而显示出该抢答成功组台号,并一直保持到下一轮主持人将系统清零为止。主持人对抢答结果进行确认,主持人按下复位键,即RST为高电平有效状态,清除前一次的抢答组别,又可开始新的一轮的抢答。
此抢答器的设计中采用自顶向下的设计思路,运用VHDL硬件描述语言对各个模块进行层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起来。
系统的总体框图如下:
图一系统的总体框图
1.3子模块的设计思想和实现
根据对抢答器的功能要求,把要设计的系统划分为3个功能模块:锁存模块、编码模块和译码模块。
1.3.1 锁存模块的设计与实现
锁存模块对第一抢答信号的锁存,同时屏蔽非第一抢答信号的输入信号,以免发生错误;并为编码器送出信号。
图二锁存器模块元件框图
引脚作用:
RET:清零端,高电平有效。
EN: 锁存器使能端,高电平锁存。
1.3.1 编码模块的设计与实现
用来准确直观地判断16组抢答者谁最先按下按钮,并为显示端送出信号,通过数显和蜂鸣等途径使观众能够清楚地知道是哪一组抢答成功。
图三编码器模块元件框图
原理:编码器通过锁存器的输入信号鉴别第一个按下键的小组。以一号用户抢答成功为例,当输入信号为Q1=0,Q2=1,Q3=1,Q4=1,Q5=1,Q6=1,Q7=1,Q8=1,Q9=1,Q10=1,Q11=1,Q12=1,Q13=1,Q14=1,Q15=1,Q16=1输出信号CQ=0001,即为鉴别出一号用户抢答成功,同理其他组别抢答成功也是这样的鉴别过程。
备注:理论上来说16路用户抢答,应该有从0000000000000000—1111111111111111等216种可能情况,但是由于时钟信号的频率很高而且是在时钟信号上升沿的状况下才做出的鉴别,所以在这里两组以上同时抢答成功的可能性非常小,因此可以只设计16种情况,即分别为:
0111111111111111、1011111111111111、1101111111111111、1110111111111111、1111011111111111、1111101111111111、1111110111111111、1111111011111111、1111111101111111 、1111111110111111 、1111111111011111 、 1111111111101111、
1111111111110111 、 1111111111111011 、 1111111111111101 、 1111111111111110
这样就大大简化了电路的设计复杂性。
1.3.3译码模块的设计与实现
该模块实际上是一个译码器,作用是用来显示组别,其主要原理是四位二进制BCD编码转换成七段二进制数字,以阿拉伯数字的形式输出在数码管上,使观众能够更直观的看到结果。
图四译码器模块元件框图
译码器的译码对照表如下所示:
表一译码器的译码对照表