001-初识状态机

状态机 FPGA的灵魂

状态机的设计贯穿FPGA设计的始终

一、状态机的概念

1.状态机简述  

  状态机:描述状态变迁的状态转移图,体现系统对外界事件的反应和行为。

  有限状态机(FSM):状态节点数和输入、输出范围有限的状态机。

2.状态机的组成六要素

  (1)状态集合   (必备要素):包含了状态机所能达到的所有状态。

  (2)初态         (必备要素):是整个状态机开始工作的起点。初态是一个相对的参考态。

  (3)终态     ()    :状态机的结束状态。事实上,大部分运行在FPGA上的状态机是没有终态的。

  (4)输入符号集(主要因素)  :驱动状态机进行状态转换的主要因素,状态机的状态转换其实并不一定需要外界的触发条件,但大部分运行在FPGA上的状态机还是需要输入符号集的,至少大多数情况下,它们需要一个复位信号来让状态机进入初态。

  (5)输出符号集(必备要素)  :状态机传递给外界的反馈。

  (6)状态转移函数(必备因素):决定了状态机的行为。最重要的一个组成因素。

3.状态机的工作四要素

  (1)现态:状态机当前所属状态。

  (2)输入:一般指外部事件。根据输入信号是异步的还是同步的可分为异步状态机和同步状态机,鉴于稳定性考虑,都是进行同步化处理后,设计为同步状态机。

  (3)输出:由现态或者现态和输入共同决定

  (4)次态:根据现态、输入及转移函数所得出的,状态机将要跳转至的新状态。次态是相对于现态而言的,一旦状态迁移完成,次态便成了新的现态。

二、状态机的模型

  三种基本模型--Moore、Mealy和Mix,即摩尔型、米利型和混合型

  1.Moore型状态机:输出仅由现态决定。细分为Moore1型、Moore2型、Moore3型

  (1)Moore 1 型

  

  (2)Moore 2 型

  (2)Moore 3 型

  2.Mealy型状态机:输出由现态和输入共同决定。细分为Mealy1型、Mealy2型、Mealy3型

  (1)Mealy 1 型

时间: 2024-08-27 06:57:02

001-初识状态机的相关文章

【C#学习笔记】No.001 初识.NET Framework

关于贵客访问<C#学习笔记>的温馨提示: 本笔记用于个人学习C#技术的知识点.实例练习记录与心得记录 鄙人愿意和喜欢相关技术或者正打算学习C#的朋友进行交流学习 由于是个人是初次学习且该记录为学习笔记,所以难免会有错误或者不清晰的地方,这些地方会在后面的学习中不断改正和改善 对于已经出现的错误,也希望来到博客的人能指出并提示我或指导我,在此感谢大家了 对于决定共同学习的朋友(零基础),请看一下以下提示: 初学者不要过于钻牛角尖,鄙人的学习笔记都是从最基础的开始做的,有理论也有实例 每篇开头会有

[001]初识引用

引用(reference)相当于为对象起了另一个名字.该类型引用另外一种类型.引用标识符以"&"开头. 1 int val = 180; 2 int &reference = val; //refVal指向ival 3 int &mistake; //错误:引用必须被初始化 通过上面的例子,可以看到一般在初始化变量时,初始值会被拷贝到新建的对象中.而定义引用时,程序则是把引用和它的初始值绑定在一起.一旦引用的初始化完成,绑定关系将一直存在,因此,引用必须初始化.

【小甲鱼】001初识python

脚本语言(Scripting language): 是电脑编程语言,可以以简单的方式快速完成复杂的事情,所以python比C.C++.Java之类的编程语言简单容易. 脚本可以让原本用键盘进行的交互式操作自动化,用户可以使用脚本将一些常用的操作组合成一组串行,便于操作. IDLE: IDLE是python程序的基本IDE(集成开发环境),具备基本的IDE功能,用于基础python开发效果不错 IDLE是一个Shell(外壳),类似Windows的cmd窗口,是一个通过键入文本与程序交互的途径 打

