欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    基于Verilog语言的简单自动售货机.docx

    • 资源ID:845422       资源大小:62.03KB        全文页数:27页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Verilog语言的简单自动售货机.docx

    EDA设计根底实验课程论文题目基于VeriIog语言的简单自动售货机学院通信学院专业班级通信Ul班学生姓名大彬哥指导教师大力会2023年6月12日摘要本设计是以现场可编程逻辑器件(FPGA)为核心的自动售货机,利用QUartUSn软件编写VerilogHDL硬件描述语言程序以实现自动售货功能。本设计主要以程序为主,硬件方面那么使用实验箱,将程序各变量端口与实验箱管脚进行相应的配置,用八个开关分别代表商品价格、所投钱币价格及确认付款找零操作。中选择好商品并投币后,数码管显示所选商品价格及投入钱币价格;按下确认付款开关,数码管显示应该找多少钱,蜂鸣器响,对应商品LED灯亮。假设所投钱币缺乏所选商品价格,对应警告钱币缺乏的LED灯亮。关键字;现场可编程逻辑器件VerilogHDL自动售货机QuartusIIAbstractThisdesignisanauto-vendingmachinebasedonfieldprogrammablelogicdevices(FPGA).WeuseQuartusIItowriteprocedureinverilogHDLwhichisalanguagetodescribehardware.Theprocedurewillrealizethefunctionofauto-vendingmachine.Thisdesignismainlyaboutprocedure.Forthehardware,weuseexperimentalbox.Weallocateallvariablequantitiesintheproceduretothefeetinexperimentalbox.Weuseeightswitchrespectivelyrepresentcommoditypricesandthrowmoneypriceandconfirmpaymentchangeoperation.Whenchoosinggoodcommoditiesandcoin,digitalpipedisplayselectedcommoditypricesandmoneyprice.Whenpressingconfirmpaymentswitch,digitalpipedisplayshouldfindhowmuchmoney,buzzersounded,correspondingcommodityLEDlights.Ifthrowmoneyshortageselectedcommodityprices,correspondingwarningmoneyshortageofLEDlights.Keywords:FPGAVerilogHDLauto-VendingmachineQuartus11目录摘要错误!未定义书签.Abstract错误!未定义书签。第1章绪论错误!未定义书签。1.1 概述错误!未定义书签。1.2 课题的背景、目的错误!未定义书签。1.3 课题设计环境21.3.1 EDA的应用及开展趋势错误!未定义书签。1.3.2 QuartusII简介31.3.3 FPGA介绍4第2章系统设计52.1 系统设计52.2 系统设计方案比拟52.2.1 总体设计52.2.2 设计方案比拟5第3章详细设计73.1 自动售货机状态描述73.2 设计思路及原理73.2.1 模块描述与实现73.2.2 电路原理图93.3 自动售货机状态描述1134详细状态描述113.4.1 初始状态113.4.2 选商品状态Il3.4.3 投币状态113.4.4 找零状态11第4章软件设计134.1 分析与设计思路134.2 框图144.3 程序总流程图154.4 程序15第5章结果与讨论225.1 实验调试225.1.1 调试步骤错误!未定义书签。25.1.2 实验现象235.2 结果与分析23结论24参考文献25附录26致谢27第1章绪论1.1 概述随着电子技术的开展,现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD的出现,使得电子系统的设计者利用与器件相应的电子CAD软件,在实验室里就可以设计自己的专用集成电路ASIC器件。这种可编程ASIC不仅使设计的产品到达小型化、集成化和高可靠性,而且器件具有用户可编程特性,大大缩短了设计周期,减少了设计费用,降低了设计风险。目前数字系统的设计可以直接面向用户需求,根据系统的行为和功能要求,自上至下地逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件,实现电子设计自动化。其中电子设计自动化(EDA)的关键技术之一就是可以用硬件描述语言(HDL)来描述硬件电路。EDA是电子设计自动化(ElectronicDesignAutomation的缩写,在20世纪60年代中期从计算机辅助设计(CAD)计算机辅助制造CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念开展而来的。VerilogHDL是众多EDA软件中的一个,结合我们这学期所学课程,本次设计采用的是Verilog公司推出的Verilog硬件描述语言,目的是为了将我们所学应用到实际生活中,同时加深我们对Verilog硬件描述语言,FPGA芯片等等的认识与掌握。1.2 课题的背景、目的二十一世纪是信息化高速开展的世纪,因此在二十一世纪掌握前沿技术是十分有必要的。本次课题是计算机组成原理的课程设计,这次课题旨在通过自己对所需功能芯片的设计与实现来稳固以前所学的计算机硬件根底知识,同时也提高动手实践的能力,还有为将来进行更大规模更复杂的开发积累经验。自动售货是20世纪70年代在日本、欧美开展起来的一种全新的消费方式,自动售货机(VendingMaChineS)商业起源于本世纪的六十年代,由美国的MarS家族创造。自动售货机又被称为24小时营业的微型自助超市,它的售货领域非常广泛,是兴旺国家商品零售的一种主要方式。自动售货机作为一种先进的消费方式,已经成为城市现代文明兴旺程度的重要标志,其新颖、时尚的购物方式,24小时营业的特点给人们生活带来了便利,美化了城市环境,受到消费者的欢送。但是在我国自动售货机的普及还不及兴旺国家,主要原因是我国EDA技术的应用水平长期落后于兴旺国家。1.3 课题设计环境1.4 .1EDA的应用及开展趋势EDA在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。在教学方面,几乎所有理工科特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的根本概念和根本原理、掌握用HDL语言编写标准、掌握逻辑综合的理论和算法、使用EDA工具进行电子电路课程的实验并从事简单系统的设计。一般学习电路仿真工具(如EWB、PSPICE)和PLD开发工具(如Altera/Xilinx的器件结构及开发系统),为今后工作打下根底。科研方面主要利用电路仿真工具(EWB或PSPlCE)进行电路设计与仿真;利用虚拟仪器进行产品测试;将CPLD/FPGA器件实际应用到仪器设备中;从事PCB设计和ASIC设计等。从目前的EDA技术来看,其开展趋势是政府重视、使用普及、应用文泛、工具多样、软件功能强大。中国EDA市场己渐趋成熟,不过大局部设计工程师面向的是PC主板和小型ASIC领域,仅有小局部(约11%)的设计人员研发复杂的片上系统器件。为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。在信息通信领域,要优先开展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息平安技术,积极开拓以数字技术、网络技术为根底的新一代信息产品,开展新兴产业,培育新的经济增长点。要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP),计算机机辅助制造(CAM),产品数据管理(PDM)、制造资源方案(MRPn)及企业资源管理(ERP)等。有条件的企业可开展“网络制造",便于合作设计、合作制造,参与国内和国际竞争。开展"数控化"工程和"数字化"工程。自动化仪表的技术开展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、通信与计算机(M3C)结构。在ASlC和PLD设计方面,向超高速、高密度、低功耗、低电压方向开展。在EDA软件开发方面,目前主要集中在美国。但各国也正在努力开发相应的工具。日本、韩国都有ASIC设计工具,但不对外开放。中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具有各地开花并结果。据最新统计显示,中国和印度正在成为电子设计自动化领域开展最快的两个市场,年复合增长率分别到达了50%和30%。EDA技术开展迅猛,完全可以用日新月异来描述。EDA技术的应用广泛,现在己涉及到各行各业.EDA水平不断提高,设计工具趋于完美的地步。EDA市场日趋成熟,但我国的研发水平很有限,需迎头赶上。1.5 .2Quartus简介本次课题设计方案要用到的开发环境是Altera公司的综合性PLD/FPGA开发软件QuartusII,支持原理图、VHDL、VeriIogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及UniX上使用,除了可以使用TCI脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,QuartusII通过和DSPBUilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持AItera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。MaxplusII作为AItera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera己经停止了对MaXPIUSII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。AItera在QUartUSll中包含了许多诸如SignalTapII,ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCoPy设计流程,并且继承了MaXPlUSII友好的图形界面及简便的使用方法。AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢送。QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDLAHDL和VHDL完成电路描述,并将其保存为设计实体文件:芯片(电路)平面布局连线编辑;1.ogiCLOCk增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具:完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创立,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具:可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和VeriIog网表文件。1. 3.3FPGA介绍FPGA是英文FieldPrOgrammabIeGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、FPLD等可编程器件的根底上进一步开展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的缺乏,又克服了原有可编程器件门电路有限的缺点。FPGA采用了逻辑单元阵列LCA这样一个新概念,内部包括可配置逻辑模块CLBCConfigurableLogicBlock).输出输入模块IOB(InputOutputBlock)和内部连线Interconnect)三个局部。FPGA的根本特点主要有以下几点:一、FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。二、FPGA可做其它全定制或半定制ASIC电路中的试样片。三、FPGA内部有丰富的触发器和I/O引脚。四、FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最正确选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FlEX系列等。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中的数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程即可。当需要修改FPGA功能时,只须换一块EPROM第8页即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA的配置模式非常灵活,它可以有多种配置方式:平行主模式为一片FPGA加一片EPROM的方式;主从模式为多片FPGA加一片PROM:串行模式可以采用串行PROM编程FPGA外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。第2章系统设计1.1 系统设计(1)用四个发光二极管分别模拟售出价值为5角、1元、1.5元和2元的小商品,购置者可以通过开关选择任意一种标价中的小商品。(2)灯亮时表示该小商品售出。(3)用开关分别模拟5角、1元硬币和5元纸币投入,可以用几只发光二极管(或数码管)分别代表找回剩余的硬币。(4)每次只能售出一种小商品,当所投硬币到达或超过购置者所选面值时,售出货物并找回剩余的硬币,回到初始状态;(5)当所投硬币值缺乏面值时,可通过一个复位键退回所投硬币,回到初始状态。2-2系统设计方案比拟2. 2.1总体设计总体设计采用FPGA来设计的原理图如图IT所示它由控制输入电路、FPGA显示电路和电机驱动组成。图IT采用FPGA设计的自动售货机原理方框图控制输入电路主要是为用户设计的,起到一个输入控制的作用。FPGA是现场可编程逻辑器件,也是本设计方案的核心内容,它是实现自动售货机运作的主要控制模块。将编写好的HDL程序烧制到现场可编程逻辑器件FPGA中,然后通过控制输入电路把信号输入到FPGA,由八个开关控制输入信号即消费者选择商品和消费者投币及确认消费,动态数码管显示输出信号即找零环节和所选择的商品、消费者投币。2. 2.2总体设计设计方案比拟本设计可以通过多种方案来实现,下面就主要的三种方案进行阐述和比拟。方窠一:采用数字逻辑电路制作,用IC器件连接焊接外围电路实现,这种电路很直观,简单方便。但应用数字逻辑电路制作,使用的器件较多,连接复杂,体积大,功耗大。电路中焊点和线路较多会,使成品的稳定度和精度大大降低。方案二:使用现场可编程逻辑器件(FPGA)制作,利用VerilogHDL硬件描述语言编程进行控制,然后烧写实现。方案三:单片机现在己经到达很成熟的阶段了,它的应用也十分广泛。采用单片机来实现自动售货机,它的原理方框图与用FPGA来实现的原理方框图类似,如图1.2所示。图1-2采用单片机实现自动售货机的原理方框图图IT和图1-2的根本原理都相同,唯一不同的是一个是用FPGA来制作,一个是用单片机来实现。采用单片机来实现自动售货机,主要的核心是单片机程序的设计。方案比拟:对于自动售货机的设计,三个方案均可以实现,但是第一个方案中采用的是数字逻辑电路来制作,该电路硬件所需的器材多,体积庞大,比拟复杂,而且精度和稳定度都不是很高。第二个方案采用的是现场可编程逻辑器件来实现,它的优点是所有电路集成在一块芯片上,此方案所需的外围电路简单,这样它的体积就减少了,同时还提高了系统的稳定度。还可以用软件QUartUSIl软件进行仿真和调试等。可以充分利用HDL硬件描述语言方便的编程,提高开发效率,缩短研发周期,降低研发本钱;而且易于进行功能的扩展,实现方法灵活调试方便,修改容易方案三也有它的优点,但同时也存在缺点。它对设计者的要求比拟高,设计者对软硬件必须十分熟悉。和方案二来比它的实验仿真没有方案二简单直观,调试也有一定的难度。在外界环境相同的条件下,方案三设计出来的产品精度和稳定度要比方案二稍微差一些。因此,自动售货机的设计我们选择方案二来实现。第3章详细设计3.1自动售货机主要功能自动售货机控制要求对机内商品信息进行识别,对投入的货币进行运算,并根据所投入的货币数值判断是否能够购置某种商品,并做出相应的反响。本文设计的自动售货机控制系统主要可以实现投币处理、计算投币总额、输出商品,输出找零等功能,系统工作流程如图3-1所示图3-1自动售货机系统工作流程图3. 2设计思路及原理3.2. 1模块描述与实现自动售货机的问题实际上就是状态转换的问题,不同的状态对应不同的输出,具体的来说就是输入不同币值的钱后对应着不同的作用结果。因此将此问题分为两局部来考虑,即输入和输出。输入局部包括时钟信号、投币信号、商品选择信号、货物信号、确定信号、复位信号。因为币值只考虑5角、1元和5元的情况,因此可以分别用三个输入端代替。同样对于四种商品的选择也可用四个输入端代替。输出局部包括币值显示信号、输出货物信号、警告信号以及找零信号。综上,给出如下输入输出变量:输入变量:时钟信号(elk):每个时钟的上升沿触发系统的状态转换。复位信号(reset):上升沿触发,按下后自动回到初始状态。投币信号(btn_mon):有5角、1元、5元高电平有效。货物信号(btn_sell):有四种,高电平有效确定信号(ok):高电平有效。输出变量:显示信号dis_mony):显示投入的币额。货物信号(led):对应卖出的货物。显示信号(dis_price):货物对应的价钱。警告信号(led_warn):钱缺乏时发出警告信号。3. 2.2电路原理图图3-2-2电路仿真图3.3自动售货机状态描述判断开关被按下的个数N。假设N>=2表示所选本次选择无效,返回初始状态:假设N=I那么显示所选商品,并继续执行下面的流程。4个开关分别代表四种商品。3个开关分别代表投入0.5元,1元,5元,统计投入总额。投入总额与商品价格做比拟,如果总额商品价格,退钱并返回初始状态如果总额>=商品价格,那么继续执行下面的程序。找零=总额-商品价格,数码管显示找零金额。状态如图3-2所示:图3-1自动售货机状态图3. 4详细状态描述自动售货机控制系统的工作过程中,可分为四个状态:初始状态、选商品状态、投币状态和找零状态。在每一个状态中完成特定的功能。3.4. 1初始状态在初始状态下,自动售货机通电,初始化机内商品信息(包括商品种类、每种商品的数量以及价格)。3.5. 2选商品状态分别有价格为0.5元、1元、1.5元和2元的商品,每次选择商品前,设置一个标志位btn_sell表示选择商品状态。此自动售货机每一次售货时只能一次选择一种商品,当同时选择两种以上时,选择商品无效,数码管显示清零,重新进行商品选择。选择商品后,数码管显示所选商品价格。3.4. 3投币状态中选好商品后,开始投币。同样有一标志位btn_PriCe表示投币金额。投币口只接受三种面值的钱币0.5元、2元和5元,可以同时投入多种面值钱币。投完币后,先有一个确认买商品的过程,假设投了币但又不购置商品了,就将全部投币金额退回;假设确认购置商品,那么进入下一状态一一找零状态。3.5. 4找零状态投完币,并确认购置商品后,进入找零状态。首先要将所投的金额与所选商品的价格做比拟,假设所投金额小于商品价格,那么退回所投钱币;假设大于等于商品价格,那么两者做差,得到需要找零的钱。第4章软件设计4.1 分析与设计思路自动售货机控制系统的功能模块逻辑上划分为商品信息存储模块、商品选择模块、投币处理模块,找零模块和显示模块。1 商品信息存储模块该模块的功能是将商品的单价、数量存储到自动售货机中,price、quantity分别表示商品的单价与数量数据信号,item为商品的种类。2 商品选择模块该模块功能是对商品进行选择与购置。当对四种商品进行选择时,由Sel的选择信号的个数来表示所选择的商品类型。get为对商品进行确认购置的信号。3 投币处理模块该模块是对投入的硬币进行处理的过程,输出参数coin为投币数值计数器,以0.5元为单位进行计算。整个模块功能类似于计钱器,可准确计算投入的硬币数,记录并保存投入的总币值。4 找零模块该模块主要完成找零操作。通过计钱器coin计算余额,然后输出找零的控制信号act5、act10=5 显示模块该模块用来显示钱数和商品数量。用于钱数显示时,将计钱器coin转换成BCD码,然后经译码器译码并显示。用于商品数量显示时,将计算得出的最终商品数量quantity先转换成BCD码,然后经译码器译码并显示。程序可分为以下模块D分频模块。6 )计时模块。用于控制确认键后到恢复初始化的3秒计时。7 )识别模块。将每种硬币、货品的拨码开关信号转变为编码。8 )清零模块。用于销售总额的清零。9 )初始化模块10 控制模块。用于数据读入、投币缺乏、交易成功状态的控制及转化。11 显示模块4. 2框图4 .3程序总流程图5 .4程序moduleauto_selIer(elk,rst,dis_mony,dis_price,btn_ok,btn_mon,btn_sell,led_warn,led,beep);inputelk,rst,btn_ok;input2:0btn_mon;选择放入的钱input3:0btn_scll;选择商品bbt_5,gz_10,kqs_15,kl_20output3:0led;/led_5,led_10,led_15,led_20outputled_warn;"钱缺乏,指示灯output11:0diSinony;数码管显示投入面值,dia_mony10:7=com位选,disjnony7:0二段码output11:0dis_price;数码管显示价钱outputbeep;regelk500Hz;reg3:0led;/led_5,led_10,led_15,led_20regled_warn;警告放入钱缺乏reg11:0dis_mony;reg11:0dis_price;reg31:0counter;reg9:0price,price_all;reg1:0flag=2'b00;数码管显示标志位regbee=0;parameterCOUNTl=25,dl0000;/*分频使数码管显示稳定*/always(posedgeelk)beginif(counter=0)begincounter<=COUNTl;elk500Hz<="elk500Hz;endelsecounter<=counterl;endalways©(negedgerstorposedgeelk)beginif(!rst)beginled=4'b0000;LED灭price_all=0;价格清零led_warn=O;price=O;beep=O;endbegin/*三种面值共8种组合*/case(btn_mon)3, b001: beginprice_all = 5;end3jb010: beginprice_all = 10;end3jblOO:beginprice_all=50;end3, bl1:beginpriceall=15;end3*bll:beginprice_all=55;end3*bllO:beginprice_all=60;end4, bill:beginprice_all=65;enddefault:beginprice_all=0;endendcasecase(btnsell)5, b0001:beginprice=5;end4,b0010:beginprice=10;end4,b0100:beginprice=15;end4, bl000:beginprice=20;enddefault:beginprice=0;endendcaseif(btn_ok=1)beginif(price_all<price)放入钱缺乏beginledWarn=1;price=0;endelsebegin"金钱足够priceall=price.al1-price;beep=1;case(price)/LED灯显示货物卖出5, beginled=4,b0001;end10:beginled=4,b0010;end15:beginled=4'b0100;end20:beginled=4'bl000;endendcaseendendelsebeep=O;endend商品价格*/*分频后将时钟给数码管,数码管分别显示放入钱的多少、always0(posedgeelk500Hz)begincase(flag)2'b00:begindis_mony<=4,blll,led7(price_all%10),bl;dis_price<=4*bl110,led7(price%10),bl;flag=2'b01;end2'bl:begindis_mony<=4'blll,led7(price_all/10),1'b;disprice<=4,bl101,led7(price/10),1,b;flag=2,b00;endendcaseend/*数码管段码表*/function6:0led7;input3:0dis_input;begincase(disinput)0:led7=7'blll110;1 :led7=Vb011_0000;2 :led7="7,bll0-1101;3 :led7=Vblll_1001;4 :led7=Vb011_0011;5 :led7=7'bl01_1011;6 :led7=7'bl01_llll;7 :led7='7'blll_0000;8 :led7="7,blll_llll;9 :led7="7'blll_0011;default:led7-7,blll_llll;endcaseendendfunctionendmodule第5章标题5.1实验调试5.1.1调试步骤软件调试:运行QUartUSIl软件,观看仿真波形,仿真波形如下:图5-1-1波形图硬件调试:运行QuartusII软件,新建工程。建立文本文件VeriIOgHDLFile。在文件中写入程序。保存,编译。分配管脚。保存,编译。将生成的sof文件写入FPGA试验箱中。根据要求选择几种买东西的可能情况,在实验箱上实验,观察记录结果。5.1.2实验现象1.选择买0.5元的商品,投5元的金额,调试现象如下:选择0.5元商品数码管显示0.5再选择一种商品,数码管显示清零,重新进行商品选择。按下5元投币键,对应数码管显示5.0。按下确认购置开关,找零时,对应数码管显示4.5,蜂鸣器响,对应0.5元商品的LED灯亮。2.选择1.5元的商品,投1元的金额,调试现象如下:选择1.5元的商品,对应数码管显示1.5。按下1元的投币键,对应数码管显示K找零显示1元,退回所投的钱,表示警告的LED灯亮(交易不成功)5.2结果与分析通过上面的步骤将程序代码下载到实验箱的FPGA芯片中,并验证了在仿真中的结果的正确性.自动售货机能出售5角、1元、1.5元和2元四种商品。出售哪种商品可由顾客按动相应的一个按键即可,并同时用数码管显示出此商品的价格;顾客投入硬纸)币的钱数也是有5角、I元、5元三种,但每次只能投入其中的一种币,此操作通过按动相应的一个按键来模拟,并同时用数码管将投币额显示出来;顾客投币后,按一次确认键,如果投币额缺乏时那么报警,报警时间3秒。如果投币额足够时自动送出货物送出的货物用相应不同的指示灯显示来模拟),同时多余的钱应找回,找回的钱数用数码管显示出来;顾客一旦按动确认键后,自动售货机即可自动恢复到初始状态,此时才允许顾客进行下一次购货操作;此售货机设有一个由商家控制的整体复位控制,当整体复位信号有效时,所有输出均为零。调试过程中出现的问题及原因:数码管显示不正确。管脚配置不正确导致数码管显示异常。重新分配管脚后,仍为先前程序的操作结果。重新配置管脚后,未运行程序,使得烧写进去的仍为原先的程序。步进电机送货不理想,该送的时候送,不该送的时候也送,再次杳看相关源程序,屡次修改。结论VeriIogHDL语言有限状态机设计控制电路,可大大降低设计难度和时间,提高设计效率和可靠性,利用语言的灵活性及功能强大的EDA工具,可以轻松完成硬件的功能扩充与升级,还可以实现更复杂的数字系统,整个设计过程相对于传统的设计方法,有较大的突破。VerilOgHDL语言作为现代数字系统的重要设计工具,以其灵活、简洁的设计风格在电路设计中发挥着越来越重要的作用。这个设计实现了一个简单的自动售货机的功能,程序由硬件描述语言Vhdl编写。程序中采用分块编写的方式,将一个本来复杂的体系用简单的逻辑表述出来。主时钟配合各个模块产生不同的信号,以这些信号为桥梁分别控制各个模块,这样做设计显得很流畅,每个模块都不是独立存在的。通过本次课程设计,我对VerilogHDL语言有了更深刻的了解,能够比拟灵活地运用它来实现我们所想要要其实现的功能。在实验中,我也遇到了很多挫折,不过我都和同伴一一克服了,大家齐心协力解决了问题,使我明白了和他人共同合作的重要性。在以后的道路上我们也必须深刻认识到团队合作的精神,投入今后的开展之中。成功就是在不断摸索着前进中实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。参考文献1乔庐峰,王志功.VerilogHDL数字系统设计与验证.电子信息与电气,2023,8(2):74-90.乔庐峰,王志功.VerilogHDL数字系统设计与验证.电子信息与电气,2023,10(4):110-1123邓文新.C语言程序设计方法.计算机公共课程,2023,6(2、3):159-169.附录1引脚图致谢

    注意事项

    本文(基于Verilog语言的简单自动售货机.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开