名称:自动售货机设计Verilog代码Quartus? 复旦开发板
软件:Quartus
语言:Verilog
代码功能:
自动售货机
1、可以投币1元、5元
2、具有单价2、3、4、6元的商品
3、具有购买成功指示灯,投币不足可以退币
4、数码管显示投币金额、单价、找零
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在复旦开发板验证,复旦开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. 管脚分配
5. RTL图
6. Testbench
7. 仿真图
整体仿真图
正常购买仿真图,选中6商品,分别投入1元,1元,5元,显示有商品价钱、投币金额、还差金额、找零等。成功后succeed_led亮
仿真选,3元商品后10s没有操作,还差金额由3变为0,返回初始状态。
仿真选中3元商品,投币1元,再投币1元后,10s没有操作,还剩金额由1变为0,返回投币2元,退币指示灯coin_return_led亮。
部分代码展示:
module?auto_sell( input?clk_in,//24M input?reset_n,//复位 input?coin_1_key,//投币1元 input?coin_5_key,//投币5元 input?price_2_key,//2元商品 input?price_3_key,//3元商品 input?price_4_key,//4元商品 input?price_6_key,//6元商品 input?confirm_key,//确认 output?succeed_ledn,//购买成功指示灯 output?coin_return_ledn,//退币指示灯 output?[3:0]?DLA,//数码管位选,低电平选择 output?[7:0]?HEX//数码管段选,低亮 ); wire?[3:0]?input_money_BCD;//投币金额 wire?[3:0]?need_money_BCD;//价钱 wire?[3:0]?change_money_BCD;//找钱 wire?[3:0]?left_money_BCD;//还差金额 wire?coin_1_p;//投币1元 wire?coin_5_p;//投币5元 wire?price_2_p;//2元商品 wire?price_3_p;//3元商品 wire?price_4_p;//4元商品 wire?price_6_p;//6元商品 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)//消抖后按键下降沿 );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1240