系統架構確定,下一步就是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等連接形式也非常的常見。畢竟,一個優秀的設計不是“高大上”的堆積,而是對需求最小成本的滿足。適合的才是最美的。
FPGA與各組成器件之間互聯 - FPGA的系統架構組成和器件互聯問題---FPGA通常作為從設備與CPU連接
Serial RapidIO (SRIO)與PCIE
1.1 與PCIe的差異
典型的PCIe結構定義了一個以單個中央處理器為核心的計算機系統,比如我們常見的工控機、PXIe機箱控制器、服務器內的IO設備。從系統架構來看,這個結構的優勢在于可有統一的軟件驅動,軟件模型,設備間具備優異的兼容性。兼容性才是王道,廠商就可以用一個標準包打天下。
圖 1?1 PCIe 互聯架構
PCIe 的幀格式如下圖所示。幀由 1 字節的幀起始、2 字節的序列號、16 或 20 字節的報頭、0 到 4096 字節的數據字段、0 到 4 字節的 ECRC 字段、4 字節的 LCRC、和 1 字節的幀結束。數據字段中傳輸的位數越少,開銷就越大。零字節數據字段會導致 100% 的開銷,因為沒有傳輸數據。
圖 1?2 幀格
RapidIO定義了一種高性能、分組交換互連技術,用于在微處理器、DSP、通信和網絡處理器、系統內存和外圍設備之間傳遞數據和控制信息。RapidIO 適用于點對點的設備間通訊,不需要經過一個中央處理器進行調度,就可以完成設備間的通訊,并且包長度簡單,效率相對于PCIe要更高,有效數據傳輸速度更快。但是RapidIO沒有定義標準的軟件模型,這就導致廠家之間的設備大概率無法兼容,從而只能在某些領域進行部署,不易推廣。
圖 1?3 RapidIO 互聯架構
RapidIO 由于比PCIe更簡單、更高效、延遲更低等特點,已經在嵌入式領域、圖像處理、通訊系統、軍工航天有了大量的應用。
我們來看一個應用場景,在醫學影像等圖像處理領域,經常需要擴展單塊DSP、FPGA的計算能力,這時候需要將多個DSP或者FPGA通過高速串口進行互聯,此時RapidIO就是當前互換性最好的一個最佳選擇,因為PCIe太過復雜,Xilinx的Auraro效率也不滿足要求,并且互換性不好。
我們來看一下在RapidIO之前,實現多個DSP系統互聯的方法:
圖 1?4 多個DSP設備通過網絡互聯
圖 1?5 多個DSP設備可以通過RapidIO 實現任意互聯通訊
2 可用的驗證硬件
目前具備SRIO接口的硬件不多,我們推薦2類可用的開發板:
1、創龍科技開發的TI DSP開發板 也可用于評估EMIF等接口
2、Xilinx 的KC705等具備高速GTX/GTP接口的開發板,Xilinx提供了兼容SRIO 2.2的IP可供評估;
審核編輯:湯梓紅
-
FPGA
+關注
關注
1629文章
21750瀏覽量
604106 -
cpu
+關注
關注
68文章
10873瀏覽量
212094 -
Xilinx
+關注
關注
71文章
2167瀏覽量
121633
原文標題:2???? 可用的驗證硬件
文章出處:【微信號:被硬件攻城的獅子,微信公眾號:被硬件攻城的獅子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論