- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
verilog设计 自动售货机
自动售货机
1、设计说明
本设计是以现场可编程逻辑器件(FPGA)为核心的自动售货机,利用Modesim软件编写verilog硬件描述语言程序以实现自动售货功能。
1.1、系统设计描述
(1)用四个发光二极管分别模拟售出价值为2元、5元、7元和10元的商品,购买者可以通过开关选择任意一种标价中的小商品;
(2)灯亮时表示该小商品售出;
(3)用开关分别模拟1元、5元,10元和20元货币投入,用四支发光二极管代表投入的货币的面值;
(4)每次只能售出一种小商品,当所投硬币达到或超过购买者所选面值时,售出货物并找回剩余的硬币,回到初始状态;
(5)当所投硬币值不足面值时,可通过一个复位键退回所投硬币,回到初始状态。
系统框图如图1.1所示:
图1.1 系统框图
2、详细状态描述
2.1 初始状态
rst为复位键,低电平有效,实现系统复位。
2.2 选商品状态
分别有价格为2元、5元、7元和10元的商品,每次选择商品前,设置一个标志位btn_sel_goods表示选择商品状态。此自动售货机每一次售货时只能一次选择一种商品,当同时选择两种以上时,选择商品无效,数码管显示清零,重新进行商品选择。选择商品后,数码管显示所选商品价格。
2.3 投币状态
当选好商品后,开始投币。同样有一标志位btn_price表示投币金额。投币口只接受面值为1元、5元10元和20元的货币,可以同时投入多种面值钱币。投完币后,先有一个确认买商品的过程,若投了币但又不购买商品了,就将全部投币金额退回;若确认购买商品,则进入下一状态。
2.4 找零状态
投完币,并确认购买商品后,进入找零状态。首先要将所投的金额与所选商品的价格做比较,若所投金额小于商品价格,则退回所投钱币;若大于等于商品价格,则两者做差,得到需要找零的钱。
3、仿真结果分析
设置测试程序各参数,运行tb文件,仿真结果如下图3.1、3.2所示。
图3.1
图3.1所示,商品价格选择为7元,即btn_sel_goods=2b10,投币总额大于商品价格的情况,上图中btn_mony从右到左依次代表投币1元、10元、20元、10元、20元、1元、20元和10元,共92元。red灯实时显示所投货币的面值。dis_price显示为0000001_0001111,对应数码管显示数字为07,即7元。 dis_mony为0000000_0100100,对应数码管显示数字为85。可以看出,实验结果很理想,说明代码符合设计要求。
图3.2
图3.2所示,商品价格选择为7元,即btn_sel_goods=2b10,投币总额小于商品价格的情况,上图中btn_mony从右到左依次代表投币1元、5元,共6元。red灯实时显示所投货币的面值。dis_price显示为0000001_0001111,对应数码管显示数字为07,即7元。 dis_mony为0000001_0100000,对应数码管显示数字为06,即6元,可以看出,实验结果很理想,说明代码符合设计要求。
4、总结与展望
通过本次课程设计,我对Verilog HDL语言有了更深刻的了解,能够比较灵活地运用它来实现我们所想要要其实现的功能。
试验中,由于实验条件的限制本实验只实现了一些自动售货机最基本的功能,如果允许的话,后续工作还可以加一些像刷卡消费,折扣消费之类的功能进去。
总的来说该试验还是很成功的,在实验中也确实遇到了不少问题,不过在老师和同学的帮助下一一克服了,使我明白了和他人共同合作的重要性。在以后的道路上我们也必须深刻认识到团队合作的精神,投入今后的发展之中。
附录:
/////////////////////////////////////////////////
//自动售货机
//btn_sel_goods 为所选商品,由于实验条件的限制,本实验中只给出4种价格的商品
//btn_ok 购买确认键
//led[3:0] 客户单次投币币值
//beep 客户所投金额或购买商品后剩余金额大于所选商品价格时,该灯亮,表示可以继续购买
//led_warn 客户所投金额或购买商品后剩余金额小于所选商品价格时,该灯亮,表示不可以继续购买
//charge 找零按键,按下后找零
/////////////////////////////////////////////////
`timescale 1ns / 1ps
module auto_machine(rst,clk,charge,dis_mony,dis_price,
btn_ok,btn_mony,btn_sel_goods,led_warn,led,beep);
input clk,rst;
input charge,btn_ok; //找零/确
您可能关注的文档
最近下载
- 《语文(基础模块)下册》(中职)教案 第24课 跨媒介阅读与交流(二).pdf VIP
- 《磨床安全操作规程》.docx VIP
- 青2013G02图集-标准图集.docx VIP
- 第36届全国中学生物理竞赛决赛理论考试试题与解答.pdf VIP
- DB45_T1900-2018_芒果成龄果树管理技术规程_广西壮族自治区 conv.docx VIP
- 软件测试-全套PPT课件.pptx
- 类风湿关节炎情景模拟教学案例范文.docx VIP
- 2025广西公需科目培训考试答案(90分)——“一区两地一园一通道”建设;人工智能时代的机遇与挑战(1).pdf VIP
- 化学核心素养引领单元主题学习之初探.docx VIP
- 钻床安全操作规程[共1页].doc VIP
文档评论(0)