没有合适的资源?快使用搜索试试~ 我知道了~
首页关于四人抢答器的VHDL程序设计
关于四人抢答器的VHDL程序设计

此课程设计是关于EDA的课程设计,侧重点是利用VHDL语言设计一个四人抢答器,而且附录部分还有设计的逻辑电路图,以及99倒时计数器的VHDL和逻辑电路图的设计部分
资源详情
资源评论
资源推荐

智力竞赛抢答计时器的设计
摘要
现代生活中,数字电路产品与我们接触的是越来越平凡了,包括计算机、电子表、智能
仪器表及其它很多领域中,它给我们带来的不仅是工作上的方便,而且也给我们的生活娱
乐添滋加彩。这次 EDA 课程设计中,我做的是四人抢答器,基于设计要求,本文主要是从
锁存器及计数器功能和 VHDL 语言着手,但侧重点在用 VHDL 语言上。首先简单介绍一
下数字电路、EDA、VHDL 等的有关知识,其次介绍了一下设计要求和我的设计构想,再
运用 VHDL 语言特点,写出程序代码,最后是一些总结和抢答器部分实验电路图与倒计时
设计的电路图和用 MAX+PLUSII 软件仿真的结果部分图附录等部分。
关键词:置位;复位;锁存;计数器;七段显示器;MAX+PLUSII;译码器
目 录
摘要:………………………………………………………1
引言:…………………………………………………………2
一、设计任务及要求:………………………………………2
二、题目分析与整体构思:…………………………………2
三、VHDL 程序设计:……………………………………··3
四、心得体会及模型评价与推广:…………………………5
附录:………………………………………………………6
参考文献:…………………………………………………10
1

智力竞赛抢答计时器的设计
引 言
数字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数字信号完成
对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻辑处理等
功能,数字电路可分为组合逻辑电路和时序逻辑电路。
EDA 技术又称电子设计自动化,它是为解决自动控制系统设计而提出的,从 70 年代经历
了计算机辅助设计(CAD),计算机辅助工程( CAE),电子系统设计自动化( ESDA)3
个阶段。前两个阶段的 EDA 产品都只是个别或部分的解决了电子产品设计中的工程问题;第
三代 EDA 工具根据工程设计中的瓶颈和矛盾对设计数据库实现了统一管理,并提出了并行设
计环境概念,提供了独立于工艺和厂家的系统级的设计工具。
VHDL ( VERY HIGH SPEED INTEGRATED CIRCUIT HARDWARE DESCRIPTION
LANGUAGE)语言最早是有美国国防部提出的,它支持行为领域和结构领域的硬件描述,
并且可以从最抽象的系统级一直到最精确的逻辑级,在描述数字系统时,可以使用前后一
致的语义和语法跨越多个层次,并且使用跨越多个级别的混合描述模拟该系统。因此,它
可以由高层次行为描述子系统及低层次详细实现子系统所组成的系统模拟。它有两个版本
IEEEStd1076-1987[LRM87]和 IEEEStd1076-1993[LRM93],他们并不完全兼容,但做一些修
改就可以兼容了。
许多公司都为 VHDL 开发出了编译和仿真软件,其中 Max+plusII(或写成 Maxplus2,或
MP2) 是 Altera 公司推出的的第三代 PLD 开发系统(Altera 第四代 PLD 开发系统被称为:
QuartusII,主要用于设计新器件和大规模 CPLD/FPGA).使用 MAX+PLUSII 的设计者不需精
通器件内部的复杂结构。设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语
言)建立设计,MAX+PLUSII 把这些设计转自动换成最终所需的格式。其设计速度非常快。
对于一般几千门的电路设计,使用 MAX+PLUSII,从设计输入到器件编程完毕,用户拿到
设计好的逻辑电路,大约只需几小时。设计处理一般在数分钟内内完成。特别是在原理图
输入等方面。
一、设计任务及要求:
本设计要求做一个四人抢答器,并要求当有某一参赛者首先按下抢答开关时,相应
显示灯亮并报警,此时抢答器不再接受其他输入信号。电路具有回答问题时间控制功能。
要求回答问题时间小于等于 100s(显示 0-99),时间采用倒计时方式。当到达限定时间,
发出警告。
二、题目分析与整体构思:
对于一个四人抢答器,四个选手在电路中的起始控制作用是一样的,当裁判员宣布开
始抢答时,谁先按下他前面的控制开关,他的灯就会亮,而且这时其他人再怎么按,也就
2

智力竞赛抢答计时器的设计
不会亮了,说明每个人对其他人都有一个先发制人的作用,及每个人都在时间控制下,能
锁存住其他选手的功能。当有一个指示灯亮了,计数器就开始从 99 开始倒计时,到 0 时
还要警告声,这样计数器开始工作就是在指示灯的指示下工作。
可以设四个人分别为输入端 A,B,C,D;因为四个输入端在 VHDL 中,要求四个输
入端应该是相等优先级别,但只要有一个输入端接入高电平时,就给其他信号一个反馈,
使得他们的输入无效,及他们对应的指示灯不亮;所以我们可以也并行语句,让它们分为
四个进程(process),同时也要求每个进程中都有反馈信号传给其他进程语句中,这样就
可以完成抢答器基础部分了,设计的逻辑电路图部分见附录图一。其次就是计数器部分,
当有人开始进入回答部分,指示灯亮,同时计数器开始工作,并要求是倒计时方式并七段
显示出,通过这些消息我们可知,指示灯即是计数器开始倒计时的信号,本设计中采用了
元件例化(component)语句,在抢答器中给个选手已经开始回答了的信号插口,给计数器
中的置零输入端,这样就基本上完成了设计,计数器采用倒计时方式,实现方式也很简单,
只要给他们最初赋值为 99,而后在每个上升沿来到减一,具体设计情况还是看看程序设计
部分吧,在附录部分还有这个 99 倒时计数器的逻辑电路图。
三、VHDL 程序设计:
根据上面的分析可知,我们只要用四个进程语句,就可以处理好四位选手的相互限制的
问 题 , 再 将 四 个 指 示 灯 用 相 与 来 控 制 计 数 器 的 置 零 端 set , 再 用 一 个 元 件 话 语 句
component 连接计数器,下面是具体的抢答器的 VHDL 语言代码:
代码中 A、B、C、D 分别代表四位参赛选手,RESET 是主裁判员的控制开关,CLK 是
计数器的时钟信号,MUSIC 是警告的控制开关,COUNT1 和 CONT2 代表的是 99 倒计时
的七段显示二进制码直接与 LED 显示器连接,ALIGHT,BLIGHT,CLIGHT,DLIGHT 分别代
表四位选手的显示灯。
library ieee;
use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Qiang_DA is
port(A,B,C,D,RESET:in std_logic;
CLK:in std_logic;
MUSIC:out std_logic;
COUT1:out std_logic_vector(6 downto 0);
COUT2:out std_logic_vector(6 downto 0);
ALIGHT,BLIGHT,CLIGHT,DLIGHT:out std_logic);
end;
architecture one of Qiang_DA is
component COUNTER99
port(SET,CLK:in std_logic;
MUSIC:out std_logic;
COUT1:out std_logic_vector(6 downto 0);
COUT2:out std_logic_vector(6 downto 0));
end component;
signal A1,B1,C1,D1:std_logic;
signal A2,B2,C2,D2:std_logic;
signal SET:std_logic;
3
剩余10页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论9