時序分析與CDC
在非同步FIFO中,將寫入指標與讀取指標轉換為格雷碼後,再同步化到對方時脈域的理由何者正確?
- A轉換為格雷碼後位元數減半,所需的同步器較少
- B每前進1步只有1個位元改變,因此即使在變化途中取入,也會是前進前或前進後的正確值
- C格雷碼的訊號不會成為亞穩態,因此不需要同步化
查看答案與解析
正確答案:B. 每前進1步只有1個位元改變,因此即使在變化途中取入,也會是前進前或前進後的正確值
二進位的指標會像從 0111 變為 1000 這樣同時改變多個位元,若對各位元分別同步化,可能收到完全無關的值。若使用格雷碼,1次遞增只會改變1個位元,因此即使該位元成為亞穩態,無論穩定為新值或舊值,結果都會是前進前或前進後的值。只是看到稍舊的值,FIFO並不會因此損壞。位元數不變,亞穩態本身也可能發生,因此仍需要同步器。
非同步FIFO的架構 · 在圖解集中查看
繼續練習時序分析與CDC的另外9題