状态机设计,使用独热码、格雷码或二进制码有何区别?
时间:10-02
整理:3721RD
点击:
RT,各有何特点或者分别适用于什么场合
最本质的是,表示状态值所需要的bit数不一样。并且状态值变化的时候,信号中变化的bit数不一样。
具体看书,或上网搜资料,帖子里永远学不到知识。
这东西,百度最少有好几万条相关。
楼上正解 主要是每次状态变化过程中是否能完全屏蔽亚稳态
书上说的:使用独热码每一位是一个状态,所以产生最多的寄存器和最快的速度;而二进制上则寄存器少,但是速度也慢;在FPGA上使用独热码,在ASIC上使用二进制码;
书上的一段:
"二进制和格雷码编码使用最少的触发器,较多的组合逻辑,而独热码反之。由于CPLD更多地提供组合逻辑资源,而FPGA更多地提供触发器资源,所以CPLD多用格雷码,而FPGA多使用独热码。另一方面,对于小型状态机设计使用格雷码和二进制码更有效,而大型状态机使用独热码更高效。"
独热码表示的状态变化只有一位发生改变,速度快
独热码,每一个状态均使用一个寄存器,相比其他译码简单,一般用于可编程逻辑
格雷码,所需寄存器数与二进制码一样,译码复杂,但相邻位只跳动一位,一般用于异步多时钟域多bit位的转换,如异步FIFO。
二进制码,最为常见的编码方式,易懂,所用寄存器少,译码较复杂。
推荐使用one hot!
内容受教了
内容不错不错
谢谢小编,好东西,值得一学