并发编程001 --- 初识并发

什么是并发编程 简单的说,所谓的并发编程指的是同一台处理器“同时”处理多个任务. 并发的三种场景 1.分工 合理的拆解不同的任务,并能分配到线程,使多个任务更高效的执行. 2.同步 线程的执行依赖其他线程的执行结果. 3.互斥 多个线程需要抢占共享资源. 并发问题的源头 多线程的出现虽然可以提高应用程序的执行效率,但是不可避免的,也会引入一些问题,这些问题的源头如下: 1.缓存带来的可见性问题 由于CPU的读写速度远远大于内存的读写速度,故CPU利用缓存来缓和CPU和内存读写速度差异带来的问题:

状态机初识

有限状态机FSM思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为FMM消息机).它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点.同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现.但这并不意味着其只能进行有限次的处理,相反,有限状态机是闭环系统,有限但是无穷,可以用有限的状态,处理无穷的事件. 有限状态机的工作原理如1所示,发生事件(event)后,根据当前状态(curState),决定执行的动作(

操作系统分析:【001】初识Ubuntu

一.简介 ubuntu是一个桌面版本做得比较好的.基于debian的Linux操作系统,它最鲜明的特点在于apt包管理器.unity桌面和大量的ppa. 二.下载ISO镜像 以 ubuntu 11.04 为例,下面是下载地址: http://old-releases.ubuntu.com/releases/11.04/ 或者可以使用国内的镜像站: http://mirrors.ustc.edu.cn/ubuntu-old-releases/releases/11.04/ 三.引导 由于使用刻录机

初识OpenCV-Python - 001

主要用代码注释来初步学习OpenCV-Python 1. 图片初使用(结合matplotlib) import cv2from matplotlib import pyplot as plt #Load an color image in grayscaleimg = cv2.imread(r'woman.jpg',0) #0表示cv2.IMREAD_GRAYSCALE.另1表示cv2.IMREAD_COLOR, -1表示cv2.IMREAD_UNCHANGEDplt.imshow(img,cm

第一讲:初识JavaScript

1.0. 学习目标 –了解javascript组成部分 –认识javascript解析机制 –如何使用javascript 1.1.初识JavaScript •javascript是一种专为与网页交互儿设计的脚本语言.由三部分组成: –ECMAScript  (ECMA-262定义)  提供核心语言功能 –文档对象模型(DOM)提供访问和操作网页内容的方法和接口 –浏览器对象模型(BOM)提供与浏览器交互的方法和接口 •Javascript的这三个组成部分在当前五大主流浏览器中都得到了不同程度的

capwap学习笔记&mdash;&mdash;初识capwap(四)

2.5.7 CAPWAP传输机制 WTP和AC之间使用标准的UDP客户端/服务器模式来建立通讯. CAPWAP协议支持UDP和UDP-Lite [RFC3828]. ¢ 在IPv4上,CAPWAP控制和数据通道使用UDP.此时CAPWAP报文中的UDP校验和必须设置为0.AC上的CAPWAP控制报文端口为UDP众所周知端口5246,数据报文端口为UDP众所周知端口5247 ,WTP可以随意选择CAPWAP控制和数据端口. ¢ 在IPv6上,CAPWAP控制通道一般使用UDP,而数据通道可以使用U

capwap学习笔记&mdash;&mdash;初识capwap(二)

2.5.1 AC发现机制 WTP使用AC发现机制来得知哪些AC是可用的,决定最佳的AC来建立CAPWAP连接. WTP的发现过程是可选的.如果在WTP上静态配置了AC,那么WTP并不需要完成AC的发现过程. WTP首先发送一个 Discovery Request message给受限的广播地址,或者CAPWAP的多播地址(224.0.1.140),或者是预配置的AC的单播地址.在IPV6网络中,由于广播并不存在,因此使用"All ACs multicast address" (FF0X