VHDL语言EDA四人抢答器

2024-07-16

VHDL语言EDA四人抢答器(精选2篇)

VHDL语言EDA四人抢答器 篇1

四人抢答器实习报告

电子101 史军军 10446119

1、实训内容(摘自《电子设计实训教程》 何宝祥 主编)

(1)听取用电安全知识、焊接技术和PROTEL应用技术等理论讲座。

(2)理解四人抢答器原理,对四人抢答器线路的工作原理有一定而了解,对电子焊接机原理和电子元器件有一个生动的感性认识。

(3)应用PROTEL软件制作电路原理图和印刷线路图。要求通过锻炼,最终能比较熟练地掌握PROTEL软件。

(4)对于常见的一些线路故障,能够寻找原因并加以排除。(5)写出具有个性化的总结。

2、四人抢答器原理图

3、主要元器件及原理简介

主要元器件:74LS20(四端输入与非门),74LS04(非门),三极管,二极管,发光二级管,蜂鸣器,电阻若干,开关等等。

原理简介:利用74LS20四端输入与非门,以及非门当一个抢答按钮按下以后,对应的四端输入与非门输出低电平,再经过非门后变为高电平,则对应的发光二级管发光,蜂鸣器响,该低电平经过非门后反馈给其它三个四端输入与非门,根据有0出1,其它抢答按钮失效。此时按下复位按钮,可以进行新一轮的抢答。

4、四人抢答器PCB图

5、实训安排

本次实训共三周。第一周学习PROTEL制图软件;第二周学习焊接以及对前一周的PROTEL和焊接学习的验收考试;第三周则是实际制版和焊接,然后验收成品。

6、实训过程

(1)第一周,刚接触PROTEL,说实话确实是挺纠结的,因为是英文版的,虽然经过汉化,但是很多东西还是英文的,而且又是刚接触到的一个新知识,所以学起来感觉很困难。还好在老师的精心讲解下,我又自己从网上下了一套PROTEL的学习教程,以及在同学们大家相互探讨,相互帮助,觉得自己对这个软件掌握的越来越好了。

(2)第二周,是焊接的学习,由于上学期在科协焊过不少东西,所以对于焊接,还是比较得心应手的。周四上午,老师带领我们在文约楼5楼。进行了PCB制版学习,我们先看了两遍视屏教程,然后老师在一旁知道我们进行实际操作,整个过程大约花了50分钟。

(3)第三周,则是我们自己焊版子,PCB版是学校提供的半成品,比实际电路缺少三十几根线,这些都是让我们自己按照原理图进行连接并焊上去的。有些同学是看着原理图,找到一根线就连一根,我觉得这样可能比较乱,于是先在纸上把所有的连线都找出来,然后在纸上把电路版的背面的所有元器件的接口都按照它们实际的相对位置画出来,然后把所有的原来缺少的线都画出来,这样就显得一目了然了,而且可以精心布局一下电线的走位,可以使焊接更为方便、美观。事实证明我这样做确实是有很大优势的。

在调试过程中,我发现按下抢答按钮1后,再按3,发光二级管会跳过去,根据老师说的,无非是几种情况:虚焊,或者1的反馈没有给3,进过检查,果然是少焊了一根线,反馈没有给。虽然还遇到了其它一些困难,但是我是班上较早就成功完成作品的。

7、四人抢答器实物图

8、使用方法

四人抢答器一共5个按钮,4个发光二级管,1个蜂鸣器。其中有一个按钮是复位开关,其它4个为抢答按钮,分别和4个发光二级管一一对应,一个蜂鸣器共用,接通电源后,按任意一个抢答按钮,蜂鸣器响,对应的发光二级管发光,此时按其他抢答按钮无效,按下复位按钮后可进行下一轮的抢答。

9、心得体会

经过本次电子实训,我学会了PROTEL的简单操作及应用,更加巩固了我的焊接技术,很大程度上增强了我的动手能力。在PROTEL的学习中,我和同学们相互交流,互相沟通学习,增进了我们的友谊,让我们懂得了团队的力量。在焊接过程中,我是较早就完工的,于是有幸帮助其它同学解决了不少困难,比如有的同学焊接功底不是很好,接线较多的焊点,我就帮他们按住线,不让线翘起来,也帮有些同学排查了一些问题。

