基于VHDL语言的8路抢答器控制系统设计

时间:2022-08-04 06:34:59

基于VHDL语言的8路抢答器控制系统设计

摘要:EDA技术的应用引起了电子产品系统开发的革命性变革。利用先进的EDA工具,基于硬件描述语言,借助CPLD(复杂的可编程逻辑器件),可以进行系统级数字逻辑电路的设计。本文以8路抢答器为例,介绍了在Max+plus II开发软件下,利用VHDL语言设计数字逻辑电路的过程和方法。

关键词:8路抢答器控制系统;EDA;CPLD;VHDL;仿真

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)05-11351-02

1 引言

随着电子技术的发展,可编程逻辑器件(PLD)的出现,使得电子系统的设计者利用EDA(电子设计自动化)软件,就可以独立设计自己的专用集成电路(ASIC)器件。可编程逻辑器件是一种半导体集成器件的半成品。在可编程逻辑器件的芯片中按一定方式(阵列形式或单元阵列形式)制作了大量的门、触发器等基本逻辑器件,对这些基本器件适当地连接,就可以完成某个电路或系统的功能。

8路抢答器控制系统是工厂、学校和电视台等单位举办各种智力竞赛等娱乐活动中经常使用的重要基础设备之一。目前设计抢答器的方法很多,例如用传统的PCB板设计、用PIC设计或者用单片机设计。而用VHDL可以更加快速、灵活地设计出符合各种要求的抢答器,优于其他设计方法,使设计过程达到高度自动化。本文介绍的八路数显抢答器基于VHDL语言、以EDA技术作为开发手段、采用CPLD(复杂的可编程逻辑器件)作为控制核心设计而成。与传统设计相比较,不仅简化了接口和控制,也提高了系统的整体性能和工作可靠性,具有电路简单、成本低廉、操作方便、灵敏可靠等优点。

2 设计思路与系统结构

2.1 8路抢答器控制系统的设计思路与功能

根据抢答要求,系统所需实现的功能如下:

(1)设计制作一个竞赛抢答器,共设8个组别每组控制一个抢答开关,分别为sl,s2,…,s8。

(2)设置主持人控制键Reset,用于控制整个系统清零和抢答有效控制。

(3)主持人发出开始命令,8人开始抢答。其中一人先按下抢答键,蜂鸣器发出鸣叫,数码显示该人号码,其他人再按键,系统不再响应,直至主持人按键清零,下一次抢答开始。

2.2 系统原理结构框图

根据以上设计思路与功能要求,设计系统结构框图,见图1所示。该系统共分六个组成部分:主持人控制电路、CPLD控制模块、脉冲振荡电路、8人(组)抢答电路、数码显示电路、蜂鸣器声响电路。

图中脉冲振荡电路用于产生标准时钟信号,为系统提供CLK信号;数码显示部分显示抢答成功者的组别号。控制部分是EDA设计的核心部分,用硬件描述语言(VHDL)来描述数字系统的结构、行为和功能,采用“自顶向下”设计方法,将电路的硬件设计转变为软件设计。

图1 8路抢答器控制系统结构框图

3 硬件设计

VHDL语言设计的出现从根本上改变了以往数字电路的设计模式,使电路由硬件设计转变为软件设计,使电子设计的核心转化为VHDL语言的编程设计,这样提高了设计的灵活性,使电路的设计复杂程度大大降低。

(1)主持人控制电路和8人抢答电路,每人(组)各设一个按键开关,分别为reset、sl,s2,…,s8,每个开关接一个电阻和一个电源Vcc,当按键按下为高电平有效;

(2)CPLD控制芯片采用Altera公司MAX7000S系列的EPM7128SLC84-15来实现;

(3)脉冲振荡电路,石英晶体振荡电路如图,c1、c2为微调电容;

(4)蜂鸣器声响电路。当BELL为高电平时,三极管导通,蜂鸣器发出声响。当BELL为低电平时,三极管截止,蜂鸣器不发声;

(5)数码显示采用共阴极7位二进制输入8字管。

4 基于VHDL的设计

VHDL是用来描述从抽象到具体级别硬件的工业标准语言,它是由美国国防部在20世纪80年代开发的HDL,现在已成为IEEE承认的标准硬件描述语言。VHDL支持硬件的设计、验证、综合和测试,以及硬件设计数据的交换、维护、修改和硬件的实现,具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用等优点。

