verilog学习日志

本文详细描述了一种饮料机的状态机模型,用Verilog语言实现,包括状态转移规则,如累计2元后加5角的状态转换和达到3元后的找零操作。仿真波形展示了状态机的工作过程。
摘要由CSDN通过智能技术生成

一、三段式状态机(饮料机)

问题描述:有一台饮料机,每次只能投入1元或者5角,一瓶饮料售价2.5元。在投入2.5元后自动给出一瓶饮料;在投入三元后自动找零并给出一瓶饮料

问题分析:重点是确定状态,在累计得到2元后,如果再得5角则输出goodout为1,jiaoout为0,并回到状态0;累计得到2.5元后,如果再得1元则输出goodout为1,jiaoout为1,并回到状态0。

machine部分

module machine(clk,rst_n,yuanin,jiaoin,jiaoout,goodout);
input clk;
input rst_n;
input yuanin;
input jiaoin;
output reg jiaoout;
output reg goodout;

reg [2:0] current_state;
reg [2:0] next_state;
reg [1:0] money;



parameter state00 = 3'b000;
parameter state05 = 3'b001;
parameter state10 = 3'b010;
parameter state15 = 3'b011;
parameter state20 = 3'b100;

always@(posedge clk or negedge rst_n)
begin
if (!rst_n)begin
current_state <= state00;
end 
else begin
current_state <= next_state;
end
end

always@(posedge clk or negedge rst_n)
begin
case(current_state)
state00:
        if(yuanin =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值