视频字幕
異步FIFO是一種重要的數位電路組件,用於在不同時鐘域之間安全地傳輸數據。它主要應用於處理器與外設通信、網路數據緩衝等場景。異步FIFO包含寫入時鐘域、讀取時鐘域和FIFO記憶體陣列三個主要部分。由於寫入和讀取操作使用不同的時鐘,這會產生時鐘域跨越問題,也就是CDC問題,這是設計異步FIFO時必須解決的關鍵挑戰。
CDC問題是異步FIFO設計中的核心挑戰。當信號從一個時鐘域傳遞到另一個時鐘域時,由於時鐘頻率和相位的不同,可能違反接收端觸發器的建立時間和保持時間要求。這會導致亞穩態現象,使觸發器輸出處於不確定狀態。亞穩態可能持續一段時間才穩定到正確的邏輯電平,在此期間系統可能產生錯誤的邏輯狀態,嚴重影響系統可靠性。
Gray碼是解決CDC問題的關鍵技術。它的核心特性是相鄰碼字只有一個位元不同,這大大減少了多位元同時變化的情況。在異步FIFO中,使用Gray碼計數器作為讀寫指標可以確保跨時鐘域傳輸的安全性。Gray碼的編碼規則是當前位等於對應二進制位與高一位的異或,解碼則是當前位等於對應Gray碼位與已解碼高位的異或。這種設計有效避免了因多位元同時跳變而產生的錯誤狀態。
雙級同步器是解決CDC問題的經典方案。它由兩個串聯的D觸發器組成,當異步信號進入第一級觸發器時,可能產生亞穩態,但第二級觸發器提供了額外的穩定時間,使亞穩態有足夠時間解析到穩定狀態。系統的可靠性可以用MTBF來衡量,即平均故障間隔時間。通過適當的設計參數,雙級同步器可以將亞穩態傳播的機率降低到可接受的範圍,大幅提高系統可靠性。
完整的異步FIFO架構整合了前面討論的所有技術。系統包含Gray碼指標產生器、雙級同步器和狀態檢測邏輯。寫入和讀取指標都使用Gray碼計數,通過各自的雙級同步器跨越時鐘域。空滿狀態檢測邏輯比較同步後的指標來判斷FIFO狀態。整個系統協同工作,確保在不同時鐘域間安全可靠地傳輸數據,有效解決了CDC問題。