VHDL主要用于描述数字系统的结构、行为和功能,其程序结构特点是将一个电路模块或一个系统分成实体(外部端口)和构造体(内部功能算法实现)两部分实现。对于一个电路模块或者数字系统而言,定义了外部端口后,一旦内部功能算法完成后,其他系统可以直接依据外部端口调用该电路模块或数字系统,而不必知道其内部结构和算法。VHDL的特点使得电子系统新的设计方法一一“自顶向下”设计方法更加容易实现。

图2 8路抢答器原理图

本设计在MAX+plusⅡ环境中进行,MAX+plusⅡ是美国ALTERA公司提供的FPGA/CPLD开发集成环境。MAX+plusⅡ界面友好,使用便捷,被誉为业界最容易的EDA软件。

下面详细论述使用MAX+plusⅡ软件设计8路抢答器控制系统的过程。

4.1 VHDL实体设计

端口部分共设计10个输入端口,8个输出端口。输入端口包括1个脉冲端口、1个主持人控制端口和8人抢答端口。输出端口包括1个蜂鸣器输出端口和8字管输出管端口。

8路抢答器实体部分的VHDL代码:

ENTITY barenqiangda IS

PORT(s: IN STD_LOGIC_VECTOR(7 downto 0);[8人抢答输入端口定义]

reset,clk: IN STD_LOGIC; [主持人复位和脉冲端口定义]

a: OUT STD_LOGIC_VECTOR(0 downto 6); [8字管输出端口定义]

bell: OUT STD_LOGIC);[蜂鸣器输出端口定义]

END barenqiangda;

4.2 VHDL构造体设计

8路抢答器实体部分以并行处理语句――进程(PROCESS)语句为基本语句,该程序以复位、脉冲和8人抢答答信号为敏感信号,当敏感信号发生变化时,进程被激活,顺序执行内部语句。

构造体部分VHDL代码:

4.3 芯片设置、编译、管脚设置

程序输入完成后然后选择用于编程的目标芯片:选择菜单“Assign”“Device”,窗口中的Device Family是器件序列栏,先在此栏中选择MAX7000S。然后选择7128SLC84-15器件,按OK,就可以进行编译了。经“MAX+PLUSE II”中的“Compiler”菜单编译,以验证设计结果是否符合要求,如果有问题,则返回原设计文件再次进行修改,直到正确为止。

编译无误后经“MAX+PLUSE II”中的“FLOORPLAN EDITOR”菜单,进行输入、输出管脚设置,将18个元件端口放置到EPM7128SLC84-15芯片适当的I/O口,并用手工调整按图2所示设置。

4.4 仿真

编译成功后进行仿真。首先建立波形文件。波形文件建好并存盘后。选择菜单“Max+plusII”“simulator”,启动仿真操作,结束后观察仿真波形(图3所示)。从仿真波形看,符合设计要求。

图3 逻辑功能仿真波形

4.5 下载实验

仿真结束后,就可将文件下载到芯片中。连接硬件系统后,通上电源,经“MAX+PLUSE II”中的“PROGRAMMER”菜单,调出编程器窗口。一切就绪后,按下编程器窗口中的“program”按钮,设计的内容就开始下载到CPLD芯片EPM7128SLC84-15中。经实际电路测试验证,达到了设计的要求。

5 结束语

VHDL语言设计的出现从根本上改变了以往数字电路的设计模式,使电路由硬件设计转变为软件设计,使电子设计的核心转化为VHDL语言的编程设计,这样提高了设计的灵活性,降低了电路的复杂程度,修改起来也很方便。并且整个设计很大一部分由电脑辅助来完成,大大缩短了设计周期,减少了设计费用,降低了设计风险。这种数字系统的设计可以直接面向用户需求,根据系统的行为功能要求,自上至下地逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件,体现了EDA的自动化特点。

参考文献:

[1]郭勇. EDA技术基础(第2版)[M]. 机械工业出版社,2005.314-320.

[2]刘开绪. 数字式抢答器的设计与实现[J]. 电子工程师.2005,9:69-71.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:基于Visual Basic的ASP组件的开发 下一篇:基于McCabe的软件复杂性度量与控制策略