访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
代码规范-状态机编码选择依据VHDL实例
内容导读:

经常会看到在状态机设计中别人使用各种不同的编码方式,那么一般情况下,这种编码方式的选择依据是什么?
      我们知道,在数字逻辑设计中最常用的有三种编码方式:二进制,格雷码 Gray,独热编码One-hot One hot
      编码使用一组码元,每一个码元仅有1bit有效,例如
      IDLE = 0001,
      WRITE = 0010,
      READ = 0100,
      WAIT = 1000
      这种编码的译码部分可以最简,因此可以总结出One-hot编码的特点:
      组合逻辑最少,触发器最多,工作时钟频率可以做到最高。
      FPGA的一个最小结构单元(CLB/LE)中含有查找表(实现组合逻辑)和DFF(实现时序逻辑),布局布线最好的结果是同一个结构单元中的查找表和DFF都使用,但是大部分情况是仅使用其中一种资源,这样另外的资源就是闲置而浪费。而CPLD中DFF资源本来就很少,由此可见One-hot编码更适合于FPGA设计,而不适合CPLD设计,在CPLD中应该选择二进制编码。
      IC设计中,应该综合考虑。因为One-hot编码使用DFF会大大增加设计面积(die
      size),因此在时序可以满足的条件下尽可能使用二进制编码。就面积与速度的折中考虑来说Gray码是最好的选择,当然Gray码还有其他很多好的特性,暂时不属于这次讨论的范畴。一般的综合工具对状态机进行综合时都可以让用户对这三种编码进行选择。基本依据就以上所说。

      二进制与格雷码之间的转换
      自然二进制码转换成二进制格雷码,其法则是保留自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似
      二进制格雷码转换成自然二进制码,其法则是保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制码与次高位格雷码相异或,而自然二进制码的其余各位与次高位自然二进制码的求法相类似


标签:
来源: 作者: 时间:2006/9/25 16:50:53
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