文档详情

EDA课程设计自动售货系统.doc

发布:2018-06-29约7.41千字共8页下载文档
文本预览下载声明
五、Verilog HDL 源程序 注: 输入 coin5(投入5角的硬币) coin10(投入1元的硬币) 0.5元 001 1元 010 1.5元 011 2元 100 2.5元 101 3元 110 四种商品 water (1元的价格,定义为001) tea (1.5元的价格,定义为010) coke (2元的价格,定义为100) coffee (2.5元的价格,定义为101) cancel 取消键 Reset 复位键 输出 num 表示所投入硬币的总钱数 get 表示买到的商品数 change 购买商品所剩余的钱数 六、波形图: module auto_seller(clk,num,get,control,change,reset,coke,water,tea,coffee,cancel,coin5,coin10); input clk,reset,coke,water,tea,coffee,control,cancel,coin5,coin10; output[2:0] num,get,change; reg[2:0]num; reg[2:0]get; reg[2:0]change; reg[4:0]state; reg coin5_old; reg coin10_old; reg water_old; wire control; reg control_old; wire clk; always@(posedge clk or posedge reset) begin if(reset) state=5b00000; else begin coin5_old = coin5; coin10_old = coin10; water_old = water; control_old = control; case(state) 5b00000:begin if((coin5 == 1)(coin5_old == 0)) state=5b00001; else if((coin10 == 1)(coin10_old == 0)) state=5b00010; else state=5b00000; end 5b00001:begin if((coin5 == 1)(coin5_old == 0)) state=5b00010; else if((coin10 == 1)(coin10_old == 0)) state=5b00011; else if(cancel) state=5b01110; else state=5b00001; end 5b00010:begin if((coin5 == 1)(coin5_old == 0)) state=5b00011; else if((coin10 == 1)(coin10_old == 0)) state=5b00100; else if((water == 1)(water_old == 0)) state=5b00111; else if(cancel) state=5b01111; else state=5b00010; end 5b00011:begin if((coin5 == 1)(coin5_old == 0)) state=5b00100; else if((coin10 == 1)(coin10_old == 0)) state=5b00101; else if((water == 1)(water_old == 0)) state=5b01000;
显示全部
相似文档