找回密码
 注册
关于网站域名变更的通知
查看: 300|回复: 4
打印 上一主题 下一主题

FPGA ------- 状态机的编码问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-7-8 15:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
在设计状态机时有几种状态编码方法:二进制,格雷码(灰色)和独热码(一个热门代码)。他们各有各的优点。
+ g9 O+ \1 M2 p, x9 w; g
: d( O% c5 A7 ~
) R0 a5 _/ I" w
独热码,在编码中使用位数较多,其中只有一位位高电平,减少编码复杂度,可减少实现状态机的组合逻辑数目,减少复杂度,一定程度提高系统的速度,在逻辑资源充裕,FPGA逻辑速度有要求的情况下可考虑该编码方式,相对于格雷码,在时序问题较差的情况下,一定程度上增加了亚稳态的概率。使用独热码编码时,会出现很多未使用的状态,例如:0001 0010 0100 1000
6 m8 v) V& y; Y" Q) ^( w% R
3 `+ s# ?( [9 n& u  L( g

( s  ^5 z3 j# k$ X" ~4 v- O二进制编码,减少编码时触发器的数量,编码方式较为容易理解,但是在状态机运转过程中,触发器反转次数较多,相对FPGA内部速率有稍微的影响,同时在时序要求严格的情况下,也会稍微增加亚稳态出现的概率。使用二进制编码时,如果状态机的状态数不是2的指数次方时,也会出现未使用状态。例如:00 01 10 115 {2 D' U/ F  N$ L1 D

% u4 P: s( o* c8 v9 D

' }. f, C, A; G' J) Q7 k8 l+ x格雷码,在减少编码时触发器的数量的同时,降低了亚稳态的出现的概率,但是编码方式较为复杂,实现状态机时触发器反转次数最少,相对功率有所降低,是最为适合工程实现的编码方式。使格雷码时,如果状态机的状态数不是2的指数次方时,也会出现未使用状态。格雷码每个相邻的状态切换只有一个位的信号跳变,适用于异步握手的情况,比如异步FIFO的指针计数。例如:00 01 11 1$ W% T& d( c2 u1 {& c

3 U9 m' P' ]" j, \8 |

* f# t9 t+ m4 U1 ?% e# v' P2 ?  q( Z

3 Q( X, R' q/ `& s3 {, x, V, X1 A1 v0 Q2 i
5 Z" h) P: E7 [% S

/ X3 M& [' `0 o' ^  ^/ |7 C  W1 Z) l
  m" M% W9 ^" ^

该用户从未签到

2#
发表于 2019-7-8 17:44 | 只看该作者
看看楼主说的啥
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-12 15:38 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表