FPGA学习笔记五:Moore状态机与Mealy状态机的区别(基于Verilog)

目录

  • 前言
  • 一、状态机及其描述
  • 二、Moore状态机和Mealy状态机
      • 设计对象描述及其原理
    • (一)Moore状态机
    • (二)Mealy 状态机
  • 总结


前言

本篇博客主要基于一些状态机书写的规范以及其构成结构進行相应的简单分析,同时依据HDLBits中两道典型的题目(HDLBits第139题:简单Moore状态机的实现和HDLBits第140题:简单Mealy状态机的实现)分析两種状态机的异同和电路描述特点。


一、状态机及其描述

FPGA学习笔记五:Moore状态机与Mealy状态机的区别(基于Verilog)_第1张图片

  1. 输入组合逻辑电路(State transition logic of the input):这一段电路位与D触发器的输入端,它根据外部输入信号和当前D触发器的输出状态机(current_state)来计算出下一个状态next_state: next_state=f(in,current_state) 。其中f就是它的输入计算逻辑,根据电路功能要求需要设计者自行设计。
  2. 输出组合逻辑电路 (transition logic of the output):根据电路当前状态(和 当前输入 )计算电路的输出状态。
  3. D触发器(D flip - flop):这一部分用来保存输入组合逻辑电路计算出的状态:
  • 【1】它的输出d_out表示电路的当前状态current_state ;
  • 【2】它的输入d_in 表示电路的下一个状态next_state =f(in,current_state) ;
  • 【3】在时钟沿到來之後,D触发器输出就是下一个状态: current_state <= <= next_state ;
    因此状态机flip-flop部分的书写格式较为固定,考虑到复位信号的影响,通常参照以下模板即可:
always @(posedge clk or posedge areset) begin//异步复位
        if(areset)
            current_state <= state_0;        //复位时恢复到状态0,恢复到的状态依具体电路而定
        else
            current_state <= next_state;
    end

4. 时序逻辑电路的设计步骤

  • No1:确定输入和输出;
  • No2:确定状态个数以及状态转移关系;
  • No3:根据电路需要选择合

你可能感兴趣的:(HDLBits题目,有限状态机,verilog,fpga,moore状态机,mealy状态机)