zoukankan      html  css  js  c++  java
  • 【FGPA】有限状态机

    时序电路描述

    时序电路分类

    时序电路按照信号输出方式分: Mealy型 Moore型

    从结构上分:

      单进程和多进程.

    从状态表达方式分:

      符号化状态机和确定状态编码的状态机.

    从状态编码方式分:

      顺序编码、一位热码编码和其他编码方式状态机

    有限状态机(Finite-state machine, FSM)

    Moore Machine

      输出仅是当前状态的函数

    Mealy Machine

      输出是当前状态和输入的函数

     

     

     


    带有记忆的任何电路都是一个有限状态机

      计算机可被视为多个状态机的一个集合

    有限状态机的设计包括

      定义状态

      定义状态之间的转换方式

      状态机输出

    状态机的数据类型必须是枚举的:

    TYPE enume_name IS (value1, value2, value3,… valueN);

    当前状态值必须是

    signal: SIGNAL current_state: state_type;

    为确定状态转移,

      需要: 在IF-THEN语句中使用CASE语句检查时钟条件

    为确定状态机输出:

      使用条件或选择信号赋值语句 或者使用CASE语句

    数据类型

      标准数据类型(预定义数据类型):bit、std_logic、…

      自定义数据类型:枚举类型、自定义整数类型… 枚举类型

     

    Moore FSM 例子

     

     

     

     

    Moore FSM评述

    三部分

      状态声明

        Type state_type is (s0, s1, s2, s3);

        Signal state : state_type;

      状态转移进程

        Case 语句用来检查 current state.

        IF-THEN-ELSE 用来确定 next state.

      组合逻辑进程

        输出信号取决于 current state.

        只有状态出现在敏感表中,因为 Moore FSM 的输出仅取决于 current state.

    三进程的Moore FSM

     

     

     


     


    Mealy FSM

    Just like the Moore FSM except a slight difference.

    The output is related to not only the current state, but also the input.


    A Moore FSM 例子

    Moore FSM that Recognizes Sequence “10”

    A Mealy FSM

    Mealy FSM that Recognizes Sequence “10”

  • 相关阅读:
    我们为何要使用多线程,它有什么优点?
    Java并发和多线程那些事儿
    【BJG吐槽汇】第2期
    【BJG吐槽汇】第一期
    360:且用且珍惜!解决虚拟机linux启动缓慢以及ssh端卡顿的问题!
    多个不同的app应用间应该如何进行消息推送呢?
    JSONResult 封装
    MySQL 优化集锦
    学习bootstrap3
    开发一个响应式的静态网站---实战
  • 原文地址:https://www.cnblogs.com/Osea/p/13192416.html
Copyright © 2011-2022 走看看