跨時鍾域問題處理


  

在FPGA設計中,不太可能只用到一個時鍾。因此跨時鍾域的信號處理問題是我們需要經常面對的。

跨時鍾域信號如果不處理的話會導致2個問題:

(1) 若高頻率時鍾區域輸出一個脈沖信號給低頻率時鍾區域,則該脈沖很有可能無法被采樣到,示意圖如下,clk2根本采樣不到pulse,

但是從原理上來說,低頻時鍾是無法完全去采樣高頻信號的,這里面一定會丟失信息。這是無法避免的。

 

 

(2) 亞穩態問題

在說明亞穩態之前,我們需要先了解什么是建立時間保持時間

建立時間:在時鍾沿到來前,被采樣信號應該提前一段時間就進入穩定狀態,這個時間稱為建立時間

保持時間:在時鍾沿到來后,被采樣的信號應該保持穩定一段時間,這個時間稱為保持時間

而亞穩態就是建立時間和保持時間不滿足導致的。如下圖所示,就是建立時間不滿足,造成dout是個不確定值,即亞穩態。

很多新人以為亞穩態僅僅是邏輯上的障礙,其實亞穩態是實實在在的電路上的問題。模擬電路中,三極管主要工作在其放大區間,而在數字電路卻是要工作在截至態。亞

穩態非常類似模擬電路中的放大態,這個狀態將使得器件的輸出電流被放大,如果這個狀態被傳遞,那么將導致更多的電路處在放大電路的工作狀態中,這將引起巨大的

電流和功耗,甚至燒毀芯片,所以,跨時鍾域是一定會出現亞穩態的,但是我們必須要把亞穩態控制在一個很小的范圍內。這就是為什么要在其后面再用一個寄存器的原

因。它的功能就是把亞穩態僅僅限制在那一個寄存器的小區域。

 

 

亞穩態會造成嚴重的后果。就像將軍發命令一樣,若其發出的是一個亞穩態的命令,士兵A可能判定這個命令為進攻,士兵B可能判定這個命令為撤退,這將引起極大的混亂。

解決方案:

1,握手操作(高頻信號要進入低頻時鍾域)

針對問題1中所描述的情況,即快時鍾域傳遞一個脈沖信號到慢時鍾域,慢時鍾域很有可能采樣不到該脈沖。這時就需要采用握手操作來解決了。

首先,快時鍾域應該將脈沖信號轉換為一個持續信號,慢時鍾域采樣到該持續信號后,返回一個反饋信號,告知塊時鍾域將持續信號拉低。這種方法的本質就是降低頻率

 

 

2,相位控制:

考慮下面2種情況,

情況1:

 

情況2:

 

上面2種情況中,數據是隨着慢時鍾所變化的,現將該數據發送到快時鍾模塊。兩種情況唯一的區別在於時鍾相位的不同,但這就導致情況1滿足建立與保持時間,但情況2不滿足建立時間。

因此,跨時鍾域的時鍾相位控制是決定跨時鍾域功能正常的關鍵因素。

這種情況一般出現在我們使用DCM模塊時,這時候才能控制輸入與輸出的相位關系。建議無特殊要求下,相位選擇0,從而避免因相位問題導致的跨時鍾域問題。

3,雙跳技術(打兩拍)

在很多情況下,設計者是無法控制兩個時鍾間的相位關系的,因此方案1並不太適用。

若跨時鍾信號為單比特信號,我們可以采用雙跳技術來解決。

前面提到,將軍的亞穩態命令會導致士兵做出不同的判斷,而雙跳技術就是先把亞穩態命令轉化為確定命令,再傳送給士兵。這樣士兵接收到的都是統一命令,才能夠統一行動。

代碼如下,若sin跨時鍾域信號,則sreg很有可能為亞穩態信號,但是sout卻是確定信號,這個信號可能是確定的0,也可能是確定的1,但能夠保證后續接收到這個信號的模塊判定是統一的。

這個兩拍的電路很顯然,只適合信號從低頻時鍾跨越到高頻時鍾

 

 

4,異步雙口RAM及異步fifo

方案2,3只能用於單比特信號,對於多比特信號是不適用的。因為雙跳技術只能保證輸出一個確定值,但不能保證這個確定值是0還是1,比如4'b1111跨時鍾域傳輸,若用雙跳技術的話,可能變成4'b1010,這是不允許的。

雙口RAM

處理多bit數據的跨時鍾域,一般采用異步雙口RAM。假設我們現在有一個信號采集平台,ADC芯片提供源同步時鍾60MHz,ADC芯片輸出的數據在60MHz的時鍾上升沿變化,而FPGA內部需要使用100MHz的時鍾來處理ADC采集到的數據(多bit)。在這種類似的場景中,我們便可以使用異步雙口RAM來做跨時鍾域處理。
先利用ADC芯片提供的60MHz時鍾將ADC 輸出的數據寫入異步雙口RAM,然后使用100MHz的時鍾從RAM中讀出。對於使用異步雙口RAM來處理多bit數據的跨時鍾域,相信大家還是可以理解的。當然,在能使用異步雙口RAM來處理跨時鍾域的場景中,也可以使用異步FIFO來達到同樣的目的。

異步FIFO

FIFO是英文First In First Out 的縮寫,是一種先進先出的數據緩存器,它與普通存儲器的區別是沒有外部讀寫地址線,這樣使用起來非常簡單,但缺點就是只能順序寫入數據,順序的讀出數據,其數據地址由內部讀寫指針自動加1完成,不能像普通存儲器那樣可以由地址線決定讀取或寫入某個指定的地址。

使用異步FIFO可以在兩個不同時鍾系統之間快速而方便地傳輸實時數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM