|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
有关状态机的文章,事实上已经写过很多了,可是即使如此,真的懂了吗?真的能熟练应用吗?未必吧。这篇博文来源是《FPGA之道》,认真下看去收货颇丰!) Y/ l5 h9 h7 i% K( ]
# e) h$ M8 t1 T
" S- _" G* ~9 k- V, F
借这个主题来梳理下状态机:. O( v$ K% W3 z( [( ]7 n
5 Z+ l6 f9 _/ Q2 G9 _; R3 F+ `/ L8 J' w4 n; K9 _5 C6 X
状态机简介! S0 r5 D3 A! ]
2 W' }# p6 b. D9 p }; l. W. X0 R, y+ m1 ^3 F* W6 b! z" v) b% h
状态机是FPGA设计中一种非常重要、非常根基的设计思想,堪称FPGA的灵魂,贯穿FPGA设计的始终。2 V( t0 Q6 @1 T$ F
( s+ T- H0 k+ J, X% Y# g6 O# X! F+ ^/ l8 |
简单地说,状态机就是一副描绘着状态变迁的状态转移图,它体现着系统对外界事件的反应和行为。( T. \" z ^) g7 u" X
, f, x& c7 p; [ X
) l3 U% m* W; U" B+ Q2 ^2 O, o' U3 NFPGA中的状态机是指有限状态机,简称为FSM,是指状态节点数和输入、输出范围皆有限的状态机。需要说明的是,虽然有限状态机的状态节点和输入、输出皆为有限的,但这并不意味着它仅能进行有限次的处理,这是因为有限状态机可以形成闭环系统,所以可以用有限个状态处理无限的事件,从而到达化有限为无穷的境界。
# g0 A0 U0 a' O0 k6 O
6 W- [" p& F9 s# R) q1 i
$ l, X W' X7 r( Y+ ]0 Z2 ?例如,宇宙中物资的三种最基本的状态:固态,液态和气态,它们之间的状态转移图如下:
4 G( o7 m1 _3 G2 l6 o$ h% d; _; W" V) t$ A6 R9 t5 U
! W/ X5 t+ D5 w: M8 E! n4 @& V# g
$ [- b% A5 o- A' P" L+ [; o1 B$ N- x* `7 p0 J* D
) D; ~3 m6 q) N- L: m" \" A从上图可以看出,虽然该状态机仅有三个状态,输入(六个触发条件)、输出(状态本身即为输出)也是有限的,但是它却永远不会结束,因为宇宙中的物理转换永远也不会停止。。。至少可预见的未来不会停止。. k: d: X3 @, x
5 X9 r2 \2 C/ d6 ^ y" H. Q
7 X9 A# t* }+ F! t+ [0 F$ A状态机的组成六要素:/ T t- c. a2 @. r$ i3 U
- [' Q, ?# }6 i: P" ~4 O1 L
`9 U Y8 q G# ?$ v9 V7 m8 b3 \. E7 f* u
4 M( M" H$ g) z9 |1 T8 [1 W: t% Y7 ^6 P+ u' n/ `
) L/ O w# f$ R! s4 u
& ?& ~3 z0 }& k8 j c9 S) V1 W
2 R: S2 r; J" k! T) a& r s! m
% l d s! d4 U5 X! Z9 S/ R
/ D" w& V& \* Z2 g* u
J) \# o( I m/ u0 i |
|