數位同步可考慮用FIFO來做到+ {" l" z0 z% I3 q, b: ?6 A. C9 ?
FIFO: First In First Out Memory- L/ i0 E5 Z6 d# K0 R( y
也可以說是要做到clock domain crossing) ]% g9 ]6 H! \) c
2 c$ k( `& I% k3 F9 o這個FIFO的設計要很小心,有很多時候會做出似是而非的電路, 2 L* X* W/ G. E在testing的部份,也要注意,因為有很多corner case測不到, 2 s) y- F* g# ]FIFO和串起來的DFF是不同的,因為它要能夠告知傳送端FIFO內部的資料是滿的或是空的,- P H3 O' }" H/ o
這看似容易,卻因為不同的clock domain而使得這個訊號會被誤傳,或是產生所謂的metastable status,7 @9 X$ P! Q/ S s* z
這個代表空的或是滿的的訊號的產生要用到非同步的比較器, 1 c# E) t7 H9 @" Y有一個建議是用gray code來做內部的counter,也有別的做法,9 [) D: W) ?* l) D
有不清楚可以再寫訊息問我