自动售货机设计Verilog代码Quartus仿真
名称:自动售货机设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
四种商品
2元,4元,8元,10元货币1,2,5,10,20具备找零,出商品功能
代码要注释,激励也要,要状态转换图,要仿真结果图,结果图也要说明分析

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 代码文件


2. Testbench

3. 状态图

4. 仿真图


上图仿真了选择8元商品,先后投币1元,2元,10元共13元,后购买成功,并找零5元。
部分代码展示:
//自动售货机控制模块 module auto_sell_ctrl( input clk,//1MHz input reset,//复位 //1号商品-2元;2号商品-4元;3号商品-8元;//4号商品-10元 input [3:0] goods_num,//商品编号 input goods_en,//商品选择信号 //投币设备 input [4:0] money_in,//1,2,5,10,20元 input money_en,//投币信号 //出货设备 output reg [3:0] goods_out,//出货商品编号 input goods_end,//出货完成 //找零设备 output reg [3:0] change_out,//找零金额 input change_end,//找零完成 //状态显示led,高亮 output reg idle_led,//待机 output reg select_led,//选商品 output reg money_led,//投币 output reg goods_led,//出货 output reg change_led,//找零 output [7:0] total_money_out,//输出投币金额 output beep//蜂鸣器,找零结束,高电平响 ); reg [2:0] state=3'd0; parameter s_idle=3'd0; parameter s_select=3'd1; parameter s_money=3'd2; parameter s_goods=3'd3; parameter s_change=3'd4; reg [7:0] total_money=8'd0;//总投币 reg [3:0] need_money=4'd0;//价格 assign total_money_out=total_money; always@(posedge clk or posedge reset) if(reset) need_money<=4'd0; else if(goods_en)//商品选择信号 case(goods_num)//1号商品-2元;2号商品-4元;3号商品-8元;//4号商品-10元 4'd1:need_money<=4'd2; 4'd2:need_money<=4'd4; 4'd3:need_money<=4'd8; 4'd4:need_money<=4'd10; default:; endcase //总投币 always@(posedge clk or posedge reset) if(reset) total_money<=8'd0; else if(state==s_idle) total_money<=8'd0; else if(money_en)//投币信号 total_money<=total_money+money_in;//投币累加
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 自动售货机设计Verilog代码Quartus仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 自动售货机设计Verilog代码Quartus仿真