EDA抢答器设计.docx

上传人:b****2 文档编号:1399534 上传时间:2023-04-30 格式:DOCX 页数:8 大小:46.38KB
下载 相关 举报
EDA抢答器设计.docx_第1页
第1页 / 共8页
EDA抢答器设计.docx_第2页
第2页 / 共8页
EDA抢答器设计.docx_第3页
第3页 / 共8页
EDA抢答器设计.docx_第4页
第4页 / 共8页
EDA抢答器设计.docx_第5页
第5页 / 共8页
EDA抢答器设计.docx_第6页
第6页 / 共8页
EDA抢答器设计.docx_第7页
第7页 / 共8页
EDA抢答器设计.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EDA抢答器设计.docx

《EDA抢答器设计.docx》由会员分享,可在线阅读,更多相关《EDA抢答器设计.docx(8页珍藏版)》请在冰点文库上搜索。

EDA抢答器设计.docx

EDA抢答器设计

EDA实训报告

 

班级:

17电子信息工程技术二班

 

同组:

彭元毛张贵萍王子文

 

一.EDA设计要求

抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者可以分为若干组,抢答是各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。

当第一人按下按键后,则在显示器上显示该组的号码,对应的灯亮,同时电路将其他各组按键封锁,使其不起作用。

抢答者回答正确加分,回答错误则减分。

若抢答时间内无人抢答,则报警灯亮。

回答完问题后,有主持人将所有按键恢复,重新开始下一轮抢答。

因此要完成抢答器的逻辑功能,该电路应包括抢答器鉴别模块、抢答器计数模块、报警模块、译码模块、分频模块、计分模块。

(一).抢答器鉴别模块

在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余的抢答信号封锁的功能。

其中有四个抢答信号s0、s1、s2、s3;抢答状态显示信号states;抢答与警报时钟信号clk0;系统复位信号rst;警报信号warm。

(二).抢答器计时模块

在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行20秒的倒计时,并且在20秒倒计时后无人抢答显示超时并报警。

其中有抢答时钟信号clk1;系统复位信号rst;抢答使能信号start;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。

(三).报警模块

该模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内无人抢答或是计数到时蜂鸣器开始报警,计数停止信号stop;状态输出信号alm;计数脉冲clk。

(四).译码模块

在这个模块中主要实现抢答过程中将BCD码转换成7段的计时功能。

(五).分频模块

在这个模块中主要实现抢答过程中所需的时钟信号。

(六).计分模块

在计分电路的设计中,按照一般的设计原则,按一定数进制进行加减。

由于此设计要先预置100分,所以可以设计rest开关,当它为高电平的时候就进行预置,然后为低电平的时候,有主持人控制ADD与ACC两个开关对抢答者做出的回答进行加减分判断。

预置数100分,就由AA0、AA1、AA2控制个、十、百位信号,因为个位一直为零,所以就将它一直设置成低电平,然后当十位为“9”的时候,向百位进位,百位就加“1”,减分的时候,当十位为“0”的时候,就向百位借“1”。

二.程序代码

(一).抢答器鉴别模块代码、仿真

modulejianbie(clk0,rst,key,s0,s1,s2,s3,states,led,warm,buzz);

inputclk0,rst,key,s0,s1,s2,s3;

output[6:

0]states;

output[3:

0]led;

outputwarm;

outputbuzz;

regEnFlat=1'b1;

reg[3:

0]states=4'b0000;

reg[3:

0]led=4'b1111;

regspeaker;

regwarm=1'b1;

regbuzz;

integeri;

always@(posedgeclk0)

begin

if(key==1)

begin

if(s0==0)

beginstates=4'b0001;warm=1'b0;end

if(s1==0)

beginstates=4'b0010;warm=1'b0;end

if(s2==0)

beginstates=4'b0011;warm=1'b0;end

if(s3==0)

beginstates=4'b0100;warm=1'b0;end

end

if(key==1'b0)

if(EnFlat==1'b1)

begin

if((s0==1'b0)&&(EnFlat==1'b1))

begin

led=4'b1110;

states=4'b0001;

EnFlat=1'b0;

speaker=1'b1;

end

elseif((s1==1'b0)&&(EnFlat==1'b1))

begin

led=4'b1101;

states=4'b0010;

EnFlat=1'b0;

speaker=1'b1;

end

elseif((s2==1'b0)&&(EnFlat==1'b1))

begin

led=4'b1011;

states=4'b0011;

EnFlat=1'b0;

speaker=1'b1;

end

elseif((s3==1'b0)&&(EnFlat==1'b1))

begin

led=4'b0111;

states=4'b0100;

EnFlat=1'b0;

speaker=1'b1;

end

end

if(rst)

begin

EnFlat=1'b1;

led=4'b1111;

states=3'd0;

warm=1'b1;

speaker=1'b0;

end

end

always@(posedgeclk0)

begin

if(speaker==1)

begin

if(i<25000000)beginbuzz<=1;i<=i+1;end

elsebuzz<=0;

end

elsebeginbuzz<=0;i<=0;end

end

endmodule

图2.1.1鉴别模块仿真

(二)、抢答器计时模块代码、仿真

modulejishi(clk_1s,ta,tb,chaoshi,start,block,rst,stop);

inputclk_1s,start,block,rst,stop;

outputreg[3:

0]ta,tb;

outputregchaoshi;

reg[5:

0]ji20;

always@(posedgeclk_1s)

begin

if(start==0)

begin

ji20=6'd20;

ta=4'd0;

tb=4'd2;

end

elseif(!

block)

begin

if(ji20==0)

begin

ta=0;

tb=0;

chaoshi=1;

end

elseif(ji20<11)

begin

ji20=ji20-6'b1;

ta=ji20;

tb=4'd0;

end

else

begin

ji20=ji20-6'b1;

ta=ji20-6'd10;

tb=4'd1;

end

if(rst)

begin

ji20=6'd20;

ta=4'd0;

tb=4'd2;

chaoshi=0;

end

end

end

图2.2.1抢答器计时仿真

endmodule

(三).报警模块代码、仿真

modulebaojing(stop,alm,clk,fmq,warn);

inputstop,clk,warn;

outputregalm,fmq;

always@(posedgeclk)

begin

alm<=0;

fmq<=0;

if(warn&&!

stop)

begin

alm<=1;

fmq<=1;

end

end

endmodule

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2