0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

入门课程之简单状态机设计流程

电子工程师 来源:FPGA设计论坛 作者:FPGA设计论坛 2021-03-14 10:01 次阅读

《 简单状态机 》设计

设计背景:

状态机是描述各种复杂时序的时序行为,是使用 HDL 进行数学逻辑设计中非常重要的方法之一,状态机分为摩尔机和米粒机,当输出只和状态有关系的话称为摩尔机,当输出不仅和状态有关系也和输入信号有关系的时候称为米粒机,米粒机和摩尔机的电路原型我就不在这里给大家介绍了。

状态机是由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设计的状态进行状态的转移,是协调相关信号的动作,完成特定操作的控制中心。比如我们生活中遇到的问题,健康---感冒---健康,这个就是一个状态的转移图,从健康状态到感冒状态在到健康状态。

设计原理:

我认为对于我们初学者来说我们只要只要状态机就是当这个状态也就是当这个时钟来的时候发生这件事情,当下各时钟来的时候发生另一件事,也就是说发生这件事后,跳转下一个时钟发生另一件事情,两个事情发生没有关系。我们理解初学者理解这个就行了,不用理解高深的二段式,三段式。

我们会在下面的设计中用到简单的状态机让大家明白简单的状态机。

我们的设计也是一个流水灯,我们的设计是在复位的时候让 4 个等全熄灭,第一个上升沿点亮一个,第二个点亮下一个,依次类推。我们的写法可以这样想,当第一个状态也就是一个上升沿点亮第一个灯,然后跳转下一个状态点亮第二个灯,第三个点亮下一个。。。。

设计架构图:

设计代码:

仿真图:

在仿真图中我们可以看到,当 0 状态的时候点亮第一个灯,当 1状态点亮第二个灯,2 状态第三个灯,3 状态第四个灯,然后又到了0 状态第一个灯,这样就实现了流水。

责任编辑:lq6

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5310

    浏览量

    119983
  • HDL
    HDL
    +关注

    关注

    8

    文章

    327

    浏览量

    47336
  • 状态机
    +关注

    关注

    2

    文章

    492

    浏览量

    27471

原文标题:至芯入门课程-简单状态机设计

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【全新课程资料】正点原子《ESP32基础及项目实战入门》培训课程资料上线!

    基础开发流程 三、课程特色 1、基础入门,循序渐进: 从C语言基础开始,逐步深入学习ESP32 IDF开发。首先搭建开发环境并熟悉工具使用,然后学习基础原理和模块驱动,最后通过外设实战巩固技能 2
    发表于 09-24 17:59

    触发器和状态机的关系是什么

    触发器和状态机在数字电路设计中有着紧密的关系,它们共同构成了时序逻辑电路的基础,用于实现数据的存储、处理和传输。
    的头像 发表于 08-12 11:24 366次阅读

    如何在FPGA中实现状态机

    在FPGA(现场可编程门阵列)中实现状态机是一种常见的做法,用于控制复杂的数字系统行为。状态机能够根据当前的输入和系统状态,决定下一步的动作和新的状态。这里,我们将详细探讨如何在FPG
    的头像 发表于 07-18 15:57 475次阅读

    玩转Spring状态机

    说起Spring状态机,大家很容易联想到这个状态机和设计模式中状态模式的区别是啥呢?没错,Spring状态机就是状态模式的一种实现,在介绍S
    的头像 发表于 06-25 14:21 880次阅读
    玩转Spring<b class='flag-5'>状态机</b>

    关于SMU状态机的问题求解

    我有一些关于 SMU 状态机的问题。 假设由于某种原因,SMU 已进入故障状态。 手册指出,要返回运行状态并将 FSP 恢复到无故障状态,应调用IfxSmu_releaseFSP()。
    发表于 05-29 08:18

    在Verilog中实现Moore型和Mealy型状态机的方法简析

    编写能够被综合工具识别的状态机,首先需要理解状态机的基本概念和分类。状态机(FSM)是表示有限个状态以及在这些状态之间转换的逻辑结构。
    的头像 发表于 05-01 11:38 1429次阅读

    嵌入式编程,如何用 C 语言实现状态机设计?

    状态机模式是一种行为模式,通过多态实现不同状态的调转行为的确是一种很好的方法,只可惜在嵌入式环境下,有时只能写纯C代码,并且还需要考虑代码的重入和多任务请求跳转等情形,因此实现起来着实需要一番考虑
    发表于 04-23 11:00

    什么是有限状态机?如何解决传统有限状态机状态爆炸」问题?

    有限状态机(Finite State Machine,简称FSM)是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列以及如何响应来自外界的各种事件。
    的头像 发表于 02-17 16:09 6040次阅读
    什么是有限<b class='flag-5'>状态机</b>?如何解决传统有限<b class='flag-5'>状态机</b>「<b class='flag-5'>状态</b>爆炸」问题?

    Verilog状态机+设计实例

    在verilog中状态机的一种很常用的逻辑结构,学习和理解状态机的运行规律能够帮助我们更好地书写代码,同时作为一种思想方法,在别的代码设计中也会有所帮助。 一、简介 在使用过程中我们常说
    的头像 发表于 02-12 19:07 3824次阅读
    Verilog<b class='flag-5'>状态机</b>+设计实例

    状态机该怎么监控

    状态机卡住的场景——通过状态跳转条件的DFX信号去判断卡住的原因
    的头像 发表于 01-15 10:03 389次阅读
    <b class='flag-5'>状态机</b>该怎么监控

    Spring状态机的实现原理和使用方法

    说起 Spring 状态机,大家很容易联想到这个状态机和设计模式中状态模式的区别是啥呢?没错,Spring 状态机就是状态模式的一种实现,在
    的头像 发表于 12-26 09:39 1869次阅读
    Spring<b class='flag-5'>状态机</b>的实现原理和使用方法

    SaberRD状态机建模工具介绍(二)状态机建模工具使用示例

    假设电阻阻值为r_normal,首先打开状态机建模工具,添加电阻端口,电阻端口包含贯通变量电流和跨接变量电压,使用分支型端口。
    的头像 发表于 12-05 09:53 941次阅读
    SaberRD<b class='flag-5'>状态机</b>建模工具介绍(二)<b class='flag-5'>状态机</b>建模工具使用示例

    SaberRD状态机建模工具介绍(一)什么是状态机建模

    状态机建模是使用状态图和方程式的手段,创建基于混合信号的有限状态机模型的一种建模工具。
    的头像 发表于 12-05 09:51 1632次阅读
    SaberRD<b class='flag-5'>状态机</b>建模工具介绍(一)什么是<b class='flag-5'>状态机</b>建模

    状态机怎么上来就错了?怎么解决?

    状态机本身很简单,default也写了,然后进行仿真时看到了这样的波形:
    的头像 发表于 12-04 10:43 354次阅读
    <b class='flag-5'>状态机</b>怎么上来就错了?怎么解决?

    如何利用Linux下的工具来自动生成实用的状态机框架?

    有限自动机(Finite Automata Machine)是计算机科学的重要基石,它在软件开发领域内通常被称作有限状态机
    的头像 发表于 11-25 14:15 1301次阅读
    如何利用Linux下的工具来自动生成实用的<b class='flag-5'>状态机</b>框架?