EDA课程设计四路抢答器.docx
《EDA课程设计四路抢答器.docx》由会员分享,可在线阅读,更多相关《EDA课程设计四路抢答器.docx(11页珍藏版)》请在冰豆网上搜索。
EDA课程设计四路抢答器
EDA课程设计报告
报告题目:
四路抢答器
作者所在系部:
电子系
作者所在专业:
微电子技术
作者所在班级:
XXXXXXXXXXXXX
作者姓名:
XXXXXXXXXXXXXX
指导教师姓名:
XXXX
完成时间:
XXX-XX-XX
内容摘要
抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者可以分为若干组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。
当第一个人按下按键后,则在显示器上显示该组的号码,对应的灯亮,同时电路将其他各组按键封锁,使其不起作用。
因此要完成抢答器的逻辑功能,该电路应包括抢答器鉴别模块、抢答器计数模块、译码模块、计数模块。
关键词:
抢答鉴别译码计数
Abstract
Responderistheanswerforthequizparticipantstoanswerinthedesignwhenaprioritydecisioncircuit,andtheracecanbedividedintoseveralgroups,answerineachgrouponthehostissuesraisedintheshortestpossibletimetomakejudgments,andpresstheanswerinanswerkey.Afterpressingthebuttonwhenthefirstperson,thenthedisplayshowsthenumberofthegroup,thecorrespondinglights,whileothergroupswillbekeycircuitblock,itdoesnotwork.Iftheanswerintime,noanswerin,thealarmlights.Answeringquestions,allthekeysfromthehosttorestoreandre-startthenextroundoftheResponder.Sotocompletetheansweringdevicelogicfunctions,thecircuitshouldincludeResponderidentificationmodule,Respondercountingmodule,alarmmodule,decodingmodule,frequencymodule.
KEY:
ResponderIdentificationCount
一、设计要求
1.抢答器同时供4名选手或4个代表队比赛,分别用4个按钮p0~p3表示。
2.设置一个系统使能开关kaishi,该开关由主持人控制。
3.抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED和数码管上显示,同时提示灯亮。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
二、方案设计与论证
1、概述
将该任务分成三个模块进行设计,分别为:
抢答器鉴别模块、计数模块、译码模块。
2、抢答器鉴别模块:
在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余的抢答信号封锁的功能。
其中有四个抢答信号s0、s1、s2、s3;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号warm。
3、抢答器计数模块:
在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行20秒的倒计时,并且在20秒倒计时后无人抢答显示超时并报警。
其中有抢答时钟信号clk1;系统复位信号rst;抢答使能信号start;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。
4、译码模块:
在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。
5、顶层文件:
在这个模块中是对前五个模块的综合编写的顶层文件。
三、单元电路设计
(一)抢答鉴别模块
1.VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityqiangdais
port(p:
instd_logic_vector(3downto0);
en:
instd_logic;
clk:
instd_logic;
y:
outstd_logic_vector(3downto0));
endqiangda;
architectureaofqiangdais
signalb:
std_logic_vector;
begin
process(p,en,clk)
begin
if(clk'eventand(clk='1'))then
if(en='1')then
casepis
when"0001"=>
y<="0001";
when"0010"=>
y<="0010";
when"0100"=>
y<="0100";
when"1000"=>
y<="1000";
whenothers=>y<="0000";
endcase;
else
y<="0000";
endif;
endif;
endprocess;
enda;
2.抢答鉴别仿真图
3.抢答鉴别元件图
(二)计数模块
1.VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
entitytenis
port(clk:
instd_logic;
set:
instd_logic;
data:
inintegerrange0to9;
count:
outintegerrange0to9;
carry:
outstd_logic);
endten;
architectureddoftenis
signaltmp:
integerrange0to9;
begin
process(clk,set,data)
begin
if(set='1')then
tmp<=data;
elsif(clk'eventandclk='1')then
if(tmp<9)then
tmp<=tmp+1;
carry<='0';
elsif(tmp=9)then
tmp<=0;
carry<='1';
endif;
endif;
endprocess;
count<=tmp;
enddd;
2.计数仿真图
3.计数元件图
(四)七段译码器模块
1.VHDL源程序
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITYdecoder3_8IS
PORT(
A,B,C,D:
INSTD_LOGIC;--KEY1键和KEY2键和KEY3键作为AbC信号的输入
CON:
INSTD_LOGIC;
Y:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));--LED灯作为输出显示状态
ENDdecoder3_8;
ARCHITECTUREfunOFdecoder3_8IS
SIGNALindata:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
indata<=D&C&B&A;
encoder:
PROCESS(indata)
BEGIN
IF(CON='1')THEN
CASEindataIS
WHEN"0000"=>Y<="11111110";
WHEN"0001"=>Y<="11111101";
WHEN"0010"=>Y<="11111011";
WHEN"0011"=>Y<="11110111";
WHEN"0100"=>Y<="11101111";
WHEN"0101"=>Y<="11011111";
WHEN"0110"=>Y<="10111111";
WHEN"0111"=>Y<="01111111";
WHEN"1000"=>Y<="01111111";
WHEN"1001"=>Y<="01111111";
WHENOTHERS=>Y<="XXXXXXXX";
ENDCASE;
ENDIF;
ENDPROCESSencoder;
ENDfun;
2.译码元件仿真
3.译码元件图
(六)顶层文件
1.仿真图:
2.QDQ_1主电路图连线
四锁定引脚及下载
1.选择锁定引脚,再重新编译一次。
在编程窗的Mode中选择ActiveSerialprogramming编程模式,打开编程文件,选中QDQ.pof,并选中打钩前3个编程项目,在ED2板上选择PROG模式,然后下载。
2.锁定引脚:
时钟信号clkN2
发光二极管LEDRO-LEDR3(AE23.AF23.AB21.AC22)
数码管num0-num6(AB12.AC12.AD11.AE11.V14.V13)
ta0-ta6(AB23.V22.AC25.AC26.AB26.AB25.Y24)
tb0-tb6(Y23.AA25.AA26.Y26.Y25.U22.W24)
开关kaishi
AF14
SW0-SW3(N25.N26.P25.AE14)
SOUNDAA14
STARTAD13
STOPAC13