• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

饮料自动售货机设计Verilog代码VIVADO仿真

08/08 08:26
539
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24061QQ9152M.doc

共1个文件

名称:饮料自动售货机设计Verilog代码VIVADO仿真

软件:VIVADO

语言:Verilog

代码功能:

饮料自动售货机

你将参与为部门休息室设计一个苏打汽水自动售货机。IEEE的学生会将给予不菲的奖学金,价格仅为25美分。机器接收5美分、一角硬币和二角五分硬币。当投入足够的硬币,苏打汽水自动售货机就会分配汽水和找零钱。

为这个苏打汽水自动售货机设计一个有限状态机控制器。有限状态机的输入是Nickel(5美分)、Dime(一角)和Quarter(两角五分),表示硬币已经投入机器。

假设在一个周期投一个硬币。输出是Dispense ReturnNickel、ReturnDime、ReturnTwoDime。

当有限状态机到达25美分时,它将给出Dispense和相应的Return输出,需要传递合适的找零。接着它将准备开始接收硬币以售卖下一瓶苏打汽水。

本资源赠送简易交通灯状态机代码。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1.工程文件

2.程序文件

3.程序编译

4.管脚分配

5.RTL图

6.Testbench

7.仿真图

部分代码展示:

//苏打水自动售货机
module Vending_machine(
input clk,//时钟
input Nickel,//投币5美分
input Dime,//投币10美分
input Quartue,//投币25美分
output Dispense,//出货
output ReturnNickel,//找零5美分
output ReturnDime,//找零10美分
output ReturnTwoDime//找零20美分
);
reg [2:0] state=3'd0;
parameter S0=3'd0;//起始状态
parameter S1=3'd1;//投币5美分
parameter S2=3'd2;//投币10美分
parameter S3=3'd3;//投币25美分
parameter S4=3'd4;//找零
parameter S5=3'd5;//出货
reg [5:0] total_money=0;//总投币金额
reg [5:0] charge=6'd0;//找零
reg ReturnNickel_reg=0;//找零5美分
reg ReturnDime_reg=0;//找零10美分
reg ReturnTwoDime_reg=0;//找零20美分
always@(posedge clk)
case(state)
S0:
if(total_money>=25)//投币大于等于25
state<=S4;//找零
else if(Nickel)//5美分
state<=S1;
else if(Dime)//10美分
state<=S2;
else if(Quartue)//25美分
state<=S3;
else
state<=S0;
S1://投币5美分
state<=S0;
S2://投币10美分
state<=S0;
S3://投币25美分
state<=S0;
S4://找零
state<=S5;
S5://出货
state<=S0;
default:state<=S0;
endcase

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=885

  • 2-24061QQ9152M.doc
    下载

相关推荐