自动售货机 FPGA 设计 Verilog Quartus(2)

名称:自动售货机 FPGA 设计 Verilog Quartus(2)

软件:Quartus

语言:Verilog

功能介绍

自动售货机 FPGA 设计 Verilog Quartus(2) 实现了 auto_sell_T060 相关的 FPGA 逻辑功能,包含完整 HDL 源码、工程文件、设计说明和付费下载压缩包,适合作为数字逻辑课程设计、实验验证或二次开发参考。

核心顶层模块为 auto_sell,可从顶层端口、时钟复位、子模块例化和输出控制关系入手阅读代码。

正文整理了设计说明、关键结构和部分代码,便于快速了解工程实现方式。

运行环境

  • 源码语言:Verilog
  • 开发软件:Quartus
  • 交付内容:HDL 源码、工程文件、设计说明和下载压缩包

设计思路

该工程可按自顶向下方式理解:先查看顶层模块端口定义,确认时钟、复位、输入输出接口,再顺着子模块例化关系分析控制路径和数据路径。

主要模块包括:state_ctrl、display_num、auto_sell、key_jitter。调试时可先验证核心控制模块,再联调顶层工程。

工程中包含管脚约束/分配文件,移植到其他板卡时需要重点核对时钟、复位、按键、显示或通信接口等约束。

模块结构

主要工程/源码文件如下:

  • auto_sell_sim/auto_sell.qsf
  • auto_sell_sim/auto_sell.qpf
  • auto_sell_sim/state_ctrl.v
  • auto_sell_sim/display.v
  • auto_sell_sim/auto_sell.v
  • auto_sell_sim/key_jitter.v

开发板验证

该设计提供 FPGA 开发板 相关验证内容:提供管脚约束/分配文件。实际使用时建议结合约束文件和板卡资源再次核对时钟、复位、按键、显示或通信接口。

演示视频

下方提供演示视频,可直接播放查看运行效果。

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

设计说明:

工程文件

程序文件

程序编译

RTL图

Testbench

仿真图
整体仿真图

按键上升沿检测仿真

状态机控制模块

下图为,选择1.5元商品,依次付款0.5+0.5+1.0=2.0元,然后1.5元商品的出货指示灯亮。并找零0.5元。

下图为,选择2.0元商品,依次付款0.5+1.0=1.5元,然后按下退币键,退币1.5元。

显示模块

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image20.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image19.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image18.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image17.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image16.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image15.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image14.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image13.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image12.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image11.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image1.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image3.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image4.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image5.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image6.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image7.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image8.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image10.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image9.png

自动售货机 FPGA 设计 Verilog Quartus(2) 设计文档图片 image2.png

部分代码

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

module auto_sell(
input clk_in,//时钟
input reset_n,//复位

input coin_10_key,//投币1.0元
input coin_50_key,//投币5.0元
input coin_05_key,//投币0.5元

input price_20_key,//2.0元商品
input price_15_key,//1.5元商品
input price_10_key,//1.0元商品
input price_05_key,//0.5元商品

input confirm_key,//确认
input return_key,//退币

output succeed_ledn_05,//0.5元商品购买成功指示灯
output succeed_ledn_10,//1.0元商品购买成功指示灯
output succeed_ledn_15,//1.5元商品购买成功指示灯
output succeed_ledn_20,//2.0元商品购买成功指示灯

output [3:0] DLA,//数码管位选,低电平选择
output [7:0] HEX//数码管段选,低亮
);
wire [7:0] input_money_BCD;//投币金额
wire [7:0] change_money_BCD;//找钱

wire coin_10_p;//投币1.0元
wire coin_50_p;//投币5.0元
wire coin_05_p;//投币0.5元

//按键上升沿检测模块
key_jitter i0_key_jitter(
. clkin(clk_in),     
. key_in(coin_10_key),//输入
. key_posedge(coin_10_p)//按键上升沿检测
);

//按键上升沿检测模块
key_jitter i1_key_jitter(
. clkin(clk_in),     
. key_in(coin_50_key),//输入
. key_posedge(coin_50_p)//按键上升沿检测
);

//按键上升沿检测模块
key_jitter i2_key_jitter(
. clkin(clk_in),     
. key_in(coin_05_key),//输入
. key_posedge(coin_05_p)//按键上升沿检测
);


//状态控制模块
state_ctrl i_state_ctrl(
. clk_in(clk_in),//时钟100Hz
. reset_n(reset_n),//系统复位

. coin_10_p(coin_10_p),//投币1.0元
. coin_50_p(coin_50_p),//投币5.0元
. coin_05_p(coin_05_p),//投币0.5元

. price_20_p(price_20_key),//2.0元商品
. price_15_p(price_15_key),//1.5元商品
. price_10_p(price_10_key),//1.0元商品
. price_05_p(price_05_key),//0.5元商品

. return_p(return_key),//退币键
. confirm_p(confirm_key),//确认

. succeed_ledn_05(succeed_ledn_05),//0.5元商品购买成功指示灯
. succeed_ledn_10(succeed_ledn_10),//1.0元商品购买成功指示灯
. succeed_ledn_15(succeed_ledn_15),//1.5元商品购买成功指示灯
. succeed_ledn_20(succeed_ledn_20),//2.0元商品购买成功指示灯

. input_money_BCD(input_money_BCD),//投币金额
. change_money_BCD(change_money_BCD)//找钱
);

//数码管显示模块
display_num i_display_num(
. clk_in(clk_in),//100Hz
. input_money_BCD(input_money_BCD),//投币金额
. change_money_BCD(change_money_BCD),//找钱

. DLA(DLA),//数码管位选,低电平选择
. HEX(HEX)//数码管段选,低亮
);


endmodule

代码文件(付费下载)

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

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

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