VHDL语言EDA四人抢答器 篇2

抢答器是举办各种智力竞赛、娱乐活动时一种常用的电子装置。抢答器的设计方法很多,可以用单片机、用传统的集成电路PCB(印制电路板)或者用PLD(可编程逻辑器件)等进行设计。采用PLD基于VHDL(超高速集成电路硬件描述语言)的设计方法可以快速、灵活地设计出符合各种要求的抢答器,并借助于EDA(电子设计自动化)技术进行设计仿真,实现设计过程的自动化、快速化。

VHDL语言是目前最通用的硬件描述语言之一,具有诸多特点:功能强大、设计灵活;支持广泛、易于修改;强大的系统硬件描述能力;很强的移植能力,易于共享和复用等。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。VHDL语言的特点使得“自顶向下”的现代数字系统设计方法更加容易实现。

本文介绍的倒计时抢答器采用CPLD(复杂可编程逻辑器件)为核心,以美国ALTERA公司的FPGA(现场可编程门阵列)/CPLD集成开发环境MAX+plusⅡ作为开发平台,用VHDL语言设计而成。除了具备基本的8路抢答、数显功能外,还具有倒计时控制(回答问题时间控制)功能,该系统采用“自顶向下”的模块化设计方法,提高了系统的整体性能,具有电路简单、工作可靠、操作维护简便等特点。

1 倒计时抢答器的系统设计

1.1 实现功能与设计思路

要求设计一个8人(组)参加的智力竞赛抢答器。电路输出具有唯一性和时序第一的特征,且电路具有回答问题时间控制功能,要求回答问题时间小于100 s(显示为0~99),时间显示采用倒计时方式。

根据设计要求分析定义系统功能如下:

a) 具有8人抢答器功能。可设开关设阵列K1~K8对应8个抢答选手(或组别),当一人(组)抢答后,有锁存功能,数码管稳定显示与输入开关编号相对应的数字(1~8),并能保持显示,之后的抢答按键输入无效。

b) 具有手动解锁功能。设置主持人控制按键Reset,用于控制整个系统清零和抢答有效控制。显示结果能由解锁控制按键清除(数码管显示0),解锁之后进行下一轮抢答。

c) 具有自动解锁功能,自动解锁时间为99 s。自动解锁时间应用2位数码管显示。

d) 主持人发出开始命令,8人(组)开始抢答。其中一人先按下抢答键,蜂鸣器发出鸣叫,数码管显示该选手号码,倒计时开始并显示倒计时值,其他人再按键,系统不再响应,直至主持人按键清零或倒计时至00值并鸣响警告,系统解锁,下一轮抢答开始。

1.2 方案确定与模块划分

根据以上功能要求与设计思路,方案采用CPLD及外围电路实现。倒计时抢答器的系统结构见图1。

该系统共分6个组成部分:脉冲振荡电路、手动解锁电路(主持人控制)、8人(组)抢答开关阵列电路、数码显示电路、蜂鸣器声响电路以及CPLD设计部分(核心设计)。

1.3 硬件设计与资源分配

a) 脉冲振荡电路用于产生标准时钟信号,为系统提供CLK信号,可由石英晶体及相关电路构成,放在CPLD外实现。

b) 主持人控制电路,由解锁开关按键Reset实现,放在CPLD外,当按键按下时为低电平有效。

c) 8人抢答电路,由开关阵列实现,8个按键、8个上拉电阻放在CPLD外,当按键按下时为低电平有效。

d) 蜂鸣器声响电路,放在CPLD外,送低、高电平时,可使蜂鸣器发出声响或不发声。

e) 数码显示电路,采用74LS245(驱动器)与3个共阴极LED(发光二极管)实现,放在CPLD外,分别显示抢答选手号、倒计时的高位和低位时间值。

f) CPLD内部设计,是倒计时抢答器设计的核心部分,选用ALTERA公司MAX7000S系列的EPM7128SLC84-15实现,内部功能模块可划分为:分频模块、锁存模块、编码模块、锁存/解锁及定时控制模块、显示译码驱动模块。

