自动售货机 FPGA 设计 Verilog Quartus(2)
名称自动售货机 FPGA 设计 Verilog Quartus2软件Quartus语言Verilog功能介绍自动售货机 FPGA 设计 Verilog Quartus2实现了 auto_sell_T060 相关的 FPGA 逻辑功能包含完整 HDL 源码、工程文件、设计说明和付费下载压缩包适合作为数字逻辑课程设计、实验验证或二次开发参考。核心顶层模块为auto_sell可从顶层端口、时钟复位、子模块例化和输出控制关系入手阅读代码。正文整理了设计说明、关键结构和部分代码便于快速了解工程实现方式。运行环境源码语言Verilog开发软件Quartus交付内容HDL 源码、工程文件、设计说明和下载压缩包设计思路该工程可按自顶向下方式理解先查看顶层模块端口定义确认时钟、复位、输入输出接口再顺着子模块例化关系分析控制路径和数据路径。主要模块包括state_ctrl、display_num、auto_sell、key_jitter。调试时可先验证核心控制模块再联调顶层工程。工程中包含管脚约束/分配文件移植到其他板卡时需要重点核对时钟、复位、按键、显示或通信接口等约束。模块结构主要工程/源码文件如下auto_sell_sim/auto_sell.qsfauto_sell_sim/auto_sell.qpfauto_sell_sim/state_ctrl.vauto_sell_sim/display.vauto_sell_sim/auto_sell.vauto_sell_sim/key_jitter.v开发板验证该设计提供FPGA 开发板相关验证内容提供管脚约束/分配文件。实际使用时建议结合约束文件和板卡资源再次核对时钟、复位、按键、显示或通信接口。演示视频下方提供演示视频可直接播放查看运行效果。演示视频请关注公众号后获取对应资料查看。仿真图/仿真说明/设计文档图片设计说明工程文件 程序文件 程序编译 RTL图 Testbench 仿真图 整体仿真图 按键上升沿检测仿真 状态机控制模块 下图为选择1.5元商品依次付款0.50.51.02.0元然后1.5元商品的出货指示灯亮。并找零0.5元。 下图为选择2.0元商品依次付款0.51.01.5元然后按下退币键退币1.5元。 显示模块部分代码以下展示顶层模块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代码获取下方公众号“FPGA代码设计学习资料”

相关新闻

LLM智能体架构设计与工具链集成实践

LLM智能体架构设计与工具链集成实践

1. 智能体架构设计思路在构建一个整合LLM(大语言模型)和工具链的智能体时,核心挑战在于如何让语言理解能力与专业工具执行形成闭环。我采用分层架构设计,将系统划分为认知层、决策层和执行层三个模块。这种架构在电商客服机器人项…

2026/7/25 1:26:05 阅读更多 →
电机控制从入门到精通:FOC算法、PID整定与硬件设计实战指南

电机控制从入门到精通:FOC算法、PID整定与硬件设计实战指南

电机控制这个领域,看似基础却暗藏玄机。很多工程师在入门时信心满满,却在项目实践中频频踩坑——从简单的直流电机调速到复杂的伺服系统,每个环节都可能成为技术路上的绊脚石。如果你正在学习电机控制,或者在实际项目中遇到转速不稳、扭矩不足、发热严重等问题,这篇文章将…

2026/7/25 1:26:05 阅读更多 →
电机控制实战避坑指南:从选型到算法的工程陷阱解析

电机控制实战避坑指南:从选型到算法的工程陷阱解析

电机控制,这个看似传统的技术领域,正随着机器人、无人机、智能家居和工业自动化的普及,重新成为许多开发者必须面对的课题。但很多初学者,甚至一些有经验的工程师,都会在电机控制的学习和实践过程中踩同样的坑——不是电机转不起来,就是控制精度不达标,或者系统运行不稳…

2026/7/25 1:26:05 阅读更多 →

最新新闻

Claude Code免费替代方案:开源AI编程助手部署与实战指南

Claude Code免费替代方案:开源AI编程助手部署与实战指南

Claude Code 是 Anthropic 公司推出的智能编程助手,它能够直接在代码库中工作,理解项目结构、编辑文件、运行命令,帮助开发者更高效地完成编码任务。这个工具支持终端、IDE、Slack 和 Web 等多种使用方式,特别适合需要快速理解代码库、修复 bug、重构代码或进行功能开发的场…

2026/7/25 1:34:08 阅读更多 →
FLOATER:动态位置编码解决Transformer长文本处理难题

FLOATER:动态位置编码解决Transformer长文本处理难题

1. 从词序建模痛点看FLOATER的创新价值在自然语言处理领域,Transformer架构虽然通过自注意力机制实现了长距离依赖捕捉,但词序信息的建模始终存在两个根本性缺陷:第一,传统的位置编码(如正弦波或学习式位置编码&#x…

2026/7/25 1:34:08 阅读更多 →
黑箱API微调:无需模型权重即可定制大模型的完整指南

黑箱API微调:无需模型权重即可定制大模型的完整指南

当你面对一个强大的闭源大模型API,比如GPT-4o,想要让它更好地适应你的特定业务场景时,传统微调方法往往束手无策。这就是"黑箱API微调"技术要解决的核心痛点——在不接触模型内部权重的情况下,让通用大模型变成你的专属…

2026/7/25 1:34:08 阅读更多 →
Buildroot 定制工控固件:裁剪系统、预装依赖库、精简开机流程

Buildroot 定制工控固件:裁剪系统、预装依赖库、精简开机流程

Buildroot 定制工控固件:裁剪系统、预装依赖库、精简开机流程买来的开发板自带的系统,开个机要 40 秒,里面装了一堆桌面浏览器和游戏。工控设备要这个干嘛?今天就用 Buildroot 把它裁到只剩骨架。一、Buildroot 简介 1.1 什么是 B…

2026/7/25 1:34:08 阅读更多 →
Linux 透明大页与 HugePages:数据库场景下的内存管理性能调优复盘

Linux 透明大页与 HugePages:数据库场景下的内存管理性能调优复盘

Linux 透明大页与 HugePages:数据库场景下的内存管理性能调优复盘 一、THP 的承诺与陷阱:为什么 MySQL 官方建议关闭它 透明大页(Transparent Huge Pages,THP)是 Linux 内核从 2.6.38 开始引入的特性,自动…

2026/7/25 1:34:08 阅读更多 →
ROS2 IMU数据可视化:从C++节点到Rviz2的完整实现

ROS2 IMU数据可视化:从C++节点到Rviz2的完整实现

1. 项目概述:从零到一,搞定ROS2 IMU数据可视化最近在折腾一个机器人项目,需要实时获取IMU(惯性测量单元)的数据,并在电脑上直观地看到它的姿态变化。这听起来像是机器人开发里的“Hello World”&#xff0c…

2026/7/25 1:33:08 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