实验报告
实验名称:VHDL实验 实验日期:2012年3月7日 学 院:信息工程学院 班 级:2009级通信工程一班 姓 名:沈晶晶 学 号:2009550607
数字式竞赛抢答器的VHDL设计
1、设计任务及要求: 设计任务:
(1)设计一个可容纳8组参赛的数字式抢答器,每组设一个按钮,供抢答使用。
(2)抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
(3)设置一个主持人“复位”按钮。
(4)主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,由指示灯显示抢答组的编号,同时扬声器发出2~3秒的音响。
扩展功能:
(5)设置一个计分电路,每组开始预制100分,由主持人计分,答对一次加10分,答错一次减10分。
设计要求:
(1) 采用VHDL语言编写程序,并在QUARTUS II平台中进行仿
真,下载到EDA实验箱进行验证。
(2) 编写设计报告,要求包括方案选择、程序清单、调试过程、
测试结果及心得体会。
(3) 设计时间和地点:两个星期,信息楼4楼EDA实验室。
定时抢答器的总体框图如图1所示,它由主体电路和扩展电路两部分构成,主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。扩展电路完成各选手的得分显示功能。
定时抢答器的工作过程是:接通电源时,主持人将开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯;抢答开始时,主持人将控制开关拨到“开始”位置,扬声器给出声响提示,抢答器处于工作状态,这时,抢答器完成以下工作:(1)优先编码器电路立即分辨出抢答者编号,并由锁存器进行锁存,然后由译码显示电路显示编号;(2)扬声器发出短暂声响,提醒主持人注意;(3)控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;(4)当选手将问题回答完毕,主持人操作计分开关,计分电路采用十进制加/减计数器、数码管显示。本轮抢答完毕,主持人操作控制开关,使系
统回复到禁止工作状态,以便进行下一轮抢答。
抢答器的VHDL代码: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SJJ IS
PORT(TEAM:IN STD_LOGIC_VECTOR(4 DOWNTO 0); RST,CLK:IN STD_LOGIC; JIFEN,S:IN STD_LOGIC;
LED:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CQ,CQ_H:OUT STD_LOGIC_VECTOR(3 downto 0); LIGHT:OUT STD_LOGIC_VECTOR(4 downto 0); BELL:OUT STD_LOGIC ); END;
ARCHITECTURE one OF SJJ IS
SIGNAL output:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL d:STD_LOGIC_VECTOR(4 downto 0); SIGNAL lock:STD_LOGIC:='0'; SIGNAL ring:STD_LOGIC;
BEGIN
QD:PROCESS(RST,CLK,TEAM) Begin
IF RST='1' THEN OUTPUT<=\d<=(OTHERS=>'0'); lock<='0';
ElSIF CLK'EVENT AND CLK='1' THEN IF
TEAM=\
output<=\
ELSIF
TEAM=\
output<=\
ELSIF
TEAM=\
output<=\
ELSIF
TEAM=\
output<=\
ELSIF
TEAM=\
output<=\
END IF; END IF; END PROCESS;
XSZ:PROCESS(lock,RST) BEGIN
THEN
THEN
THEN
THEN
THEN