CPLD内部设计采用“自顶向下”的模块化设计方法,各功能模块用VHDL语言设计实现,将电路的硬件设计转化为软件设计。

CPLD内部模块中的锁存/解锁及定时控制模块是CPLD内部设计的核心,主要起锁存/解锁控制作用。解锁方式有两种可供选择:主持人手动解锁和倒计时自动解锁。

显示译码驱动模块采用扫描译码形式设计,即让3个LED轮流显示,当扫描速度足够快时看起来就像是3个LED同时在显示。采用这种方式时,LED显示控制只需8+3(段码数+LED数)个CPLD的引脚。如采用传统的译码电路输出与LED的输入之间的独立连接形式,则至少占用CPLD的8×3=24个引脚,占用过多的CPLD资源,增加了硬件部分设计的难度。此设计中扫描译码控制的时钟信号由分频模块产生,选用512 Hz。

2 基于VHDL语言的CPLD内部设计

倒计时抢答器的核心设计部分CPLD器件内部的顶层设计图如图2所示。

下面介绍用VHDL语言进行CPLD内部各功能模块的设计方法和过程,重点介绍显示译码驱动模块和锁存/解锁及定时控制模块的具体实现方法。

VHDL语言主要用于描述数字系统的结构、行为和功能,其程序结构特点是将一个电路模块或一个系统分成实体和构造体两部分实现。在用VHDL语言进行模块的设计时,实体用于描述模块的输入输出接口,结构体用于描述模块的功能或电路结构,是模块功能的具体实现。

2.1 分频模块设计

分频模块COUNTOR .VHD的输入信号是目标板上的振荡器产生的327 68 Hz时钟信号,分频模块提供512 Hz信号供显示译码驱动模块实现扫描译码,提供1 Hz信号供锁存/解锁及定时控制模块采样数据及进行倒计时。实体部分的端口定义1个脉冲输入端口clk、2个输出端口Q5和Q14,构造体部分使用二进制计数器方便地实现分频(分频比为26、215)。VHDL代码略。

2.2 锁存模块设计

锁存模块LOCK .VHD用于锁存开关阵列的8路抢答输入信号,实体部分的端口共定义8个抢答输入端口、8个输出端口和1个锁存允许输入端口EN,当EN=0时,锁存数据。

2.3 编码模块设计

编码模块CODE .VHD将锁存器的8路锁存信号编码为8421BCD码,实体部分的端口共定义8个数据输入端口、4个数据输出端口。VHDL代码略。

2.4 显示译码驱动模块设计

显示译码驱动模块LEDDRV .VHD的输入均为8421BCD吗,分别是抢答选手号编码、倒计时高位值和倒计时低位值。显示译码控制器的输出为8位段码信号及3位LED选择信号。采用扫描译码形式,扫描时钟输入信号为512 Hz,还有解锁/锁存状态输入信号。

构造体部分以并行处理语句——进程(Process)语句为基本语句,分别以扫描时钟脉冲、信号n和信号v为敏感变量,当敏感变量发生变化时,进程被激活,顺序执行内部语句。

具体实现的VHDL代码如下:

2.5 锁存/解锁及定时控制模块设计

锁存/解锁及定时控制模块COUNT .VHD主要起锁存、主持人手动解锁及倒计时自动解锁控制作用。实体部分的端口共定义8个锁存数据输入端口、1个脉冲输入端口、1个主持人控制输入端口、8个数据输出端口(倒计时高、低位值各4位)、1个蜂鸣器输出端口。

构造体部分仍以并行处理语句——进程(Process)语句为基本语句,以采样脉冲、主持人控制复位为敏感变量,当敏感变量发生变化时,进程被激活,顺序执行内部语句。

具体实现的VHDL代码如下:

2.6 仿真验证

模块成功编译后可进行波形仿真,验证设计的正确性。首先建立波形文件,在波形文件中加入仿真所需的输入输出变量,并可将信号结点成组,方便查看仿真结果。然后选择仿真的时间间隔、仿真的时间长度,并合理设置输入变量的取值等。波形文件建好并存盘后,选择菜单“Max+plusⅡ”→“Simulator”,启动仿真操作,结束后观察仿真波形,进行设计验证。

