VHDL四人抢答器Word下载.docx

上传人:b****8 文档编号:22654085 上传时间:2023-02-05 格式:DOCX 页数:8 大小:17.14KB
下载 相关 举报
VHDL四人抢答器Word下载.docx_第1页
第1页 / 共8页
VHDL四人抢答器Word下载.docx_第2页
第2页 / 共8页
VHDL四人抢答器Word下载.docx_第3页
第3页 / 共8页
VHDL四人抢答器Word下载.docx_第4页
第4页 / 共8页
VHDL四人抢答器Word下载.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

VHDL四人抢答器Word下载.docx

《VHDL四人抢答器Word下载.docx》由会员分享,可在线阅读,更多相关《VHDL四人抢答器Word下载.docx(8页珍藏版)》请在冰豆网上搜索。

VHDL四人抢答器Word下载.docx

当20秒倒计时后无人抢答显示超时,并报警。

系统设计框图如图1所示。

图1整体设计框图

三、VHDL程序实现

1、正常抢答程序及仿真

此模块包括正常抢答第一信号鉴别与显示抢答台号,并发生声音提示。

其中S1,S2,S3,S4为抢答按钮,当对应的按钮信号为0时表示有抢答信号;

K为主持人按钮,按下复位键K时,K=0,系统清零;

G为报警信号。

其VHDL源程序如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityqiangdais

port(S1,S2,S3,S4:

instd_logic;

--输入:

表示4个人,为0表示有抢答

K:

--主持人抢答开始键

G:

outstd_logic;

--报警信号

ledag:

outstd_logic_vector(6downto0);

Dout:

outstd_logic_vector(3downto0));

--抢答结果显示

endqiangda;

architecturebehaveofqiangdais

signalEnable_Flag:

std_logic;

--允许抢答控制变量,为1表示允许抢答

signalS:

std_logic_vector(3downto0);

signalD:

begin

process(S1,S2,S3,S4,K)--允许抢答控制

begin

S<

=S1&

S2&

S3&

S4;

If(K='

1'

)then

Enable_Flag<

='

;

elsif(S/="

1111"

0'

endif;

endprocess;

process(S1,S2,S3,S4,K)--抢答结果显示

if(K='

)then

D<

="

0000"

Elsif(Enable_Flag='

if(S1='

D(0)<

G<

elsif(S2='

D

(1)<

elsif(S3='

D

(2)<

elsif(S4='

D(3)<

dout<

=d;

process(d)--显示抢答成功者号码

casedis

when"

=>

ledag<

0111111"

0001"

0000110"

0010"

1011011"

0100"

1001111"

1000"

1100110"

whenothers=>

0000000"

endcase;

endbehave;

以上VHDL程序的系统框图如图2所示。

图2抢答部分框图

通过MAX+PLUSⅡ软件仿真结果如图3所示。

从图中可看出S1与S2选手抢答情况,在K为高电平时,S1选手为低电平,抢答成功,报警信号G为低电平,给出报警信号,同时七段数码管译码为06H,显示1。

图3抢答部分仿真图

2、抢答倒计时程序

此模块为抢答20s倒计时程序,在主持人按下按钮K后此模块即开始工作,在20s倒计时完后会有声音提示,G为声音报警信号。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCOUNTIS

PORT(CLK,Enable_Flag:

INSTD_LOGIC;

H,L:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

G:

OUTSTD_LOGIC);

--声音报警

ENDCOUNT;

ARCHITECTURECOUNT_ARCOFCOUNTIS

BEGIN

PROCESS(CLK,Enable_Flag)

VARIABLEHH,LL:

STD_LOGIC_VECTOR(3DOWNTO0);

IFCLK'

EVENTANDCLK='

THEN

IFEnable_Flag='

IFLL=0ANDHH=0THEN

ELSIFLL=0THEN

LL:

="

1001"

HH:

=HH-1;

ELSE

=LL-1;

ENDIF;

ELSE

G<

H<

=HH;

L<

=LL;

ENDPROCESS;

ENDCOUNT_ARC;

其模块结构图如图4所示:

图4倒计时结构图

3、超前犯规抢答程序及仿真

此模块为违规电路。

当抢答者在主持人复位系统之前就已按下抢答按钮,即当RESET=0时,有抢答信号出现,则Y=11表示某组违规,当RESET=1时,显示违规组别。

其中K为主持人按钮,S1,S2,S3,S4为抢答按钮,R1,R2,R3,R4为对应组别犯规红色显示灯。

其VHDL源程序如下:

LIBRARYieee;

useieee.std_logic_unsigned.all;

ENTITYwgIS

PORT(K:

INstd_logic;

S1,S2,S3,S4:

R1,R2,R3,R4:

OUTstd_logic;

--红色灯指示超前抢答台号

y:

OUTstd_logic_VECTOR(1DOWNTO0));

ENDwg;

ARCHITECTUREaOFwgIS

SIGNALTEMP1:

STD_LOGIC;

SIGNALTEMP2:

STD_LOGIC_VECTOR(1DOWNTO0);

TEMP1<

=S1ORS2ORS3ORS4;

TEMP2<

=K&

TEMP1;

process(TEMP2)--显示抢答成功者号码

caseTEMP2is

01"

Y<

11"

10"

00"

when"

endcase;

if(K<

if(S1='

R1<

R2<

R3<

R4<

ENDa;

通过VHDL程序可生成其对应的框图如图5所示:

图5犯规部分框图

同样在MAX+PLUSⅡ环境下可得到其对应的仿真分析图如图6所示。

从仿真分析可看出在为高电平前,S1按钮有超前抢答低电平出现,故Y=11表示有超前抢答产生,同时R1为低电平,对应S1选手的红灯亮,指示其违规抢答。

图6犯规模块仿真图

四、总结

由以上描述及仿真结果可知,本次抢答器的设计在理论上基本上满足了设计任务的要求。

通过这次课程设计的实践,弥补了平时仅仅学习理论知识的不足,在实践中发现了许多问题,这些问题的解决,加深了对所学知识的理解,收获颇丰。

在FPGA试验箱上下载运行了正常抢答部分程序,能够正常抢答与显示报警功能。

此部分的引脚分配图如图7所示:

由于是我的第一次系统设计电路,虽然参照了一些电路程序,毕竟掌握水平有限,在设计成的交通灯中可能存在着一些问题与不足,希望教师给予指正。

图7引脚分配图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1