設計中最快的時鐘將確定 FPGA 必須能處理的時鐘速率。最快時鐘速率由設計中兩個觸發器之間一個信號的傳輸時間 P 來決定,如果 P 大于時鐘周期 T,則當信號在一個觸發器上改變后,在下一個邏輯級上將不會改變,直到兩個時鐘周期以后才改變,如圖所示。
圖1
02、FPGA所使用的時鐘必須具有低抖動特性
傳輸時間為信號在第一個觸發器輸出處所需的保持時間加上兩級之間的任何組合邏輯的延遲,再加兩級之間的布線延遲以及信號進入第二級觸發器的設置時間。無論時鐘速率為多少,每一個 FPGA 設計所用的時鐘必須具有低抖動特性。抖動 S 是觸發器的一個時鐘輸入到另一個觸發器的時鐘輸入之間的最大延遲。為使電路正常工作,抖動必須小于兩個觸發器之間的傳輸時間。
圖 2 顯示了如果抖動大于傳輸時間(S>P)將出現的情況,該電路用時鐘的兩個上升沿來延 遲信號 1。然而,信號 1 上的一個改變會在相同的時鐘周期上傳輸到的信號 3 上,從而引起信號 2 的改變。因為 S > P,電路將不能不正常。
圖2
注意事項
須注意的是,時鐘速率與傳輸延時并沒有什么關系,甚至普通的 100bps 時鐘也會出現抖動問題。這意味著雖然 FPGA 供應商宣稱他們的芯片具有較短的傳輸時間和很高的時鐘速率,但抖動問題可能會嚴重,甚至那些沒有運行在最高速率上的設計也是如此。
好在 FPGA 供應商已經認識到時鐘抖動的影響,并在他們的芯片中提供低抖動的布線資源。這些特殊的布線能夠在芯片中一個給定范圍內的任何兩個觸發器之間提供一個確定的最大抖動。部分產品的低抖動資源覆蓋了整個芯片,而其它的則可能只覆蓋了 FPGA 邏輯塊中的一個特定的行或列。對于一個需要很多不同時鐘源的設計,這些低抖動 FPGA 是比較理想的選擇。
03、多時鐘設計中使用異步時鐘將兩級邏輯結合
多時鐘設計的最嚴重問題之一是用異步時鐘將兩級邏輯結合在一起。由于異步時鐘會產生亞穩態,從而嚴重降低設計性能,或完全破壞設計所能實現的功能。在觸發器的時序要求產生沖突時(設置時間和保持時間)將產生亞穩態,觸發器的最終輸出是未知的,并使整個設計處于不確定狀態。如果有一級邏輯要將數據異步地發送到另一級,圖 3 所示的情形將不能滿足觸發器的設置和保持時間要求。確切地說,如果設計中含有異步邏輯將有可能會產生亞穩態。在處置異步資源時必需非常小心,因為這可能產生一些很嚴重的問題。
圖3
在用異步時鐘產生任何邏輯前應該盡量先考慮采用其它替代方法,用異步時鐘的組合邏輯是產生亞穩態問題的主要原因。同樣,當違反觸發器的設置和保持時間約束時,在一個短時間內輸出將具有不確定性,并且將最終設定在“1”或“0”上,確切的狀態不可預知。
幸好在面對亞穩態時,已經有了一些解決方案。比如雙寄存器方法:進入第一級觸發器的數據與時鐘異步,所以第一級觸發器幾乎肯定是亞穩態;然而,只要亞穩態的長度小于時鐘的周期,第二級觸發器就不會進入亞穩態。但是,FPGA 供應商很少提供亞穩態時間,盡管該時間一般小于觸發器的設置和保持時間之和。
編輯:hfy-
FPGA
+關注
關注
1626文章
21666瀏覽量
601830 -
寄存器
+關注
關注
31文章
5317瀏覽量
120006
發布評論請先 登錄
相關推薦
評論