回覆列表
  • 1 # 使用者5480262765187

    跨時鐘域處理是設計中無法避免的問題,而如何處理好跨時鐘域之間的訊號,對於很多IC設計新手應該是屬於必修課。

    在本文中,主要介紹3種跨時鐘域處理的方法,這3種方法可以說是最常用且最實用的方法,學會這3招後,對於相關的跨時鐘域處理便可以手到擒來。

    本文介紹的3種方法依次為:

    打兩拍;

    非同步雙口RAM;

    格雷碼轉換。

    打兩拍;

    非同步雙口RAM;

    格雷碼轉換。

    第一種方法:打兩拍

    大家應該很清楚,處理跨時鐘域的訊號可以是多bit或者是單bit。而打兩拍的方式一般見於處理單bit訊號。

    打兩拍的方式,說白了,其實就是定義兩個暫存器,對輸入的訊號進行延拍。

    而至於到底打幾拍,兩拍,3拍,還是3.5拍(3個暫存器+1個latch)。完全取決於時鐘的頻率和訊號本事的翻轉率。而量化的標準就是MTBF值。一般要求一個晶片的chip-MTBF大約在5年或者更多的10年左右。

    第二種方法:非同步雙口RAM

    對於多bit的資料,我們可以舉這樣的一個例子。假設我們現在有一個訊號採集平臺,ADC晶片提供源同步時鐘100MHz,ADC晶片輸出的資料在100MHz的上升沿變化,而晶片內部需要使用60MHz的時鐘來處理ADC採集到的資料(多bit資料)。

    在這種類似的場景中,我們就可以使用非同步雙口ram來做跨時鐘域處理。先利用ADC晶片提供的時鐘100MHz將ADC輸出的資料寫入非同步雙口RAM,然後使用60MHz的時鐘從RAM中讀出資料。

    ADC提供的時鐘是100MHz,而處理ADC資料的時鐘是60MHz,運用非同步雙口RAM就可以很輕鬆的處理這個跨時鐘域的問題。

    當然,在能使用非同步雙口RAM的場景中,也可以是用非同步雙口FIFO來達到同樣的目的。

    第三種方法:格雷碼轉換

    我們依然繼續使用介紹第二種方法中用到的ADC例子,將ADC取樣的資料寫入RAM時,需要產生RAM的寫地址,但我們讀出RAM中的資料時,肯定不是晶片一上電就直接讀取,而是要等RAM中有ADC的資料之後才去讀RAM。這就需要對RAM的寫地址進行判斷,當寫地址大於某個值之後再去讀取RAM。

    對於這種情景,RAM的寫地址是100MHz時鐘產生的,卻需要用到60MHz的時鐘去判斷這個讀地址,使用格雷碼轉換無疑是最好的方法。

    先將由ADC時鐘產生的寫地址轉成格雷碼,然後再將格雷碼寫地址進行打兩拍操作,再

  • 中秋節和大豐收的關聯?
  • 鋁氧化是什麼工藝?