1 / 12
文档名称:

基于VHDL的四路抢答器设计_课程论文.doc

格式:doc   页数:12
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于VHDL的四路抢答器设计_课程论文.doc

上传人:799474576 2013/7/31 文件大小:0 KB

下载得到文件列表

基于VHDL的四路抢答器设计_课程论文.doc

文档介绍

文档介绍:《CPLD/FPGA设计》课程论文(设计)
题目:基于VHDL的四路抢答器设计
学生姓名:
学号:
院系:
班级:
任课教师:
二O一二年十二月一日
基于VHDL的四路抢答器设计

摘要:为了满足当前众多竞赛需求,本文提出了一种基于VHDL的四路抢答器设计,通过CPLD/FPGA器件便捷的实现抢答功能。本设计由抢答鉴别模块、分频模块、计时模块、报警模块、数码管显示模块组成,计时模块在抢答开始时进行倒计时,报警模块分别在开始抢答、抢答时间内有人抢答和抢答时间到的时候报警。本设计在QuartusII ,通过分析仿真结果,可以准确的完成预定功能和要求。
关键词:四路抢答器;VHDL;QuartusII ;CPLD
引言:抢答器作为一种电子产品,早已广泛应用于各种竞赛的场合,是竞赛中一种常用的装置。抢答器是一种数字电路,实现方法也有很多种,可以用组合和时序逻辑电路直接实现,也可以通过单片机控制等实现,在这里,我们使用CPLD/FPGA器件去简单实现抢答电路,电路的设计是基于VHDL硬件描述语言的,这也是CPLD/FPGA器件的一种典型应用。
设计功能:
一个抢答器必须能够准确判断出第一位抢答者,并且通过数码管显示让人们得知谁是抢答成功者。抢答有一个时间限制,让抢答者在规定时间内抢答,所设计的抢答器需要抢答鉴别、计时、数码管显示、报警等模块,具体设计要求如下:
(1)抢答器可容纳四组选手,并为每组选手设置一个按钮使用,为主持人设置两个控制按钮,分别实现控制系统复位(en)、开始抢答(start)功能。
(2)主持人按start键开始每一题的抢答,蜂鸣器响表示抢答开始,同时启动10秒抢答倒计时,剩余时间通过数码管进行显示。
(3)在倒计时内若蜂鸣器响,则表示有人抢答,不允许其他选手抢答。
(4)若在抢答倒计时内无人抢答,则蜂鸣器响表示抢答时间过,不允许选手抢答。

码管显示
结构框图:
报警


答鉴别

抢答计时10S
1
2
3
4
start
en
分频
clk
各模块介绍及程序:
(1)抢答鉴别模块
该模块的功能是在主持人按下开始抢答之后,根据4位选手的按键快慢,鉴别出谁应该获得抢答权。在主持人按开始前选手按下按键,不能抢答,开始后有人已经优先获得抢答权,其他3位选手按下按键没有作用。
输入信号:四位选手的按键情况,表示为一个数组“XXXX”,主持人的start信号
输出信号:选手编号,表示哪一位选手获得抢答权
若输出为0,表示没有人抢答,输出为1,表示1号选手获得抢答权,输出为2,表示2号选手获得抢答权,输出为3,表示3号选手获得抢答权,输出为4,表示4号选手获得抢答权。
VHDL程序如下:
library ieee;
use ;
use ;
entity qiang is
port(start:in std_logic;
xuan:in std_logic_vector(3 downto 0);
xuanout:out integer range 0 to 9);
end qiang;
architecture behave of qiang is
signal suo:std_logic:='0';
begin
process(start,xuan)
begin
if(start'event and start='1') then
suo<='1';
end if;
if(suo='1') then
case xuan is
when "0001"=>
xuanout<=1;
suo<='0';
when "0010"=>
xuanout<=2;
suo<='0';
when "0100"=>
xuanout<=3;
suo<='0';
when "1000"=>
xuanout<=4;
suo<='0';
when others=>
xuanout<=0;
suo<='1';
end case;
end if;
end process;
end behave;
(2)分频模块
该模块的主要功能是将系统时钟通过分频,可以提供周期为1S的脉冲,为抢答计时(10S)模块提供时钟。
输入信号:100Hz的时钟信号clk
输出信号:1Hz的分频后时钟信号clkout
VHDL程序如下:
library ieee;
use ieee.

最近更新