Verilog 饮料机有限状态机
Verilog Vending Machine FSM
- Verilog HDL_Machine Problem
自动售饮料机-分析输入输出端口信号
输入信号: clk,rst; 输入信号:操作开始: op_start;//定义1开始操作 输入信号: 投币币值: coin_val;//定义2’b01表示0.5元; 2’b10表示1元 输入信号:取消操作指示 : cancel_flag;//定义1为取消操作 输出信号:机器是否占用: hold_ind;//定义0为不占用,可以使用 输出信号:取饮料信号: drinktk_ind;//定义1为取饮料 输出信号:找零与退币标志信号: charge_ind; //定义1为找零 输出信号:找零与退币币值:charge_val;//定义3’b001表示找0.5元;3’b010表示找1元;3’b011表示找1.5元; 3’b100表示找2.0元
状态转移图:

说明: 1.在S0状态下,如果检测到op_start=1,开始检测是否有投币,如果有,一次新 的 售货操作开始; 2.在状态S1/S2/S3/S4下,如果检测到cancel_flag=1,则取消操作,状态返回S0,并 退回相应的币值; 3.在状态S5下,卖出饮料不找零;在状态S6下,卖出饮料并找零; 4.在状态S5和S6 操作完后,都返回状态S0,等待下一轮新的操作开始; 5.只有在S0 状态下,hold_ind=0,可以发起新一轮操作,其它状态下都为1;
rtl

tb:

波形图:
