1. 程式人生 > 其它 >跨時鐘(CDC)處理

跨時鐘(CDC)處理

當設計中存在多個時鐘域,訊號從一個時鐘域傳入另一個時鐘域時,即存在Clock Domain Crossing(CDC),需要小心處理,防止出現亞穩態

按時鐘快慢來劃分,跨時鐘域問題可以分成從慢時鐘域到快時鐘域以及從快時鐘域到慢時鐘域兩種場景;按訊號位寬來劃分,可以分為單位元跨時鐘域問題與多位元跨時鐘域問題

對於單位元跨時鐘域問題來說,在不握手的機制下,最基本的處理是需要打兩拍。而如果為從快時鐘域到慢時鐘域,則需要將訊號展寬,以確保慢時鐘域下能夠取樣到。展寬的基本要求通常為展寬至慢時鐘週期的1.5倍以上,或者說,要求展寬後的訊號要跨越慢時鐘3個時鐘沿,為了保證程式碼更迭所可能存在的時鐘比變化而導致的跨時鐘處理失敗,可在此處插入斷言

跨時鐘問題需要靈活處理,對於多個關聯控制訊號的跨時鐘處理,往往可以通過分析它們之間的邏輯關係,做輔助訊號或者輔助邏輯來變為單位元跨時鐘域來處理

對於多位元的資料訊號,可以通過多週期路徑或者FIFO來處理,多週期路徑即通過一個輔助控制訊號握手來確保資料的順利取樣

更多詳細內容,請參考:

http://www.sunburst-design.com/papers/CummingsSNUG2008Boston_CDC.pdf