名称:基于FPGA的自动售货机Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
(1)待售物品价格1元、2元、3元、五元;
(2)只接受1元、5元、10元币值;
(3)机内存有1元零钱无限;
(4)投入钱币之前认为售货机为空闲状态;投入钱币后需要按下物品标签吐出商品;
(5)自动找零;
(6)完成全部流程:设计规范文档、模块设计、代码输入、功能仿真、约束与综合、布局布线、下载验证等。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
状态图
5. Testebnch
6. 仿真图
部分代码展示:
//售货机 module?auto_sell( input?clk_in,//50M input?coin_1_key,//投币1元 input?coin_5_key,//投币5元 input?coin_10_key,//投币10元 input?price_1_key,//1元商品 input?price_2_key,//2元商品 input?price_3_key,//3元商品 input?price_5_key,//5元商品 input?confirm_key,//确认 output?succeed_ledn,//购买成功指示灯 output?[2:0]?DLA,//数码管位选ABC:0~7 output?[7:0]?HEX//数码管段选 ); wire?[7:0]?input_money_BCD;//投币金额 wire?[3:0]?need_money_BCD;//价钱 wire?[7:0]?change_money_BCD;//找钱 wire?coin_1_p;//投币1元 wire?coin_5_p;//投币5元 wire?coin_10_p;//投币10元 wire?price_2_p;//2元商品 wire?price_3_p;//3元商品 wire?price_5_p;//5元商品 wire?price_1_p;//1元商品 wire?confirm_p;//确认? //按键消抖模块 key_jitter?i0_key_jitter( .?clkin(clk_in),????? .?key_in(coin_1_key),//输入 .?key_negedge(coin_1_p)//消抖后按键下降沿 ); //按键消抖模块 key_jitter?i1_key_jitter( .?clkin(clk_in),????? .?key_in(coin_5_key),//输入 .?key_negedge(coin_5_p)//消抖后按键下降沿 ); //按键消抖模块 key_jitter?i10_key_jitter( .?clkin(clk_in),????? .?key_in(coin_10_key),//输入 .?key_negedge(coin_10_p)//消抖后按键下降沿 ); //按键消抖模块 key_jitter?i2_key_jitter( .?clkin(clk_in),????? .?key_in(price_2_key),//输入 .?key_negedge(price_2_p)//消抖后按键下降沿 ); //按键消抖模块 key_jitter?i3_key_jitter( .?clkin(clk_in),????? .?key_in(price_3_key),//输入 .?key_negedge(price_3_p)//消抖后按键下降沿 ); //按键消抖模块 key_jitter?i4_key_jitter( .?clkin(clk_in),????? .?key_in(price_5_key),//输入 .?key_negedge(price_5_p)//消抖后按键下降沿 ); //按键消抖模块 key_jitter?i5_key_jitter( .?clkin(clk_in),????? .?key_in(price_1_key),//输入 .?key_negedge(price_1_p)//消抖后按键下降沿 ); //按键消抖模块 key_jitter?i6_key_jitter( .?clkin(clk_in),????? .?key_in(confirm_key),//输入 .?key_negedge(confirm_p)//消抖后按键下降沿 ); //状态控制模块 state_ctrl?i_state_ctrl( .?clk_in(clk_in),//50M .?reset_n(1'b1),//复位 .?coin_1_p(coin_1_p),//投币1元 .?coin_5_p(coin_5_p),//投币5元 .?coin_10_p(coin_10_p),//投币10元 .?price_1_p(price_1_p),//1元商品 .?price_2_p(price_2_p),//2元商品 .?price_3_p(price_3_p),//3元商品 .?price_5_p(price_5_p),//5元商品 .?confirm_p(confirm_p),//确认 .?succeed_ledn(succeed_ledn),//购买成功指示灯 .?input_money_BCD(input_money_BCD),//投币金额 .?need_money_BCD(need_money_BCD),//价钱 .?change_money_BCD(change_money_BCD)//找钱 ); //数码管显示模块 display_num?i_display_num( .?clk_in(clk_in),//50M .?input_money_BCD(input_money_BCD),//投币金额 .?need_money_BCD(need_money_BCD),//价钱 .?change_money_BCD(change_money_BCD),//找钱 .?DLA(DLA),//数码管位选 .?HEX(HEX)//数码管段选 ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=728
							阅读全文
							
						
					
								
								
								
244