• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

4路限时抢答器设计Verilog代码VIVADO仿真

08/29 09:04
288
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240919162JVK.doc

共1个文件

名称:4路限时抢答器设计Verilog代码VIVADO仿真

软件:VIVADO

语言:Verilog

代码功能:

基本功能

1.该抢答器具有主持人主控开始和复位功能。当主持人控制的“允许″按钮有效时,选手抢答能进行抢答,否则无法抢答;当主持人控制的“复位”按钮有效时,抢答选手编号和抢答时间回到原始值。

2.该抢答器具有4路抢答选手顺序判决和锁存功能。主持人允许抢答开始后,抢答器对选手的抢答优先顺序进行判决,当有选手抢答有效时,抢答器锁存该选手的编号并显示,其余选手此后无法抢答,直至主持人复位并允许下一轮抢答。

3.该抢答器具有抢答限时功能。主持人允许抢答开始后,抢答选手需在5秒内完成抢答,由倒计时器计时抢答时间。在设定的抢答时间内当有选手抢答器,抢答器倒计时停止并显示抢答时的时间,直至主持人复位并允许下一轮抢答;在设定的抢答时间内当没有选手抢答时,抢答器倒计时至0时停止计时,此后所有选手无法抢答,直至主持人复位并允许下一轮抢答。

4.使用两位数码管分别显示选手编号和倒计时值,复位后选手编号显示数字0,倒计时器显示数字。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1、工程文件

2、程序文件

3、程序编译

4、RTL图

5、Testbench

6、仿真图

整体仿真图

分频模块

控制模块

显示模块

部分代码展示:

//抢答器控制模坿
module?responder_ctrl
(
input?clk,//时钟
input?reset,//低电平有敿
input?clk_1Hz,//1hz
input?key_main_in,//主持人主掿
input?key_1_pos,//抢答按键输入1
input?key_2_pos,//抢答按键输入2
input?key_3_pos,//抢答按键输入3
input?key_4_pos,//抢答按键输入4
output?[2:0]?cur_state,//当前状态
output?[7:0]?time_down,//倒计
output?reg?[3:0]?responder_num//抢答指示1~6
);
parameter?s_idle=3'd0;//空闲状
parameter?s_start=3'd1;//
parameter?s_timedowm=3'd2;//倒计
parameter?s_qiangda=3'd3;//抢答
parameter?s_end=3'd4;//抢答结束
reg?[2:0]?state=3'd0;
reg?time_over=0;//倒计时结束指示
assign??cur_state=state;
always@(posedge?clk?or?negedge?reset)
if(~reset)
state<=s_idle;//空闲
else
case(state)
s_idle:
if(key_main_in)//主控,按键
state<=s_start;//
else
state<=s_idle;//空闲
s_start:
state<=s_timedowm;//倒计时
s_timedowm:
state<=s_qiangda;//倒计时
s_qiangda:
if(key_1_pos?|?key_2_pos?|?key_3_pos?|?key_4_pos)
state<=s_end;//结束
else?if(time_over==1)//倒计时
????state<=s_end;//倒计时结束
else
state<=s_qiangda;//抢答
s_end:
if(key_main_in)//主控
state<=s_start;//
else
state<=s_end;//结束
default:state<=s_idle;//空闲
endcase
//always@(posedge?clk?or?negedge?reset)
//if(~reset)
//beep<=0;//复位
//else?if(state==s_beep)
//beep<=1;//输出报警信号
//else
//beep<=0;
reg?[7:0]?down_cnt=8'd5;//倒计时计敿
always@(posedge?clk)
if(state==s_timedowm?||?state==s_qiangda)begin
if(down_cnt==8'd0)begin
down_cnt<=8'd0;
time_over<=1;//倒计时
end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1098

  • 2-240919162JVK.doc
    下载

相关推荐