1. 程式人生 > 其它 >FPGA與各組成器件之間互聯 - FPGA的系統架構組成和器件互聯問題---FPGA通常作為從裝置與CPU連線

FPGA與各組成器件之間互聯 - FPGA的系統架構組成和器件互聯問題---FPGA通常作為從裝置與CPU連線

http://www.elecfans.com/emb/fpga/20150512370783_2.html

來源:EDNC BLOG•作者:阿昏豆 2015年05月12日 13:41

系統架構確定,下一步就是FPGA與各組成器件之間互聯的問題了。通常來說,CPU和FPGA的互聯介面,主要取決兩個要素:

  (1)CPU所支援的介面。

  (2)互動的業務。

  通常來說,FPGA一般支援與CPU連線的數字介面,其常用的有EMIF,PCI,PCI-E,UPP,網口(MII/GMII/RGMII),DDR等介面。作為匯流排類介面,FPGA通常作為從裝置與CPU連線,CPU作為主裝置通過訪問直接對映的地址對FPGA進行訪問。根據是否有時鐘同步,通常匯流排訪問分為同步或非同步的匯流排,根據CPU外部匯流排協議有所不同,但資料、地址、控制訊號基本是匯流排訪問型別中匯流排訊號所不能省略的。CPU手冊中會對訊號定義和時序控制有著詳細的說明,FPGA需要根據這些詳細說明來實現相應的邏輯。同時CPU還可以對訪問時序進行設定,比如最快時鐘,甚至所需的最小建立時間和保持時間,這些一般CPU都可以進行設定,而這些具體引數,不僅影響FPGA的實現,也決定匯流排訪問的速度和效率。對於同步匯流排,只需要根據輸入時鐘進行取樣處理即可,但對於非同步匯流排,則需要的對進入的控制訊號進行同步化處理,通常處理方式是寄存兩拍,去掉毛刺。因此用於取樣的時鐘就與CPU所設定的匯流排引數相關,如取樣時鐘較低,等控制訊號穩定後在譯碼後輸出,一個匯流排操作週期的時間就會相對較長,其處理的效率也相對較低;假如取樣時鐘過快,則對關鍵路徑又是一個挑戰,因此合理設定取樣頻率,便於介面的移植並介面的效率是設計的關鍵點和平衡點。

  對於匯流排型的訪問來說,資料訊號通常為三態訊號,用於輸入和輸出。這種設計的目的是為了減少外部連線的數量。因為資料訊號相對較多一般為8/16/32位資料匯流排。匯流排的訪問的優勢是直接對映到系統的地址區間,訪問較為直觀。但相對傳輸速率不高,通常在幾十到100Mbps以下。這種原因的造成主要為以下因素(1)受制匯流排訪問的間隔,匯流排操作週期等因素,匯流排訪問間隔即兩次訪問之間匯流排空閒的時間,而匯流排操作週期為從發起到相應的時間。(2)不支援雙向傳輸,並且FPGA需主動發起對CPU操作時,一般只有發起CPU的中斷處理一種方式。這種匯流排型操作特點,使其可以用作系統的管理操作,例如FPGA內部暫存器配置,執行過程中所需引數配置,以及資料流量較小的資訊互動等操作。這些操作資料量和所需頻寬適中,可以應對普通的嵌入式系統的處理需求。

  對於大資料流量的資料互動,一般採用專用的匯流排互動,其特點是,支援雙向傳輸,匯流排傳輸速率較快,例如GMII/RGMII、Upp、專用LVDS介面,及 SERDES介面。專用SERDES介面一般支援的有PCI-E,XAUI,SGMII,SATA,Interlaken介面等介面。 GMII/RGMII,專用LVDS介面一般處理在1GbpS一下的業務形式,而PCI-E,根據其型號不同,支援幾Gbps的傳輸速率。而XAUI可支援到10Gbps的傳輸速率,lnterlaken介面可支援到40Gbps的業務傳輸。

  對於不同所需的業務形式及處理器的型別,則可選擇相應的介面形式,來傳輸具體的業務。現今主流FPGA中都提供的各種介面的IP。選擇FPGA與各型CPU互聯介面,一般選擇主流的應用互動方案,特殊的介面缺少支撐IP,導致開發、除錯、維護和相容性的成本都較大,同時注意系統的持續演進的需要,如只在本專案使用一次,而下一專案或開發階段已摒棄此類介面,則需提前規劃技術路線。畢竟一個穩定、高效的介面互聯是一個專案成功的基礎。

  不是所有的嵌入式系統都需要“高大上”的介面形式,各類低速的穩定介面也同樣在FPGA的介面互聯中有著重要的角色,其中UART、SPI、I2C等連線形式也非常的常見。畢竟,一個優秀的設計不是“高大上”的堆積,而是對需求最小成本的滿足。適合的才是最美的。