随机骰子数码管显示 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 结构以及整体仿真结果。












部分代码
以下展示顶层模块 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
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 随机骰子数码管显示 FPGA 设计 Verilog Quartus