18 Verilog基本语法-同步状态机原理和设计

本文介绍了同步状态机在复杂时序逻辑电路设计中的应用,包括其作用、结构、三要素和类型。同步状态机通常使用触发器作为状态记忆部件,并通过二进制、格雷码或独热码来分配状态。描述风格包括Onealways、Twoalways和Threealways,而HDL描述是实现的关键。此外,文章提出了一个检测特定序列的状态机实现示例,并邀请读者思考如何用独热码和三段式实现状态机。
摘要由CSDN通过智能技术生成

虚拟机:VMware-workstation-full-14.0.0.24051
环 境:ubuntu 18.04.1
应用工具:VCS(verilog compiled simulator,编译型代码仿真器)



一、学习内容

在这里插入图片描述


二、同步状态机

(1)作用

  可以设计复杂的时序逻辑电路。

(2)结构

  • 由状态寄存器(触发器)作为状态记忆部件(常用正跳边沿触发的D触发器)
  • 仅当触发信号到达时刻才可能发生状态改变
  • 状态寄存器如果有n个触发器,状态机最多有2^n个状态

(3)三要素

  • 状态:状态变量,划分逻辑顺序
  • 输出:某一状态时完成的事
  • 输入某个状态的条件

(4)类型

  • 米勒型状态机(Mealy状态机):

    • 下一个输出是当前状态和输入的函数
    • 下一个状态是当前状态和输入的函数
      在这里插入图片描述
  • 摩尔型状态机(Moore状态机):下一个输出是当前状态的函数

    • 下一个输出是当前状态的函数
    • 下一个状态是当前状态和输入的函数
      在这里插入图片描述

三、同步状态机的实现

(1)状态分配

  • 二进制码表示状态的状态机
  • 格雷码(Gray)表示状态的状态机
  • 独热码(One-hot)表示状态的状态机

(2)描述风格

  • One always 风格(一段式)
  • Two always风格(两段式)
  • Three always风格(三段式)
  • 有输出指定的码表示状态的状态机

(3)HDL描述

在这里插入图片描述在这里插入图片描述

(4)实现

  • 状态转移图:状态、转移条件和逻辑开关
    在这里插入图片描述
    【例】检测一个5位二进制序列“10010”,可实现循环检测(检测到10010之后如果后续输入为010,即序列为1001010xxxx,需检测到2次该序列)。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

四、思考和小结

(1)思考

  • 用独热码、三段式实现下面状态机
    在这里插入图片描述

(2)小结

在这里插入图片描述


作者:xlinxdu
版权:本文版权归作者所有
转载:未经作者允许,禁止转载,转载必须保留此段声明,必须在文章中给出原文连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xlinxdu

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值