状态机

简称FSM,也叫同步有限状态机

同步:同步的意思就是在系统时钟的作用下

有限:有限代表状态机中的状态是有限的

根据影响输出分为两大类,一为Moore、二为Mealy

Moore:若最后的输出只与当前的状态有关,与输入无关则称为 Moore 型状态机

Mealy: 最后的输出不仅和当前状态有关还和输入有关则称为 Mealy 型状态机

我们一般都爱画成Mealy型状态机,因为他是最简的

状态转移图

​ 三要素:输入、输出、状态

​ 输入:决定是否进行状态的跳转以及输出

​ 输出:根据当前状态机的状态以及输入的信号决定状态机系统要执行的动作或者要执行的功能

​ 状态:根据输入的情况和状态机上一个状态决定当时所处的状态

​ 在我们画图的时候状态机状态一般用大写来表示!!!如图所示

独热码

独热码的编码格式就是每个状态,只有一个bit是高电平

在代码综合的时候,会综合成一个比较器,并且比较器只有一个位不同,会产生优化,节省了逻辑资源,但是使用了较多寄存器资源

独热码可以在高速系统中使用

二进制码

也就是十进制的二进制表示而已

恰恰与独热码相反,节省了寄存器变量的使用,综合的时候无法进行优化,使用了较多的组合逻辑资源,并且多个位比较我们还要保证同时到达比较器去比较 ,增加了布线难度(等长)

格雷码

挨着的,必须且只有一位不同,也就是00,01,11,10这样子

其优势就是相当于独热码跟格雷码的折中

总结

在低速系统中,状态机中状态的个数<4个,使用二进制码

在低速系统中,状态机中状态的个数在4~24个,我们使用独热码

在低速系统中,状态机中状态的个数>24个,使用格雷码

状态机与独热码、格雷码、二进制码相关推荐

  1. 8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法

    8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法 1. 有权码和无权码的包括 2.各种码值的介绍 8421码的简介 8421码又称为BCD码,是十进代码中最常 ...

  2. FPGA学习笔记---二进制码、独热码、格雷码分析对比

    在Verilog学习中常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码,对于新手来说,搞不清楚编码为什么要分这么多格式?统一用一种格式不好吗? ...

  3. 格雷码、二进制码、BCD编码

    格雷码 格雷码(12页).pdf 格雷码(12页).pdf-其它文档类资源-CSDN下载 奇偶校验码(25页).pdf 奇偶校验码(25页).pdf-其它文档类资源-CSDN下载 经验:如何快速地写出 ...

  4. 数字电路基础知识——格雷码和二进制码的转换的算法和Verilog实现

    数字电路基础知识--格雷码和二进制码的转换的算法和Verilog实现 关于数字电路中的码制问题在这篇博客中已经做了详细分析, 数字电路基础知识--数字IC中的进制问题(原码,反码,补码以及各进制的转换 ...

  5. 格雷码与普通二进制码的相互转换——学习笔记

    文章目录 格雷码 普通二进制码转换成格雷码 格雷码转换成普通二进制码 进一步 Reference 文章中内容与图片大部分来自Reference,本文只是以方便自己理解的方式进行整理. 格雷码 在一组数 ...

  6. 3位格雷码的顺序编码_FPGA 设计之 跨时钟域(四 - 格雷码)

    上一篇文章总结了四种常用的多比特跨时钟域的设计.这篇我们主要来看一下 格雷码,文章目录如下: 什么是格雷码 格雷码转二进制码 二进制码转格雷码 N比特格雷码转N-1比特格雷码 什么是格雷码 ? A G ...

  7. Gray Code(格雷码) C++多方法实现

    简介 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又称循环 ...

  8. 格雷码转换成二进制c语言程序,格雷码与二进制的转换程序

    /* 格雷码与二进制的转换程序 * 本程序采用递推的方法进行推导,可以转换0~2147483647之间的数(1~31位) * 推导方式如下(以三位格雷码为例): * 序号 格雷码 格雷码实值 二进制码 ...

  9. 4位格雷码的顺序编码_格雷码那点事——递归非递归实现

    简介 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又称循环 ...

最新文章

  1. vuel路由间通讯_vue嵌套路由之间的通信(非vuex方法实现)
  2. 跨进程访问(AIDL服务)
  3. c语言刷新输出_在fx-9860系列上用C语言编程
  4. Javascript中call的使用
  5. sql where子查询5中字句的使用顺序
  6. php转换编码去掉bom,UTF-8编码怎么去掉BOM头?
  7. java的技术定义_java基础知识——Java的定义,特点和技术平台
  8. 解决Oracle11g密码180天过期,账号锁住的问题
  9. Java中的GC(垃圾回收)log
  10. latex acm-sigconf使用总结
  11. 美团点评Java一二面过,三面“凉凉”~复习备战“金三春招季
  12. python将文字转换成图片_python将文本转换成图片输出的方法
  13. DP9637汽车故障诊断仪的原理与作用
  14. HTML+CSS大作业—汽车商城-功能齐全(42页) 大学生汽车商城网页设计模板代码 网购网页作业成品 汽车商城网站设计成品
  15. 确定sw1开关信号输入端口_MEMS光学器件— MEMS OXC(光交叉互连开关)
  16. java随机点名器_Java实现简单随机点名器
  17. MySQL数据库课程设计_什么是数据库?如何学习数据库?
  18. UMI+TS项目 配置多环境打包
  19. 使用JAVA程序片段动态生成表格
  20. 中小企业数字化转型小课堂(五)丨睿企管家-企业舆情助手

热门文章

  1. 解决浏览器主页被篡改
  2. 神奇的小石子 dfs(深搜) 考核补题
  3. PYTHON代码换行的几种方式
  4. 【blender动作练习生】从零开始的骨骼绑定学习vol.2
  5. 开源无人机手机地面站之Towe(一)
  6. cocos2dx 环境搭建
  7. 数值计算方法——Jacobi迭代法和G-S迭代法
  8. 构建AR视频空间大数据平台(物联网及工业互联网、视频、AI场景识别)
  9. Android | 查看被测应用程序的package和launchable-activity
  10. Matlab典型随机信号模拟