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

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

  • 1
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值