Verilog常见编码方式有:二进制码、格雷码、独热码;三种编码方式各有特点利弊,因此有必要理解比较,以求不同场合的合理选择:

目录

一、结论:

二、详细了解

二进制码

格雷码

独热码

比较

三、参考


一、结论:

二进制编码:
    优点:属于压缩状态编码,状态机所需的状态向量位数较少;
    缺点:译码复杂;相邻状态变换时,多位发生改变,电噪声大,转换速度较慢,易出错;
格雷码:
    优点:属于压缩状态编码,状态机所需的状态向量位数较少;相邻状态变换时,仅一位发生改变,电噪声小,转换速度较快;
    缺点:译码复杂;
独热码:
    优点:对任意给定的状态,状态寄存器中只有l位为1,其余位都为0。译码简单
    缺点:速度较慢,触发器资源占用较多,面积较大;

二、详细了解

二进制码

在数学和数字电路中,二进制(binary)数是指用二进制记数系统,即以2为基数的记数系统表示的数字。

格雷码

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

意义:在数字系统中,采用8421码以及二进制码等编码方式时会出现相邻状编码多位改变。而在实际电路中,多为位同时改变可能出现短暂的其它代码(1100、1111等)、出错几率也大大增加。这些问题均可能导致电路错误。使用格雷码可以避免这种错误。

特点:

  • 格雷码属于可靠性编码,是一种错误最小化的编码方式。因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。由于这种编码相邻的两个码组之间只有一位不同,因而在用于方向的转角位移量-数字量的转换中,当方向的转角位移量发生微小变化(而可能引起数字量发生变化时,格雷码仅改变一位,这样与其它编码同时改变两位或多位的情况相比更为可靠,即可减少出错的可能性。

  • 格雷码是一种绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。

  • 由于格雷码是一种变权码,每一位码没有固定的大小,很难直接进行比较大小和算术运算,也不能直接转换成液位信号,要经过一次码变换,变成自然二进制码,再由上位机读取。

独热码

概念:独热码,在英文文献中称做 one-hot code, 直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。通常,在通信网络协议栈中,使用八位或者十六位状态的独热码,且系统占用其中一个状态码,余下的可以供用户使用。

例如,有6个状态的独热码状态编码为:000001,000010,000100,001000,010000,100000。为了方便书写,也可将二进制简化为十六进制表示(从右往左每四位二进制位用一位十六进制数表示)。

比较

Binary(二进制编码)、gray-code(格雷码)编码使用最少的触发器,较多的组合逻辑,而one-hot(独热码)编码反之。one-hot 编码的最大优势在于状态比较时仅仅需要比较一个bit,一定程度上从而简化了比较逻辑,减少了毛刺产生的概率。由于CPLD更多地提供组合逻辑资源,而FPGA更多地提供触发器资源,所以CPLD多使用gray-code,而FPGA多使用one-hot编码。另一方面,对于小型设计使用gray-code和binary编码更有效,而大型状态机使用one-hot更高效。
//  此部分来源于百度百科,链接见参考

三、参考

https://baike.baidu.com/item/%E7%8B%AC%E7%83%AD%E7%A0%81/1428731?fr=aladdin

https://baike.baidu.com/item/%E6%A0%BC%E9%9B%B7%E7%A0%81

https://baike.baidu.com/item/%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%A0%81

Verilog常见编码方式:二进制码、格雷码、独热码相关推荐

  1. verilog中状态机的三种编码方式的比较(二进制码、独热码、格雷码)

    最近做了一个小项目,是关于状态机中三种编码方式的比较,总结了一下三种编码方式的不同,可以会在以后IC笔试面试过程中用到,简单记录一下三种编码方式的优缺点. 三种编码方式如下图所示:其中独热码只有一位为 ...

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

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

  3. FPGA中有限状态机的状态编码采用格雷码还是独热码?

    今天看<从算法设计到硬件逻辑的实现>这本电子书时,遇到了一个问题,就是有限状态机的编写中,状态编码是采用格雷码还是独热码呢?究竟采用哪一种编码呢? 采用独热码为什么节省许多组合电路? 等等 ...

  4. 状态机与独热码、格雷码、二进制码

    状态机 简称FSM,也叫同步有限状态机 同步:同步的意思就是在系统时钟的作用下 有限:有限代表状态机中的状态是有限的 根据影响输出分为两大类,一为Moore.二为Mealy Moore:若最后的输出只 ...

  5. 独热码转二进制码(含代码)

    目录 1.什么是独热码 2.转换原理 3.c代码 1.什么是独热码 独热码( one-hot code)直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0 其表示方法如下表所示 十 ...

  6. Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码

    一般的,在Verilog中最常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码. 二进制码和格雷码是压缩状态编码. 若使用格雷编码,则相邻状态转 ...

  7. Verilog-状态机编码方式对比:独热码 vs 格雷码

    博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...

  8. FPGA/数字IC之有限状态机:简介及其编码方式:顺序码、独热码与格雷码比较

    目录 一.状态机的分类 二.状态机的优点与存在的问题 三.状态的编码方式 四.三种方式的比较 一.状态机的分类 标准状态机分为摩尔(Moore)状态机与米勒(Mealy)状态机. 摩尔状态机的输出只与 ...

  9. 【Verilog基础】为什么状态机中多使用独热码,而不是二进制码或者格雷码?

    为什么例子中我们使用的是独热码而非二进制码或格雷码呢? 那就要从每种编码的特性上说起了,首先独热码因为每个状态只有 1bit 是不同的,例如在执行到(state== TWO)这条语句时,综合器会识别出 ...

最新文章

  1. LeakCanary 源码解析
  2. TiDB 源码阅读系列文章(十九)tikv-client(下)
  3. Python语言学习之时间那些事:python和时间的使用方法之详细攻略
  4. MySql中的运算符
  5. 多线程原理分析面试题理解
  6. tab+easyui datagrid无法正常显示
  7. [虚拟机]Windows server 2019 无法安装 .NET Frameword 3.5
  8. C语言程序——如何是使用TurboC2编程调试
  9. 普林斯顿微积分读本篇十七:数列和级数,泰勒定理
  10. 软件工程之软件维护与再工程
  11. CSS拓展选择器 组合选择器 后代选择器 交集选择器 伪类选择器
  12. 英语口语七十五之[火锅大杂烩]
  13. Python爬虫 Selenium实现自动登录163邮箱和Locating Elements介绍
  14. 64位开源处理器Rocket的源代码简单介绍
  15. 笔记本联想(Lenovo)G40-70M加装内存和SSD固态硬盘
  16. English trip 自习内容 英语时态
  17. Rust笔记——解决 Blocking waiting for file lock on build directory
  18. 微信小打卡,微信小打卡上打卡方法,被微信推荐的打卡小程序CSS margin(外边距)
  19. 达梦数据库如何在线替换dm.key
  20. 计算机教案三年级冀教版,冀教版信息技术三年级教案

热门文章

  1. 利用随身WiFi低成本搭建简易家用多功能网盘服务器
  2. python制作酒店系统_酒店前台管理系统
  3. 单向循环链表的简单实现
  4. Qt 绘制图片自适应窗口大小(QImage,QPixmap,QLabel)
  5. Kibana 6.7.1 简体中文版安装配置
  6. linux常用指令+实例
  7. 苹果HEIC格式照片如何快速在windows电脑上查看
  8. 用postman保存数据,postman调用post接口,用postman造数据,postman使用教程
  9. 网易游戏2018实习生招聘题目-游戏客户端开发实习生
  10. Hadoop HDFS概述