




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广西科技大学课程设计 基于 VHDL 自动售货机的设计 1 22 广西工学院 毕业设计毕业设计 论文论文 任务书任务书 课题名称课题名称 基于 VHDL 自动售货机的设计 指导教师 教研室主任 系 主 任 2012 年 9 月 10 日 广西科技大学课程设计 基于 VHDL 自动售货机的设计 2 22 摘摘 要要 本设计是以现场可编程逻辑器件 FPGA 为核心的自动售货机 利用Quartus 软 件编写verilog HDL硬件描述语言程序以实现自动售货功能 本设计主要以程序为主 硬件方面则使用实验箱 将程序各变量端口与实验箱管 脚进行相应的配置 用六开关分别代表商品价格 所投钱币价格及确认付款找零操作 当选择好商品并投币后 数码管显示所选商品价格及投入钱币价格 按下确认付款开 关 数码管显示应找多少钱 蜂鸣器响 对应商品LED灯亮 若所投钱币不足所选商品 价格 对应警告钱币不足的LED灯亮 关键字 FPGA Verilog HDL 自动售货机 Quartus 广西科技大学课程设计 基于 VHDL 自动售货机的设计 3 22 Abstract This design is an auto vending machine based on field programmable logic devices FPGA We use Quartus to write procedure in verilog HDL which is a language to describe hardware The procedure will realize the function of auto vending machine This design is mainly about procedure For the hardware we use experimental box We allocate all variable quantities in the procedure to the feet in experimental box We use six switch respectively represent commodity prices and throw money price and confirm payment change operation When choosing good commodities and coin digital pipe display selected commodity prices and money price When pressing confirm payment switch digital pipe display should find how much money buzzer sounded corresponding commodity LED lights If throw money shortage selected commodity prices corresponding warning money shortage of LED lights Keywords FPGA Verilog HDL auto vending machine Quartus 广西科技大学课程设计 基于 VHDL 自动售货机的设计 4 22 目 录 1 绪 论 5 1 1 背景 5 1 2 VHDL 语言介绍 5 1 2 1 VHDL 语言的发展背景 5 1 2 2 VHDL 语言的基本结构 6 2 自动售货机的设 计 8 2 1 设计说明 8 2 1 1 流程说明 8 2 1 2 各模块说明 9 2 1 3 顶层模块 10 3 仿真时序 图 12 3 1 只选择商品不投币 12 3 2 选择商品但投币不足 12 3 3 选择商品 支付硬币刚够 13 3 4 选择两样商品 支付够 13 3 5 选择一样商品 支付大于应付 14 4 总结 15 致谢 16 参考文献 17 附录 18 广西科技大学课程设计 基于 VHDL 自动售货机的设计 5 22 1 绪论 1 1 背景 随着科技的发展和社会的进步 自动化商业机械有了越来越广泛的应用 自动售 货机作为自动化商业机械的代表被广泛用于公共场所自动售货 给人们的生活带来了 极大的方便 特别在发达国家 自动售货机已经十分普及 自动售货机可售出各种成 型包装小商品 各种袋装 盒装 软瓶装等小商品 因其无需专人值守而可以每天 24 小时售货 被称为 无人小超市 在我国 由于多种原因 自动售货机的市场推广缓 慢 处于培育阶段 但可以预见 这种方便快捷的服务形式因其适合现代生活快节奏 的需要 在不久的将来必会获得大众的喜爱 随着商品市场的不断繁荣 自动售货机 和自动服务设施必将逐步得到广泛的应用 本文设计研究自动售货机的主要功能模块 主要包括货币处理模块 余额计算模 块 显示模块 延时和时控模块 由于条件上的限制 对投币模块中的货币检测未进 行处理 相应的主要功能有选择货物 多次购买 出货找零 显示 延时和时控功能 本文是通过使用 VHDL 语言 基于 FPGA 可编程芯片 并通过使用 Quartus 软件 进行程序设计 模拟仿真 功能验证 以更好的来理解和掌握自动售货机控制系统的 工作原理和设计方法 以及学习和掌握基于 EDA 的电子产品设计方法 进一步加深对 VHDL 语言以及 Quartus 软件 FPGA 可编程芯片的认识与了解 更深入的学习 EDA 技术 更好地掌握本专业知识 1 2VHDL 语言介绍 VHDL 2 Very High Speed Integrated Circuit Hard ware Description Language 是指 超高速集成电路硬件描述语言 VHDL 主要用于描述数字系统的结构 行为 功能和 接口 除了含有许多具有硬件特征的语句外 VHDL 的语言形式 以及描述风格与句法 类 似于一般的计算机一个电路模块或一高级语言 如 C 语言 VHDL 的程序结构特点是 将一项工程设计或称设计实体 可以是一个元件 一个电路模块或一个系统 分成外部 或称可视部分 即端口 和内部 或称不可视部分 在对一个设计实体定义了外部 界面后 一旦其内部开发完成 其他的设计就可以直接调用这个实体 这种将设计实 广西科技大学课程设计 基于 VHDL 自动售货机的设计 6 22 体分成内外部分的概念是 VHDL 系统设计的基本点 1 2 1 VHDL 语言的发展背景 硬件描述语言的发展至今已经有几十年的历史 并已成功应用到系统的仿真 验 证和设计综合等方面 其中比较著名的的有 VHDL 语言 AHDL 语言 Verilog HDL 语言等 而在七八十年代初期 VHDL 语言是为美国国防部工作的 它是以 ADA 语言 为根源 就像将被看到的整体结构的 VHDL 和其他的 VHDL 报表 1986 年 有人提 议 VHDL 语言作为 IEEE 标准 它经历了一些修改意见和修改 直至 1987 年 12 月获 得通过 成为 IEEE 1076 至 1987 标准 它的出现为电子设计自动化的普及和推广奠定 了坚实的基础 之后 IEEE 对 87 版本进行了修订 于 1933 年推出了较为完善的 93 版 本 被定为 ANSI IEEE std 1076 1993 标准 使得 VHDL 语言的编程更加灵活方便 此后 越来越多的人开始使用 VHDL 语言进行数字电路系统的设计 而 VHDL 语言有 不同于软件编程语言 在编程结构和规范上有自己的特点 在此 本文就从简单介绍 VHDL 语言基础开始 1 2 2 VHDL 语言的基本结构 一个完整的 VHDL 3 语言程序通常包括实体 Entity 构造体 Architecture 配置 Configuration 包集合 Package 和库 Library 5 个部分 前 4 种是可以分别编译的源设 计单元 下面分别介绍 实体 实体是用于描述所设计电路系统的外部接口信号 系统的输入输出端口及 属性都是在实体中定义的 一个实体是设计中最基本的 最上层水平的设计是最高层 的实体 如果设计分层次 那么最高层的描述将有低层描述的说明附在它里面 构造体 构造体用于描述系统内部的结构和行为 系统要实现的功能都是在构造 体内用语言进行描述的 所有实体可以有一个构造体的说明来模拟 该构造体描述的 行为实体 一个单一的实体可以有多个构造体 一个构造体可能是行为而另一个可能 是一个结构描述的设计 配置 配置用于从库中选取所需单元来组成系统设计的不同版本 配置声明是用 来约束一个组件实例的一双实体架构 一个配置可以被视为像一个零件清单进行设计 它描述的使用的每一个实体的行为 就像零件列表说明哪一部分用于每一部分的设计 包集合 包集合存放各种设计模块都能共享的数据类型 常数和子程序等 包集 合是一个收集常用数据类型和子程序中使用的设计 想想包含使用的工具建立的设计 的一个工具箱作为一个包 库 库存放已经编译的实体 构造体 包集合和配置 库可由用户生成或者是由 ASIC 芯片制造商提供 以便在设计中为大家共享 这种功能可以通过特定语句来实现 广西科技大学课程设计 基于 VHDL 自动售货机的设计 7 22 除了以上介绍的各种术语 其它术语还有 驱动程序 这是一个信号上的一个源 如果一个信号有两个来源 那么当两个来 源是由两个驱动程序来起作用的 总线 这个词 巴士 通常使我想起一组信号或某个特定的通信方式 用于设计 的硬件 在 VHDL 语言 总线是一种特殊的信号 表明可能由驱动程序来完成 属性 一个关于 VHDL 对象连接到 VHDL 的物体或预先确定的数据的属性数据 例如 电流驱动能力的一个缓冲区或最高工作温度的装置 通用 泛指是 VHDL 语言传递信息实体参数的任期 例如 如果一个实体是一个 门级模型的上升和下降延迟 上升和下降延误的值才能通过成为实体与仿制 进程 一个进程是执行的 VHDL 中的一个基本单位 一切行动 是在模拟 VHDL 描述分为单个或多个进程 在 VHDL 语言程序中 最重要的就是实体和构造体部分 它们是一个具体设计 的核心 如果说实体是系统和外部交流的桥梁 那么构造体就是处理内外交流的信号 加工厂 在构造体中各种信号协调工作 最后得到所需的输出 传送到输出端口和外 部进行交流 本次课程设计采用模式 5 下图为模式 5 的电路图 广西科技大学课程设计 基于 VHDL 自动售货机的设计 8 22 2 自动售货机的设计 2 1 设计说明 本文设计的自动售货机可销售两种商品 售货机可识别 1 元和 5 角两种货币 在一 次购买过程中 可购买一个或多个商品 系统会自动计算所需钱数和找零钱数并自动 找零 另外有 3 个发光二极管 3 个 LCD 数码管 3 个发光二极管分别用来显示交易 成功 交易失败 正在找零 3 个 LCD 数码管 1 个用来显示所需金额 1 个用来显示 广西科技大学课程设计 基于 VHDL 自动售货机的设计 9 22 已付金额 1 个用来显示找零数 1 个蜂鸣器 蜂鸣器响表示交易结束 本文设计的自动售货机有两种饮料可以出售 售价均为 1 5 元 售货机可以识别 1 元 5 角两种货币 如果投入金额总值等于或超过售价就可以将饮料放出 并具有相 应的找零钱功能 1 用户可多次选择购买的饮料种类 某次饮料种类选定后等待投币 如等待时 间超过 10 秒钟 则认为用户放弃选购 售货机自动回到等待状态 等待新的交易 若 在 10 秒内 再次选中饮料 则再次等待 2 每次交易完成 售货机自动回到等待状态 等待新的交易 3 用按键模拟投入 1 元 5 角这两种货币 可连续投币 同时显示投入的金额 和还应投入的金额 若某次投币后金额不足 且一定时限内不再投币 10 秒左右 则 交易失败 并退币 显示退还金额 4 具有指示电路 分别指示购买成功 交易取消 交易失败 和找零 5 相应显示有延时和时控功能 2 1 1 流程说明 本文设计的自动售货机当通电时 表示一次投币销售过程的开始 顾客选择一种 商品或多种则进入投币状态 若不投币 则自动返回初始状态 投币后 系统自动计 算所投钱数 若投币够 则出货找零 若投币不够 等待 10 秒后 顾客没有继续投币 则退币并回到初始状态 本系统的投币销售流程图如图所示 广西科技大学课程设计 基于 VHDL 自动售货机的设计 10 22 2 1 2 各模块说明 本文设计的自动售货机总体只有一个模块 总控模块 总控模块 总控模块是本系统最重要的模块 该模块大体有 5 个输入端口和 7 个 输出端口 其输入端口有 clk coin5 投入 5 角货币 coin10 投入 1 元货币 price1 选择商品 1 price2 选择商品 2 输出端口有 aid 已投入多少钱 needed 还需要多少钱 moneyout 找零 success 灯亮表示交 易成功 failure 灯亮表示交易失败 showmoneyout 灯亮表示正在找零 alarm 蜂鸣 器响表示交易结束 该模块实现了本系统最重要的交易过程 包括选择商品 投入货币 计算货币 找零出货等 2 1 3 顶层模块 广西科技大学课程设计 基于 VHDL 自动售货机的设计 11 22 5 个输入端口通过按键控制输入 7 个输出端口通过硬件箱实现功能 2 2 状态之间的转换 本文所设计的自动售货机进程可分为 7 个状态 a b c d e f g a 为开始状态 在 a 状态中有按键按下时就进入 b 状态 投币状态 b 为投币状态 在 b 状态中如果等待十秒还没投币就进入 e 状态 然后从 e 状态返 回 a 状态 若有货币投入 但投币不够时 即进入 c 状态 继续投币 若等待十秒不 投 即进入 g 状态 退钱 若投币但还不够 则继续投币 当投币够了 即进入 d 状 态 出货找零 之后进入 f 状态 延时 后返回 a 状态 c 为继续投币状态 在规定时间内如果不投币就进入 g 状态 如果投币就进入 d 状 态 d 为出货找零状态 在该状态进行交易数额计算 遵循多还少补设定 e 为交易进行中延时状态 在规定时间内能进行多次选择商品与多次支付货币 f 为交易结束延时状态 在规定时间内重新开始另一次交易 g 为退钱状态 在交易失败时 即支付货币不够时进行货币返还操作 下图为状态之间的转换图 广西科技大学课程设计 基于 VHDL 自动售货机的设计 12 22 在这次课程设计中 我们采用了实验箱模式 5 下图是管脚的分配 3 仿真时序图 广西科技大学课程设计 基于 VHDL 自动售货机的设计 13 22 3 1 只选择商品不投币 只选择商品但不投币 时序图表示需要投币 1 5 元 交易失败 交易结束 蜂鸣器响 3 2 选择商品但投币不足 选择商品后投币不足 我们只以两个 5 角硬币做支付 1 元的类似 时序图表示在投 放 2 个 5 角硬币后 还需要 5 角 但是没有再币 最后返还 1 元 交易失败 交易结束 蜂鸣器响 广西科技大学课程设计 基于 VHDL 自动售货机的设计 14 22 3 3 选择商品 支付硬币刚够 这两个图均表示交易成功 支付刚好够数 没有返还 交易结束 蜂鸣器响 3 4 选择两样商品 支付刚够 广西科技大学课程设计 基于 VHDL 自动售货机的设计 15 22 这个图表示交易成功 支付刚好够数 没有返还 交易结束 蜂鸣器响 3 5 选择一样商品 支付大于应付 这个图表示交易成功 支付大于应付 找钱返还 交易结束 蜂鸣器响 广西科技大学课程设计 基于 VHDL 自动售货机的设计 16 22 4 总 结 通过两周的课程设计 我设计并完成了自动售货机的设计 并用 Quartus II 完成 了仿真 并出了波形图 硬件实现方面 在实试验箱上选择模式 5 因此硬件上完美实 现功能 最终的自动售货机有识别硬币 显示饮料种类和单价 余额的计算 找零 出货等功能 基本上能满足需求 通过本次课设 大概掌握了 EDA 和 FPGA 的开发流程 并且通过程序的设计 对状 态机的设计有了一个更深刻的理解 对自动售货机的原理更是有了一个很深刻的认识 特别是把这个功能设计和实际联系起来的时候 趣味性大增 考虑问题也更加全面 总的来说 本次课程设计受益匪浅 不管是在知识方面还是 工程设计方面 都 有了一个提升 广西科技大学课程设计 基于 VHDL 自动售货机的设计 17 22 致 谢 在这次课程设计中 经过同学和韦艳霞老师耐心的指导和帮助 熟悉了 Quartus II 软 件的功能 顺利完成了课程设计 掌握了 EDA 的相关技能 了解了软件的基本性质和实 用性能 在这里再次感谢老师和同学们的帮助 同时也希望在 EDA 领域有所建树 广西科技大学课程设计 基于 VHDL 自动售货机的设计 18 22 参考文献 1 潘松 黄继业 EDA 技术实用教程 第二版 M 北京 北京航空航天大学出版社 1990 2 刘欲晓 方强 黄宛宁等 EDA 技术与 VHDL 电路开发应用实践 M 北京 电子工业 出版社 2009 3 谭会生 瞿遂春等 EDA 技术综合应用实例与分析 M 西安 西安电子科技大学出版 社 2004 4 徐志军 徐光辉编著 CPLD FPGA 的开发与应用 电子工业出版社 2001 1 5 潘松 黄继业编著 EDA 技术实用教程 2005 科学出版社 6 王开军 姜宇柏编著 面向 CPLD FPGA 的 VHDL 设计 机械工业出版社 2006 10 7 詹仙宁 编著 VHDL 开发精解与实例剖析 电子工业出版社 2009 9 8 张亦华 编著 数字电路 EDA 入门 VHDL 程序实例集 北京邮电大学出版社 2003 广西科技大学课程设计 基于 VHDL 自动售货机的设计 19 22 附 录 Library ieee use ieee std logic 1164 all use ieee std logic unsigned all entity shouhuojioriginal is port clk in std logic 时钟信号 coin5 in std logic 5 角钱信号 coin10 in std logic 1 元钱信号 price1 in std logic 商品 1 选择信号 price2 in std logic 商品 2 选择信号 paid out std logic vector 3 downto 0 已支付钱数 needed out std logic vector 3 downto 0 需要支付钱数 moneyout out std logic vector 3 downto 0 返回找零钱数 success out std logic 交易成功信号 failure out std logic 交易失败信号 alarm out std logic 交易结束信号 showmoneyout out std logic 找零状态信号 end shouhuojioriginal architecture behav of shouhuojioriginal is type state type is qa qb qe qc qg qd qf signal current state state type qa signal q integer range 0 to 100 begin process clk variable paidtemp std logic vector 3 downto 0 variable neededtemp std logic vector 3 downto 0 variable backmoney std logic vector 3 downto 0 variable pricetemp std logic vector 3 downto 0 begin if clk event and clk 1 then case current state is 广西科技大学课程设计 基于 VHDL 自动售货机的设计 20 22 when qa paidtemp 0000 状态 qa 为初始状态 neededtemp 0000 backmoney 0000 pricetemp 0000 q 0 showmoneyout 0 moneyout 0000 paid 0000 needed 0000 failure 0 success 0 alarm 0 if price1 1 or price2 1 then current state qb if price1 1 then pricetemp pricetemp 15 neededtemp pricetemp Else pricetemp pricetemp 15 neededtemp pricetemp end if end if paid paidtemp neededalarm pricetemp then backmoney paidtemp pricetemp neededtemp 0000 current state qd else neededtemp pricetemp paidtemp backmoney 0000 current state qc q 0 end if paid paidtemp needed neededtemp end if if q 8 then q q 1 if price1 1 or price2 1 then q 0 if price1 1 then pricetem
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 爆破安全教育培训
- 2024中建四局土木工程有限公司“善建者”校园招聘笔试参考题库附带答案详解
- 电梯使用安全培训
- 安全生产全员培训内容
- 主题三 动物养殖快乐多(第二课时) 教学设计 2023-2024学年广州版初中劳动技术九年级下册
- 五年级上册科学教学设计-第四节 机械摆钟 教科版
- 人教新目标 (Go for it) 版八年级下册Unit 5 What were you doing when the rainstorm cameSection A教案
- 工程测量理论考试复习试题附答案
- 《数学好玩:反弹高度》(教学设计)-2024-2025学年北师大版小学数学六年级上册
- 采购合同续签管理重点基础知识点
- 证据法学李浩课件 第五章
- 图书馆建筑设计规范讲解课件
- 考研考博-英语-北京建筑大学考试押题卷含答案详解3
- 车间改造合同范文
- 爱莲说-王崧舟
- 光伏支架安装施工协议
- 保定市县级地图PPT可编辑矢量行政区划(河北省)
- 第四章通道内非耦合层流的
- 供水管网施工组织设计
- 异面直线所成的角与求法
- 信息安全风险评估培训(课堂PPT)
评论
0/150
提交评论