|
數位同步可考慮用FIFO來做到; g/ W+ K& R; n+ r8 b# d2 H; y ~/ m$ N
FIFO: First In First Out Memory" _& x1 `+ b, M4 ?7 U' {+ |4 }
也可以說是要做到clock domain crossing9 y) k, e5 `3 l& ^
) m" F' ?5 T6 l
這個FIFO的設計要很小心,有很多時候會做出似是而非的電路,
' C& x8 d# N) w. ^% V在testing的部份,也要注意,因為有很多corner case測不到,& F2 c$ L: O3 D, Z( X- O _
FIFO和串起來的DFF是不同的,因為它要能夠告知傳送端FIFO內部的資料是滿的或是空的,0 G2 m7 F4 ^" j$ x3 T# |$ m
這看似容易,卻因為不同的clock domain而使得這個訊號會被誤傳,或是產生所謂的metastable status,
0 I" K& i! D8 X/ G這個代表空的或是滿的的訊號的產生要用到非同步的比較器,/ p1 Q! w* @+ j' d6 f% y
有一個建議是用gray code來做內部的counter,也有別的做法,) e: I3 x$ C& e2 p- W2 }, _9 P
有不清楚可以再寫訊息問我 |
評分
-
查看全部評分
|