扫码加入

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

四路智能抢答器设计Verilog代码Quartus仿真

1小时前
82
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-241125194911425.doc

共1个文件

名称:四路智能抢答器设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

基于 VerilogHDL的四路智能抢答器的设计

设计一个4人参加的智力竞赛抢答计时器该条统息有回答问题时间控制的功能要求回答问题时间小于等于100秒(显示为0~99)时间显示采用倒计时方式当达到限定时间时,发出声响以示警告;当有某一参费者首先按下抢答开关时,相应显示灯养并伴有喊此时抢答器本再接受其他输入信号整体结构框图如图4所示

四路智能抢答器.jpg

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

 

演示视频:

设计文档:

1. 工程文件

Quartus9.0版本

 

2. 程序文件

 

 

 

3. 程序编译

 

4. RTL图

 

5. 仿真文件(VWF文件)

 

6. 仿真图

仿真设置

仿真图

 

 

 

 

部分代码展示:

//抢答器控制模块
module qiangdaqi (
input clk,//100Hz
input reset,//复位高电平有效
input host_key,//主持人按键
input key_1,//抢答按键,所有key都是高电平有效
input key_2,//抢答按键,所有key都是高电平有效
input key_3,//抢答按键,所有key都是高电平有效
input key_4,//抢答按键,所有key都是高电平有效
output reg led_1,//用led灯,高亮//正常抢答LED亮
output reg led_2,//用led灯,高亮//正常抢答LED亮
output reg led_3,//用led灯,高亮//正常抢答LED亮
   output reg led_4,//用led灯,高亮//正常抢答LED亮
output reg alarm,//报警
output [7:0] time_num//倒计时
);
parameter idle = 4'd0;//空闲
parameter start = 4'd1;//开始
parameter qiangda_1 = 4'd2;//抢答
parameter qiangda_2 = 4'd3;//抢答
parameter qiangda_3 = 4'd4;//抢答
parameter qiangda_4 = 4'd5;//抢答
parameter down_cnt = 4'd6;//倒计时状态
parameter s_alarm = 4'd7;//报警状态
reg [3:0]current_state=4'd0;//定义状态
//////////////////////////////////状态机////////////////////////////
reg [7:0] time_cnt=8'd99;//预置答题时间为99s
always@(posedge clk or posedge reset)
begin
if(reset==1'd1)//复位
current_state <= idle;
else
case(current_state)
idle:    //未开始抢答状态
begin
if(host_key==1'd1)//主持人按键
current_state <= start;//开始抢答
else 
current_state <= idle;
end
start:    //开始抢答状态
begin
if(key_1==1)
current_state <= qiangda_1;//1号抢答
else if(key_2==1)
current_state <= qiangda_2;//2号抢答
else if(key_3==1)
current_state <= qiangda_3;//3号抢答
else if(key_4==1)
current_state <= qiangda_4;//4号抢答
else
current_state <= start;
end
        qiangda_1:
current_state <= down_cnt;//1号答题
        qiangda_2:
current_state <= down_cnt;//2号答题
        qiangda_3:
current_state <= down_cnt;//3号答题
        qiangda_4:
current_state <= down_cnt;//4号答题
  down_cnt://倒计时
if(time_cnt==0)//倒计时结束
current_state <=s_alarm;
else
current_state <= down_cnt;
  s_alarm:
current_state <=s_alarm;//报警状态
default: current_state <=idle;
endcase
end

 

 

  • 2-241125194911425.doc
    下载

相关推荐