|
數位同步可考慮用FIFO來做到, j7 U3 o8 J, n) j! A; ]
FIFO: First In First Out Memory) O& M, K% ~! H- ~$ C# n" [# w
也可以說是要做到clock domain crossing+ @, ]2 c" u! ]/ C
# C5 p% j( o; ]' F* ^7 I這個FIFO的設計要很小心,有很多時候會做出似是而非的電路,9 M0 }# V- p5 ]2 ~: d
在testing的部份,也要注意,因為有很多corner case測不到,
% }" N6 M6 i. u7 \7 y; tFIFO和串起來的DFF是不同的,因為它要能夠告知傳送端FIFO內部的資料是滿的或是空的, S6 {1 y2 q, P4 K, }' N9 f9 {) q
這看似容易,卻因為不同的clock domain而使得這個訊號會被誤傳,或是產生所謂的metastable status,5 p/ \1 ?; j" |# c
這個代表空的或是滿的的訊號的產生要用到非同步的比較器, p q+ I3 W' _+ b
有一個建議是用gray code來做內部的counter,也有別的做法,3 g* M; c8 k( G8 E3 S
有不清楚可以再寫訊息問我 |
評分
-
查看全部評分
|