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

8人抢答电路设计Verilog代码Quartus仿真

04/22 13:14
2324
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-250103140541J6.doc

共1个文件

名称:8人抢答电路设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:8人抢答电路设计

内容及要求

完成8人抢答电路设计。

(1)按键用作抢答输入,顺序编号1~8;

(2)数码管显示抢答得胜的号码;

(3)由控制信号决定新一轮抢答的开始;

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

演示视频:

设计文档:

1. 功能描述

8人抢答电路设计

内容及要求

完成8人抢答电路设计。

(1)按键用作抢答输入,顺序编号1~8;

(2)数码管显示抢答得胜的号码;

(3)由控制信号决定新一轮抢答的开始;

2. 工程文件

3. 程序文件

4. 程序编译

5. RTL图

6. 程序仿真

整体仿真图

抢答控制模块

显示模块

部分代码展示:

//抢答器控制模块
module responder_ctrl
(
input clk,//100Hz时钟
input reset,//高电平有效
input key_main_in,//主控,控制开始
input key_1_pos,//抢答按键输入1
input key_2_pos,//抢答按键输入2
input key_3_pos,//抢答按键输入3
input key_4_pos,//抢答按键输入4
input key_5_pos,//抢答按键输入5
input key_6_pos,//抢答按键输入6
input key_7_pos,//抢答按键输入7
input key_8_pos,//抢答按键输入8
output reg [3:0] responder_num//抢答指示1~8
);
parameter s_idle=3'd0;//空闲状态
parameter s_start=3'd1;//开始
parameter s_qiangda=3'd2;//抢答状态
parameter s_end=3'd3;//抢答结束
reg [2:0] state=3'd0;
//状态机控制
always@(posedge clk)
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_qiangda;//抢答状态
s_qiangda:
if(key_1_pos | key_2_pos | key_3_pos | key_4_pos | key_5_pos | key_6_pos | key_7_pos | key_8_pos)
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
//输出抢答者编号responder_num
always@(posedge clk)
if(reset)
responder_num<=4'd0;
else
if(state==s_qiangda)
if(key_1_pos)
responder_num<=4'd1;//1号抢答
else if(key_2_pos)
responder_num<=4'd2;//2号抢答
else if(key_3_pos)
responder_num<=4'd3;//3号抢答
else if(key_4_pos)
  • 2-250103140541J6.doc
    下载

相关推荐