以太網是一個占據絕對優勢的固線連接標準。Xilinx? Virtex?-5 以太網媒體接入控制器(以太網MAC)模塊提供了專用的以太網功能,它和 Virtex-5 RocketIO? GTP收發器以及 SelectIO? 技術相結合,能夠讓用戶與各種網絡設備進行連接。在Virtex-5器件中,以太網MAC模塊作為一個硬件塊集成在FPGA內部。 在Xilinx設計環境中,以太網MAC是一個庫原語,名為TEMAC。該原語包括一對10/100/1000 Mbps的以太網MAC。每個Virtex-5 LXT器件含有四個以太網 MAC模塊;因此,一個Virtex-5 LXT設計能夠融合兩個TEMAC原語。利用標準的Xilinx產品,您可以建立一系列度身定制的數據包處理和網絡端點產品。Xilinx還提供了一種超頻模式,它能夠使底板的連接速率高達2,000 Mbps。 基于Virtex-4 FX 以太網 MAC,Xilinx開發出了Virtex-5 以太網 MAC,較之前者,后者在全局時鐘使用、串行接口的靈活性以及軟件控制復雜度方面都有了較大的改進。 本文將介紹Virtex-5 器件中的以太網 MAC模塊的功能集,同時描述Virtex-5 和Virtex-4 FX 以太網 MAC之間的區別,指出一些潛在的應用,探索如何使用標準的Xilinx工具將以太網MAC融入用戶的設計。 支持的接口 Virtex-5 以太網 MAC完全符合IEEE802.3規范。圖1 顯示了一個以太網 MAC的模塊結構圖。 圖1:Virtex-5以太網MAC的模塊結構圖 物理接口 您可以單獨配置每個以太網MAC的物理接口,使其作為五種不同的以太網接口中的一種進行工作。 媒體獨立接口(MII),吉比特媒體獨立接口(GMII)和簡化的吉比特媒體獨立接口(RGMII)是并行接口。它們通常連接到一個外部物理層(PHY)芯片以提供速率為 10/100/1000 Mbps 的BASE-T功能。同時它還支持速率為 10/100 Mbps的半雙工操作以及各種速率條件下的全雙工操作。 串行吉比特媒體獨立接口和1000 BASE-X是串行接口,它們使用以太網 MAC中的物理編碼子層(PCS)和物理媒體接入子層(PMA)部分。它們連接到Virtex-5 RocketIO GTP串行收發器。當與并行接口一起使用時,SGMII提供了速率為10/100/1000 Mbps的全雙工BASE-T功能。該串行接口大大減少了與外部PHY芯片相連的引腳數量。 當將以太網 MAC配置成1000 BASE-X模式時,PCS/PMA模塊與RocketIO收發器一起工作,能夠提供與吉比特轉換器(GBIC)或者小型可插式(SFP) 光纖收發器進行直接連接所需要的所有功能。這可以避免1000 BASE-X網絡應用所需的外部PHY芯片。 控制接口 主機接口為接入以太網 MAC模塊配置寄存器提供了通道。配置選項的示例中包括巨幀使能、暫停、單播地址設置以及幀檢驗序列生成。 可以通過通用主機總線或者設備控制寄存器(DCR)總線(當與處理器連接時)對主機接口進行訪問。另外,每個以太網 MAC還有一個可選的管理數據I/O (MDIO)接口。它允許對外部PHY的管理寄存器和以太網 MAC中PCS/PMA內部的物理接口管理寄存器進行訪問。 客戶端接口 發送器的客戶端接口將幀傳送給以太網 MAC。當接收到的數據小于最短的以太網幀長度時,發送器將該數據加長,并且保持最小的幀間距;但是,您可以增加間隔的長度,還可以通過配置發送器在幀中添加一個幀檢驗序列。一個單獨的流控制接口允許您生成暫停幀。在半雙工模式下,信號發送之間存在沖突,在有效沖突情況下,需要進行幀重發。 接收器接口檢驗傳入幀和信號幀誤差。這里分別提供了好幀信號和壞幀信號。還可以通過配置以太網MAC以便在檢測到有效的暫停幀之后,暫停和重新啟動幀傳輸。 客戶端接口的數據的寬度通常是8位或者16位。8位接口主要針對標準的以太網應用,它利用一個125 MHz的時鐘產生1,000 Mbps的數據率。當使用16比特模式時,可以在不提高客戶端接口時鐘頻率的條件下將數據率提高到2,000 Mbps。 每個以太網 MAC都會輸出一些統計向量,其中含有發送和接收數據通路上所看到的以太網幀的信息。Xilinx CORE Generator?軟件免費提供了一個外部統計模塊。該統計模塊對每個以太網 MAC的發送和接收數據通路上的所有統計信息進行累加。 Virtex-5 以太網 MAC 的新特性 在 Virtex-4 FPGA中,僅僅實現數據通路就會消耗多達四個全局時鐘緩沖器:其中兩個分別用于發送和接收客戶端接口邏輯,另外兩個分別用于發送和接收的物理接口邏輯。在 Virtex-5 FPGA 中,Xilinx添加了一個時鐘使能特性。您可以把生成的時鐘用于所有客戶端邏輯的物理接口。內部產生的時鐘使能,為在每個接口保持正確的數據吞吐率提供了一個方法。這種方法使所需的時鐘緩沖器數目減少了一半。 DCR 總線尋址 現在Virtex-5 DCR接口為每個以太網 MAC提供了一個單獨的基地址。這使得共享 DCR 總線接口對軟件驅動程序成為透明的。軟件不再需要知道每個單獨以太網 MAC的位地址;硬件根據基地址自動選擇正確的比特位。 串行接口改動 Xilinx對串行接口的操作做了一些改動。隨著一個可編程鏈接計時器的加入,自動檢測功能變得更加靈活。您可以在改變自動檢測進程時序的同時縮短仿真時間。 新添加的單向模式根據IEEE802.3ah-2004規范執行單向使能功能。一旦使能,不管有效輸入是否出現在接收端,以太網 MAC都會進行傳輸。 最后,以太網MAC和收發器可以產生回環。這使得在回環狀態中能夠將閑置狀態傳輸給鏈接對象,從而確保該鏈接保持活動性. Virtex-5 以太網 MAC 使用的模型 圖2:在Virtex-5 FPGA上,MAC連接到一個處理器 Virtex-5 以太網 MAC的多功能性使其可以應用在眾多領域。比如,您可以: 可以將該以太網 MAC 連接到一個在網絡處理或者遠程監測系統中運行協議棧的處理器上,如圖2所示。 將以太網 MAC 連接到一個在 FPGA 上實現的數據包處理系統,例如校驗和計算及驗證的卸載引擎或者遠程直接存儲器訪問設計。 針對數據包的存儲、橋接或者交換應用,將多個以太網 MAC 連接到專用數據包 FIFO 和外部存儲器。 工具和IP支持 Xilinx通過CORE Generator軟件、LogiCORE? IP和參考設計對以太網 MAC提供支持。 Virtex-5 以太網 MAC 封裝 圖3:Virtex-5以太網MAC封裝的模塊結構圖 圖3顯示了一個HDL封裝的模塊結構圖,它可以從Xilinx的 CORE Generator工具中獲得。 以太網 MAC是一個具有162個端口和79個參數的復雜組件。封裝文件使您可以僅對特定應用所需端口的參數和接口輕松進行設置。它們的另外一個優勢是簡化了時鐘和物理I/O資源的使用。 分級結構使您可以針對自己的應用抽取正確的封裝。 以太網 MAC封裝。在最低級別,實體化一個單獨的或者雙以太網 MAC,同時在CORE Generator GUI中將它的屬性設置成您偏好的選項。所有未使用的輸入端口接地,未使用的輸出端口保持開路狀態。 模塊級別的封裝。在下一層級,對物理接口以及所要求的時鐘資源進行實體化。這包括用于串行接口的 RocketIO GTP 收發器。同時針對您的配置對時鐘進行優化,并且利用時鐘將輸出同步到您的設計。 LocalLink級別的封裝。在該級別,將 FIFO 添加到客戶端發送器和接收器接口。FIFO能夠處理接收時壞幀的丟失并且以半雙工模式對幀重新傳輸。LocalLink可以作為后端接口使用。 示例設計的封裝。頂層具有一個演示設計,在這個設計中接收到的數據經過回環重新發送給發送器。您可以將該設計下載到一個開發板上,然后利用網絡設備對該接收器發出激勵,從而演示硬件中以太網 MAC的操作過程。激勵該設計的接收器輸入和監視該設計發送器輸出的測試臺也包含在CORE Generator軟件中。 LogiCORE IP 和參考設計 現有的大部分Virtex-4 以太網 MAC文檔都可以在Virtex-5 以太網 MAC上重復使用。例如,《以太網內核硬件演示平臺》 (XAPP443www.xilinx.com/ bvdocs/cn/appnotes/xapp443.pdf )同樣適用于Virtex-5 以太網 MAC。LogiCORE IP,比如以太網統計,已經支持這種新的架構。 結論 Virtex-5 以太網 MAC為各種網絡接口提供了一個經濟合算的解決方案,使您能夠以10/100/1000 Mbps的速率連接到BASE-X 和 BASE-T網絡。Xilinx的軟件工具和 IP 同樣為您充分利用該以太網 MAC的改進特性提供了相應支持。 注:本文作者分別是Xilinx公司高級設計工程師 Nick McKay、Xilinx公司高級設計工程師 Soma Potluri以及Xilinx公司高級設計工程師Stuart Nisbet三位專業人士。 |