名称:四路智能抢答器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
基于 VerilogHDL的四路智能抢答器的设计
设计一个4人参加的智力竞赛抢答计时器该条统息有回答问题时间控制的功能要求回答问题时间小于等于100秒(显示为0~99)时间显示采用倒计时方式当达到限定时间时,发出声响以示警告;当有某一参费者首先按下抢答开关时,相应显示灯养并伴有喊此时抢答器本再接受其他输入信号整体结构框图如图4所示
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
阅读全文
82