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. 新书 | 经典教材应用随机过程出第12版啦!
  2. 阿里JAVA开发手册零度的思考理解(二)
  3. 宇宙射线会导致路由器 bug,思科你认真的吗
  4. 2013年新的开始,每周至少要写一篇博客!
  5. ||x||的错误理解
  6. iis开启php验证码,php结合GD库实现中文验证码的简单方法
  7. html 甘特图_Rplotly|交互式甘特图(Gantt chart)项目管理/学习计划
  8. 中枪!这才是当代博士生真实日常大赏
  9. Windows Vista for Developers——第二部分:深入分析任务对话框
  10. 使用DBUnit做单元测试
  11. Interface接口
  12. nvarchar转换为int类型失败_2.2 C++强制类型转换 | 将3.3转换为整型输出
  13. python中for循环流程图_Javascript for循环_郭隆邦技术博客
  14. SQL Server 判定时间是否在某个时间区间内
  15. Java图书管理系统(代码及详解)
  16. TMC2226-SA:静音防抖步进驱动
  17. sql注入检测工具 mysql_Java自动化SQL注入测试工具—jSQL Injection v0.5
  18. 神器 mimikatz - 直接抓取 Windows 明文密码
  19. html在线表格样式模板,纯css实现的table表格样式,教程站常用
  20. java打字小游戏_java实现打字游戏小程序

热门文章

  1. 计算机专业的书普遍都这么贵,你们都是怎么获取资源的
  2. 一通百通之Linux加载库文件
  3. 程序化的思维与一通百通,一切语言都是纸老虎
  4. 上海2016计算机一级考试试题及答案,2016计算机一级考试试题一及答案解析(DOC).doc...
  5. 表单页面提交后不跳转的处理方法(核心版)
  6. 输入搜索词出现提示信息供选择
  7. Office Visio 2007安装教程
  8. python基于pingouin包进行统计分析:使用ancova函数执行协方差分析、covar参数设置单个协方差变量、以dataframe的形式输出分析结果(包含SS、自由度、F值、p值、np2等)
  9. IntelliJ IDEA 如何彻底删除项目
  10. 学习笔记------关于字符串结束符'\0'、字符串定义方法