微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 状态机设计,使用独热码、格雷码或二进制码有何区别?

状态机设计,使用独热码、格雷码或二进制码有何区别?

时间:10-02 整理:3721RD 点击:
RT,各有何特点或者分别适用于什么场合

最本质的是,表示状态值所需要的bit数不一样。并且状态值变化的时候,信号中变化的bit数不一样。
具体看书,或上网搜资料,帖子里永远学不到知识。
这东西,百度最少有好几万条相关。

楼上正解 主要是每次状态变化过程中是否能完全屏蔽亚稳态

书上说的:使用独热码每一位是一个状态,所以产生最多的寄存器和最快的速度;而二进制上则寄存器少,但是速度也慢;在FPGA上使用独热码,在ASIC上使用二进制码;

书上的一段:
"二进制和格雷码编码使用最少的触发器,较多的组合逻辑,而独热码反之。由于CPLD更多地提供组合逻辑资源,而FPGA更多地提供触发器资源,所以CPLD多用格雷码,而FPGA多使用独热码。另一方面,对于小型状态机设计使用格雷码和二进制码更有效,而大型状态机使用独热码更高效。"

独热码表示的状态变化只有一位发生改变,速度快



      独热码,每一个状态均使用一个寄存器,相比其他译码简单,一般用于可编程逻辑
     格雷码,所需寄存器数与二进制码一样,译码复杂,但相邻位只跳动一位,一般用于异步多时钟域多bit位的转换,如异步FIFO。
     二进制码,最为常见的编码方式,易懂,所用寄存器少,译码较复杂。

推荐使用one hot!

内容受教了

内容不错不错

谢谢小编,好东西,值得一学

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top