|
勇敢的芯伴你玩轉Altera FPGA連載11:關于FPGA器件的時鐘 特權同學,版權所有 配套例程和更多資料下載鏈接: http://pan.baidu.com/s/1i5LMUUD
如圖2.7所示,理想的時鐘模型是一個占空比為50%且周期固定的方波。file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif為一個時鐘周期,file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif為高脈沖寬度,file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif為低脈沖寬度,file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif=file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif+file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif。一般情況下,FPGA器件內部的邏輯會在每個時鐘周期的上升沿執行一次數據的輸入和輸出處理,而在兩個時鐘上升沿的空閑時間里,則可以用于執行各種各樣復雜的處理。而一個比較耗時的復雜運算過程,往往無法一個時鐘周期完成,便可以切割成幾個耗時較小的運算,然后在數個時鐘上升沿后輸出最終的運算結果。時鐘信號的引入,不僅讓所有的數字運算過程變成“可量化”的,而且也能夠將各種不相關的操作過程同步到一個節拍上協同工作。
圖2.7 理想時鐘波形 FPGA器件的時鐘信號源一般來自外部,我們通常使用晶體振蕩器(簡稱晶振)產生時鐘信號。當然了,一些規模較大的FPGA器件內部都會有可以對時鐘信號進行倍頻或分頻的專用時鐘管理模塊,如PLL或DLL。由于FPGA器件內部使用的時鐘信號往往不只是供給單個寄存器使用,因為在實際應用中,成百上千甚至更多的寄存器很可能共用一個時鐘源,那么從時鐘源到不同寄存器間的延時也可能存在較大偏差(我們通常稱為時鐘網絡延時),而我們知道,這個時間差過大是很要命的。因此,FPGA器件內部設計了一些稱之為“全局時鐘網絡”的走線池。通過這種專用時鐘網絡走線,同一時鐘到達不同寄存器的時間差可以被控制到很小的范圍內。而我們又如何能保證輸入的時鐘信號能夠走“全局時鐘網絡”呢?有多種方式,對于外部輸入的時鐘信號,只要將晶振產生的時鐘信號連接到“全局時鐘專用引腳”上;而對于FPGA內部的高扇出控制信號,通常工具軟件會自動識別此類信號,將其默認連接到“全局時鐘網絡”上,而設計者若是不放心,也可通過編譯報告進行查看,甚至可以手動添加這類信號。關于時鐘電路的設計和選型,有如下幾個基本事項需要考慮: ● 系統運行的時鐘頻率是多少?(可能有多個時鐘) ● 是否有內部的時鐘管理單元可用(通常是有)?它的輸入頻率范圍(需要查看器件手冊進行確認)? ● 盡可能選擇專用的時鐘輸入引腳。 關于FPGA時鐘電路的PCBLayout設計,通常需要遵循以下的原則。 ● 時鐘晶振源應該盡可能放在與其連接的FPGA時鐘專用引腳的臨近位置。 ● 時鐘線盡可能走直線。如果無法避免轉彎走線,使用45度線,盡量避免T型走線和直角走線。 ● 不用同時在多個信號層走時鐘線。 ● 時鐘走線不要使用過孔,因為過孔會導致阻抗變化及反射。 ● 靠近外層的地層能夠最小化噪聲。如果使用內層走時鐘線,要有良好的參考平面,且走帶狀線。 ● 時鐘信號應該有終端匹配電路,以最小化反射。 ● 盡可能使用點到點的時鐘走線。 ● 如圖2.8所示,對于時鐘差分對的走線,必須嚴格按照D>2S規則,以最小化相鄰差分對間的串擾。
圖2.8 時鐘差分對的間隔 ● 確保整個差分對在整個走線過程中的線間距恒定。 ● 確保差分對的走線等長,以最小化偏斜和相移。 ● 同一網絡走線過程中避免使用多個過孔,以確保阻抗匹配和更低的感抗。 ● 高頻的時鐘和USB差分信號對走線盡可能短。 ● 高頻時鐘或周期性信號盡可能遠離高速差分對以及任何引出的連接器(例如I/O連接器、控制和數據連接器或電源連接器)。 ● 應當保證所有走線有持續的地和電源參考平面。 ● 為了最小化串擾,盡量縮短高頻時鐘或周期性信號與高速信號并行走線的長度。推薦的最小間距是3倍的時鐘信號與最近參考面間距。 ● 當一個時鐘驅動多個負載時,使用低阻抗傳輸線以確保信號通過傳輸線。 ● 信號換層時使用回路過孔。 同步時鐘的延時應該與數據相匹配。確保時鐘與同步數據總線在同一層走線,以最小化不同層之間的傳輸速率差異。 |