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

抢答器设计Verilog代码VIVADO仿真

08/07 08:01
268
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240624201126341.doc

共1个文件

名称:抢答器设计Verilog代码VIVADO仿真

软件:VIVADO

语言:Verilog

代码功能:

抢答器

设计要求:三人参賽每人一个按钮,主持人一个按钮,按下就开始;

每人一个发光二极管,抢中者灯亮;有人抢答时,显示器显示其序号两秒;

答题时限为10秒钟,从有人抢答开始,用数码管倒计时间,10、9、8..1、0;倒计时到0的时候,然后显示四个0两秒。

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图

整体仿真图

分频模块仿真

控制模块仿真

输出抢答者序号及LED显示模块

显示模块

部分代码展示:

`timescale?1ns?/?1ps
//显示模块
module?display_num(
input?clk,//时钟
input?[3:0]?time_down,//倒计时
input?[2:0]?current_state,//当前状态
input?[3:0]?ins_number,//抢答指示1~3
output?reg?[3:0]?bit_select,//数码管位选,低电平亮
output?reg?[7:0]?lednum_select//数码管段选,低电平亮
);
wire?[3:0]?time_down_ten;
wire?[3:0]?time_down_one;
assign?time_down_ten=time_down/10;//倒计时十位
assign?time_down_one=time_down%10;//倒计时个位?
reg[1:0]counter='d0;
always@(posedge?clk)
begin
????counter<=counter+2'd1;//计数
end
reg?[3:0]?display_data=4'd0;
always@(*)
begin
////显示抢答者号2秒
if(current_state==3'd3?&&?time_down>8)begin//倒计时状态(S3)且还没倒计时到8
display_data<=ins_number;//抢答指示1~3
bit_select<=4'b0111;//数码管位选,第一个数码管显示
end
else?if(current_state==3'd4)begin////显示4个0,2秒
display_data<=4'd0;//抢答指示1~3
bit_select<=4'b0000;//数码管位选,4个1数码管显示
end
else?if(current_state==3'd5)begin//结束,不显示
display_data<=4'd0;//抢答指示1~3
bit_select<=4'b1111;//数码管位选,4个1数码管都不显示
end
else?if(current_state==3'd3)//倒计时状态
case(counter)//
2'd0:begin?display_data<=4'd0;bit_select<=4'b1111;end//不显示
2'd1:begin?display_data<=4'd0;bit_select<=4'b1111;end//不显示????
2'd2:begin?display_data<=time_down_ten;bit_select<=4'b1101;end//倒计时十位

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

  • 2-240624201126341.doc
    下载

相关推荐