简单自动售货机VerilogHDL程序.doc

简单自动售货机VerilogHDL程序.doc

ID:48157316

大小:535.50 KB

页数:8页

时间:2020-01-21

简单自动售货机VerilogHDL程序.doc_第1页
简单自动售货机VerilogHDL程序.doc_第2页
简单自动售货机VerilogHDL程序.doc_第3页
简单自动售货机VerilogHDL程序.doc_第4页
简单自动售货机VerilogHDL程序.doc_第5页
资源描述:

《简单自动售货机VerilogHDL程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、自动售货机VerilogHDL程序一个简单的自动售卖饮料机的程序。该机器具有投币,显示余额,购买六种饮料,退钱等功能,为了更具实用性,增添了饮料选择允许提示和投币允许提示的功能。具体形容,可投入一元、五元、十元和二十元面值的钱币,显示出当前的余额,并根据当前的余额提示能购买哪些饮料,选择某种饮料,则输出选定的饮料,同时余额减去相应的金钱。若选择退钱,机器就退出所有的钱,余额清零。下图为功能示意图:选择饮料余额变化投币减钱投币允许提示加钱状态变化清零退钱允许提示退钱饮料选择提示程序的状态表:money(余额)state(

2、状态)选择提示投币提示退钱提示000选择可以投币无钱可退11可选择1,2可以退钱2或32可选择1,2,3,4>4而<203可选择1~6>=204不可再投程序中包含了一个状态机,定义了一个任务(task)和函数(function),用该任务调用了该函数,使用若干分支语句,详见附后源程序和测试程序。附上程序编译仿真图:源程序如下:`defineone3'b001`definefive3'b010`defineten3'b011`definetwenty3'b100moduleautomart(money,state,mon

3、eyout,coinable,adrkable,bdrkable,cdrkable,drkout1,drkout2,drkout3,drkout4,drkout5,drkout6,coin,clk,reset,moneyback,choice1,choice2,choice3,choice4,choice5,choice6);input[2:0]coin;//投币输入,分为1、5、10、20元四种输入inputclk,reset,moneyback,choice1,choice2,choice3,choice4,cho

4、ice5,choice6;//moneyback为退钱输入,choice1~6是饮料选择outputmoneyout,coinable,adrkable,bdrkable,cdrkable,drkout1,drkout2,drkout3,drkout4,drkout5,drkout6;//依次为退钱输出,投币许可提示,饮料选择许可,6种饮料输出output[2:0]state;//状态记录output[7:0]money;//余额显示reg[7:0]money;reg[2:0]state;regmoneyout,coi

5、nable,backable,adrkable,bdrkable,cdrkable;parameterA=3'b000,B=3'b001,C=3'b010,D=3'b011,E=4'b100;assigndrkout1=choice1&adrkable;assigndrkout2=choice2&adrkable;assigndrkout3=choice3&bdrkable;assigndrkout4=choice4&bdrkable;assigndrkout5=choice5&cdrkable;assigndrkou

6、t6=choice6&cdrkable;always@(posedgeclk)repeat(1)@(posedgeclk)if(!reset)beginstate<=A;money=0;moneyout=0;endelsebegincase(state)A:begin//初始状态A,可投币进入别的状态coinable=1;backable=0;adrkable=0;bdrkable=0;cdrkable=0;endB:begin//状态B,只能买1元的饮料,可退钱或投币coinable=1;backable=1;adr

7、kable=1;bdrkable=0;cdrkable=0;endC:begin//状态C,可买1或2元的饮料,退钱或投币coinable=1;backable=1;adrkable=1;bdrkable=1;cdrkable=0;endD:begin//状态D,可买三档价格饮料,可退钱或投币coinable=1;backable=1;adrkable=1;bdrkable=1;cdrkable=1;endE:begin//状态E,可买三档价格饮料,可退钱,不可继续投钱coinable=0;backable=1;adr

8、kable=1;bdrkable=1;cdrkable=1;enddefault:state=A;endcasecondition(money,state,coin,coinable);//调用任务endalways@(negedgedrkout1ornegedgedrkout2)money=money-8'h01;//买1元的饮

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。