连载《叁芯智能fpga设计与研发-第15天》 【状态机、自动售货机】 【原理及verilog仿真】

本文介绍了状态机的基本概念,包括摩尔型和米勒型状态机,并详细讲解了有限状态机的4个要素。接着通过自动售货机的例子,阐述了状态机的状态转换,展示了Verilog代码和仿真过程,讨论了FPGA在安防、工业、军工和新兴领域如大数据、人工智能中的应用前景。
摘要由CSDN通过智能技术生成

一、状态机基本概念

状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调

相关信号动作、完成特定操作的控制中心。有限状态机简写为FSM(Finite State Machine),主要分为2大类:

1.1、摩尔型,输出只与状态寄存器的输出状态有关

1.2、米粒型,输出不仅与状态寄存器的输出状态有关,还与组合逻辑的输入有关

1.3、状态机的状态个数必须是有限的

二、有限状态机

有限状态机是一种概念性机器,它能采取某种操作来响应一个外部事件。

1.1、具体采取的操作不仅能取决于接收到的事件;

1.2、还取决于各个事件的相对发生顺序。

之所以能做到这一点,是因为机器能跟踪一个内部状态,它会在收到事件后进行更新。

1.3、为一个事件而响应的行动不仅取决于事件本身,还取决于机器的内部状态。另外,采取的行动还会决定并更新机器的状态。

这样一来,任何逻辑都可建模成一系列事件/状态组合。

1.4 状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑。

1.5、“现态”和“条件”是因,“动作”和“次态”是果。详解如下:

①现态:是指当前所处的状态。

②条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。

③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。

动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。

④次态:条件满足后要前往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。

三、自动售货机

自动售货机:假设一个售货机买一种饮料价格2.5元,投币只能是0.5元、1元,当累计投币>=2.5,售出饮料,并找零钱

1.1、根据我们投钱的组合,一共有5个状态,状态之间的转移如下图

1.2、状态之间的转移条件,如下表

1.3、verilog代码编写,这个例子我用的是一段式状态机

module  auto_sell(
    input   clk,
    input       rst_n,
    input       coin_one,
    input       coin_half,
     
    output  reg     water,
    output  reg     coin_back
);
 
    parameter   ZERO        = 3'b000;
    parameter   HALF        = 3'b001;
    parameter   ONE         = 3'b010;
    parameter   ONE_HALF = 3'b011;
    parameter   TWO         = 3'b100;
     
    //一段式状态机
    reg [2:0]       status;
     
    always@(posedge clk,negedge rst_n)begin
        if(!rst_n)
            begin
                status   <= ZERO;
                water    <= 0;
                coin_back <= 0;
            end
        else
            case(status)
                ZERO :
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值