随机骰子数码管显示 FPGA 设计 Verilog Quartus

名称:随机骰子数码管显示 FPGA 设计 Verilog Quartus

软件:Quartus

语言:Verilog

功能介绍

本设计实现了一个基于 FPGA 的随机骰子数码管显示系统,使用 Verilog 编写,并配套 Quartus 工程。系统包含开始控制、两个骰子独立停止控制以及结果显示功能,可用于课程设计、数字逻辑实验、FPGA 入门综合训练等场景。 系统通过 key_start 启动随机过程,两个骰子分别由 key_1、key_2 控制停止。运行过程中,控制模块产生 1 到 6 范围内的骰子点数,并计算两个骰子的点数和。最终结果通过四路数码管输出,其中两路显示两个骰子的当前点数,另外两路显示两颗骰子的总和。 该工程的功能边界明确,顶层接口简洁,模块划分适合学习 FPGA 项目的基本组织方式。对于需要参考随机数控制、按键交互、数码管译码显示、模块化 Verilog 设计的用户,本设计具有较好的参考价值。

运行环境

开发语言:Verilog 开发软件:Quartus 工程文件包含 Quartus 项目文件 Random.qpf、Random.qsf,以及顶层和功能模块源码,可在 Quartus 环境中进行编译、综合和 RTL 查看。

设计思路

设计采用顶层模块 Random 统一连接外部时钟、复位、按键输入和四路数码管输出。系统以 50MHz 时钟作为同步基准,复位信号为低电平有效,开始按键和两个停止按键同样按低电平触发方式处理,接口定义清晰,适合在 Quartus 工程中直接查看和二次开发。 核心控制由 state_ctrl 模块完成,主要负责两个骰子随机数的产生与停止控制。开始按键用于启动随机变化,key_1 和 key_2 分别对应骰子 1、骰子 2 的停止控制,输出 data_1、data_2 表示两个骰子的点数,data_3 表示两者求和结果。通过将随机控制与显示驱动分离,工程结构更利于调试,也方便单独修改随机策略或按键控制逻辑。 显示部分由 display 模块完成,把两个骰子的点数以及求和结果转换到数码管显示端口。HEX1、HEX2 分别显示两个骰子,HEX3、HEX4 用于显示点数和的十位与个位。由于骰子范围为 1 到 6,两个骰子求和范围为 2 到 12,因此使用两位数码管显示总和,能够覆盖完整结果范围。

模块结构

工程主要由 3 个 Verilog 模块组成: 1. Random:顶层模块,负责连接 50MHz 时钟、低电平复位、开始按键、两个停止按键以及四路数码管输出,并例化控制模块和显示模块。 2. state_ctrl:状态控制模块,负责骰子 1、骰子 2 的随机点数产生、停止控制以及两颗骰子点数求和输出。 3. display:显示模块,负责将骰子点数和总和结果转换为数码管显示信号,驱动 HEX1、HEX2、HEX3、HEX4 输出。

演示视频

配套演示视频展示了随机骰子设计的运行效果,可直观看到开始按键、两个骰子停止按键以及数码管显示之间的联动关系,便于下载后对照工程功能进行理解和移植。

仿真图/仿真说明/设计文档图片

设计文档内容包含工程文件、程序文件、程序编译、RTL 图、testbench、整体仿真图、控制模块和显示模块等说明图片。仿真与文档材料可用于理解模块连接关系、编译流程、RTL 结构以及整体仿真结果。

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image1.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image10.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image11.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image12.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image13.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image2.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image3.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image4.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image5.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image6.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image7.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image8.png

随机骰子数码管显示 FPGA 设计 Verilog Quartus 设计文档图片 image9.png

部分代码

以下展示顶层模块 Random 的部分代码,完整源码请下载压缩包查看。

module Random(
 input clk,//50MHz
 input rst_n,//复位,低电平
 input key_start,//开始按键,按下低电平
 input key_1,//骰子1停止,按下低电平
 input key_2,//骰子2停止,按下低电平
 output [7:0]HEX1,//显示骰子1
 output [7:0]HEX2,//显示骰子2
 output [7:0]HEX3,//显示骰子和十位
 output [7:0]HEX4 //显示骰子和个位
);

wire [3:0] data_1;//骰子1
wire [3:0] data_2;//骰子2
wire [4:0] data_3; //骰子1+2

//状态控制模块,随机1~6
state_ctrl i_state_ctrl(
. clk(clk),//50MHz
. rst_n(rst_n),//复位,低电平
. key_start(key_start),//开始,按下低电平
. key_1(key_1),//骰子1停止,按下低电平
. key_2(key_2),//骰子2停止,按下低电平
. data_1(data_1),//骰子1
. data_2(data_2),//骰子2
. data_3(data_3)//骰子1+2
);

//显示模块
display i_display(
. clk(clk),	
. data_1(data_1),//骰子1
. data_2(data_2),//骰子2
. data_3(data_3),//骰子1+2
. HEX1(HEX1),//显示骰子1
. HEX2(HEX2),//显示骰子2
. HEX3(HEX3),//显示骰子和十位
. HEX4(HEX4) //显示骰子和个位
);
		
			
endmodule

代码文件(付费下载)

📥 付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 随机骰子数码管显示 FPGA 设计 Verilog Quartus

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员