定义

有限状态机(Finite-State Machine,FSM)表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

要素

状态机可归纳为4个要素,即现态、条件、动作、次态。

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

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

动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。

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

分类

状态机分为Mealy型和Moore型。Moore型状态机的输出只与当前状态有关,而Mealy型状态机的输出不仅取决于当前状态,还受到输入的直接控制,并且可能与状态无关。
Mealy型:

Moore型:

Verilog描述状态机

根据输入、输出和状态分为三种形式:一段式、两段式和三段式。

一段式:状态标志只有一位,输入(条件)决定状态的跳转(动作)和当前输出(现态)。用一个always块执行。

always@(......) begincase(state)s0:begin  state = (in)? s0:s1;out =...; ends1:begin  state = (in)? s1:s2;out =...; ends2:....................................endcase
end

二段式:状态标志分为现态和次态。由两个always块执行,第一块完成状态标志的自动跳转,第二块根据输入决定状态的跳转和输出。

 always@(......)beginstate=next_state;
endalways@(......)begincase(state)s0:begin next_state = (in)? s0:s1;out =  ; ends1:begin next_state = (in)? s1:s2;out =  ; ends2:.....................................endcase
end

三段式:状态标志分为现态和次态。由三个always块执行,第一块完成状态标志的自动跳转,第二块根据输入决定状态的跳转,第三块完成当前状态的输出。

 always@(posedge clk)beginif(rst)state<=....;elsestate<=next_state;
endalways@(*)begincase(state)s0:next_state = (in)? s0:s1;s1:next_state = (in)? s1:s2;s2:.....................................endcase
endalways@(posedge clk)begincase(state)s0:out<=...;s1:out<=...;s2:.....................................endcase
end

参考文章链接:https://blog.csdn.net/woshiyuzhoushizhe/article/details/95866063

Verilog语法学习-有限状态机(FSM)相关推荐

  1. [转]verilog语法学习心得

    verilog语法学习心得 1.数字电路基础知识: 布尔代数.门级电路的内部晶体管结构.组合逻辑电路分析与设计.触发器.时序逻辑电路分析与设计 2.数字系统的构成: 传感器  AD  数字处理器  D ...

  2. Cyclone FPGA踏足笔记(二):Verilog语法学习总结

    欢迎来我的个人博客:https://codinglover.top/ 转转! 前言 花了一个月时间零零碎碎看了下Verilog的语法,终于把Verilog的基本语法学了个大概,可以自己写点小东西了,由 ...

  3. verilog语法学习目录

    verilog语法实例学习(1) Verilog中注释 Verilog代码中的信号 标识符 信号的值 Verilog中的数字 Verilog中的参数 verilog语法实例学习(2) 线网类型 变量类 ...

  4. verilog语法学习_2.时序控制(延时控制 时间控制)

    文章目录 1. 时序控制分类 2. 时延控制 2.1 常规时延 2.2 内嵌时延 2.3 两者区别: 3. 事件控制 3.1 一般事件 3.2 命名事件 3.3 敏感列表 3.4 电平敏感事件 1. ...

  5. Verilog HDL 语法学习笔记

    今天给大侠带来Verilog HDL 语法学习笔记,话不多说,上货. 关于详细的VHDL语法以及Verilog HDL语法可参见往期文章. 一周掌握 FPGA VHDL Day 7 暨汇总篇 一周掌握 ...

  6. 【芯片验证学习纪实】System Verilog语法(1)

    [芯片验证学习纪实]System Verilog语法(1) 继学习了FPGA设计之后,学习IC验证也有一段时间了,学习过程中参考了很多互联网上的优秀资源,在此感谢各位前辈们的无私分享!现在,利用闲暇之 ...

  7. verilog基本语法学习笔记

    input和output module/endmodule :表征模块的开始与结束. example :模块名可由用户指定,可包含字母.数字及下划线,需以字母开头,区分大小写 assign :赋值操作 ...

  8. 【系统设计】Verilog语法及示例(2)

    参考Verilog语法 | 教程 (ustc.edu.cn) 1.7 D触发器 D触发器是一个具有记忆功能.具有两个稳定状态的信息存储器件,是构成时序逻辑的最基本逻辑单元.其具有两个稳定状态,即&qu ...

  9. Verilog语法和典型电路

    这里写目录标题 Verilog语法知识 Q:锁存器 Q:D触发器 Q:消除毛刺 Q:同步复位和异步复位 Q:边沿检测 Q:握手信号 Q:脉冲展宽(单bit慢采快) Q:二进制与格雷码的转换 Q:二进制 ...

最新文章

  1. WCF服务端返回:(413) Request Entity Too Large
  2. VS调用matlab
  3. 【Protocol Buffer】Protocol Buffer入门教程(二):消息类型
  4. leader选举的源码分析-quorumPeer.createElectionAlgorithm
  5. 吉林省统考计算机英语作文,2019年吉林省学位英语作文必背范文(我最……的题材) - 希赛网...
  6. 【渝粤教育】国家开放大学2018年春季 0269-22T文学概论 参考试题
  7. 如何将深度学习训练速度提升一百倍?PAISoar 来了
  8. (42)根据时钟关系分类时钟
  9. 目录服务技术介绍——ADSI(五)
  10. c# 计算时间间隔的方法(转)
  11. VC6.0+番茄助手安装教程
  12. 纯css3黑洞动画js特效
  13. Multi-Loss Weighting with Coefficient of Variations 多任务学习
  14. .NET设计模式系列文章 CHM电子书版
  15. 张驰咨询:六西格玛技术在提高抽油机井系统效率中的应用
  16. 给定秒数计算小时分钟(时间转换)
  17. markdown使用及快捷键
  18. Codeforces ~ 1063C ~ Dwarves, Hats and Extrasensory Abilities (交互题,二分)
  19. 基于数字温度传感器的数字温度计 华氏度和摄氏度
  20. 谷歌应用商店chrome扩展程序和APP的发布流程

热门文章

  1. IOS开发之——企业版IDP的申请及“In House”发布
  2. Matlab怎么邮件发给别人,怎么发电子邮件给别人 如何操作
  3. 1957: 乌鸦坐飞机
  4. NKOJ 4974 「NOIP模拟」乌鸦坐飞机【倍增优化DP】
  5. 硕士研究生入学考试报考指南(考研流程)
  6. CSS3制作漂亮的照片墙
  7. 陌陌开始发力直播,它和那些竞品们有何不同?
  8. 暴走漫画gif爬取及保存
  9. Java jpg转png png转jpg
  10. 简约蓝色好看的域名出售单页源码