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