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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在设计状态机时有几种状态编码方法:二进制,格雷码(灰色)和独热码(一个热门代码)。他们各有各的优点。
: j/ ~8 h! y+ o& x& e' ~& n
' z' |5 m/ N6 v0 T

( M9 r1 X- v8 i& Y: v0 N独热码,在编码中使用位数较多,其中只有一位位高电平,减少编码复杂度,可减少实现状态机的组合逻辑数目,减少复杂度,一定程度提高系统的速度,在逻辑资源充裕,FPGA逻辑速度有要求的情况下可考虑该编码方式,相对于格雷码,在时序问题较差的情况下,一定程度上增加了亚稳态的概率。使用独热码编码时,会出现很多未使用的状态,例如:0001 0010 0100 1000$ c5 ?+ `* ?3 z2 C" m
, q* ]- G& R+ n: ^) K7 i
" v8 E9 T2 c* F9 Z- W
二进制编码,减少编码时触发器的数量,编码方式较为容易理解,但是在状态机运转过程中,触发器反转次数较多,相对FPGA内部速率有稍微的影响,同时在时序要求严格的情况下,也会稍微增加亚稳态出现的概率。使用二进制编码时,如果状态机的状态数不是2的指数次方时,也会出现未使用状态。例如:00 01 10 11
+ }5 D- [9 j! q; N" T3 p! u
- F: F9 |) P% P5 O% {* [- v
, D$ ^4 F4 w# o0 F; S5 O
格雷码,在减少编码时触发器的数量的同时,降低了亚稳态的出现的概率,但是编码方式较为复杂,实现状态机时触发器反转次数最少,相对功率有所降低,是最为适合工程实现的编码方式。使格雷码时,如果状态机的状态数不是2的指数次方时,也会出现未使用状态。格雷码每个相邻的状态切换只有一个位的信号跳变,适用于异步握手的情况,比如异步FIFO的指针计数。例如:00 01 11 1
; W3 X9 T6 r( f
, i7 F8 {* `2 o& r7 t

+ G( P# ?: N7 K" C$ H  i( j" V% ^
2 _/ e3 X' n3 q8 F: Q1 H: ?
8 I' m* {3 p, c% z( `( {4 h

0 p6 A% l: ~$ s% D1 H, d% i9 W
# c0 n8 W1 y9 x* W2 F: B2 H& L4 ?9 ~
) V  I5 d3 S3 q2 a- Z+ m( D
! R: p* ]7 P* }( b

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-11 13:53 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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