图3为锁存/解锁及定时控制模块COUNT .VHD编译后的仿真波形COUNT .SCF,仿真的时间间隔(Grid Size)设置为25 ns,时钟CLK设置为每个间隔变化一次,即周期为50 ns,将仿真的时间长度(End Time)设置为5 μs以上,才能看到全部的倒计时状态。图3中设End Time为6 μs,从仿真波形看,输出各变量的值符合设计要求,验证COUNT.VHD代码设计的逻辑是正确的。

可按此仿真验证方法,依次对分频模块、锁存模块、编码模块及显示译码驱动模块进行波形仿真,验证各模块VHDL代码设计的正确性,过程从略。

2.7 CPLD内部顶层设计图的连接

在所有的内部功能模块成功编译并仿真验证后,即可进行CPLD内部顶层图的设计。选择菜单File→Create Default Symbol,依次由各内部功能模块生成相应的模块符号,并在图形方式下调用这些符号,放置CPLD所需的输入、输出端口根据图2所示的框图完成模块间的连接,组成CPLD内部的设计图,即CPLD内部顶层设计图。

2.8 芯片编程

CPLD内部设计的功能最终要与外部硬件电路配合才能实现,所以由设计输入文件编译产生的目标文件要编程下载到CPLD芯片中,且设计文件中必须包含与外部硬件电路接口的信息。因此,首先要指定器件的型号为EPM7128SLC84-15,再根据外部硬件的设计情况对CPLD输入输出引脚逐个进行锁定,完成后再次进行编译,编译无误后,就可将设计的目标文件编程下载到CPLD芯片中。经实际电路测试验证,达到了设计的要求。

3 系统设计优点

本文介绍的基于VHDL语言的倒计时抢答器,具有主持人手动解锁和倒计时自动解锁两种方式,实用性强,使用更加灵活方便。设计时采用了CPLD,仅用一片CPLD就取代了多片通用集成电路,大大减小了系统的体积。由于采用“自顶向下”模块化的设计方法,可以从一开始就控制系统的性能,保证了设计结果的正确性。与传统的设计方法相比,设计周期短,成本低。系统使用硬件描述语言VHDL编写源程序,其最大的优越性在于设计与器件无关,有良好的可移植性。

另外,在系统设计时,CPLD外部的硬件设计适当地留有冗余,如抢答开关阵列可多于8路,选手号数码显示可多留几个LED等,这样在系统调试成功后,可通过修改CPLD内部设计,方便地完成多于8路的抢答器设计,使系统具有良好的扩充性。

在进行系统PCB的硬件设计时充分考虑到兼容性,在同样一块PCB上只需要修改CPLD内部设计就可以完成抢答器或数字钟等的设计,充分体现了CPLD应用系统设计的灵活性。

此外,系统设计时选用了具有在线编程能力的芯片EPM7128SLC84-15,并在硬件设计中预留JATG口,当设计存在缺陷时,可以通过修改CPLD内部的设计,利用其在线下载能力,修正设计,使系统具有在线升级功能。

4 结束语

现代数字系统设计无疑是信息化的技术基础,随着大规模专用集成电路开发研制技术的发展而出现的硬件描述语言,彻底改变了传统数字电路的设计和实现方法。以CPLD/FPGA芯片为核心,以VHDL设计语言为开发手段,以EDA软件工具为平台,“自顶向下”的设计方法已成为现代数字系统设计的主流趋势。该方法使电子设计的核心转化为硬件描述语言的编程设计,使电路的硬件设计软件化,提高了设计的灵活性,降低了电路设计的复杂程度,从而大大缩短了设计周期,减少了设计费用,降低了设计风险,使开发的数字系统更趋智能化、集成化、微型化,并具良好的设计灵活性和可扩充性。

参考文献

[1]赵明富.EDA技术基础[M].北京:北京大学出版社,2007.

上一篇:宁夏省安全工程师安全生产:建筑施工扣件式钢管脚手架构配件要求模拟试题下一篇:大阅兵期间交通安全警示语有哪些