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

名称:4路限时抢答器设计Verilog代码VIVADO仿真(文末获取)

软件:VIVADO

语言:Verilog

代码功能:

基本功能

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

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

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

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

4路限时抢答器.png

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
源代码

点击下方的公众号卡片获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值