一種基于SoPC的千兆以太網(wǎng)接口卡設(shè)計
摘要:研究并設(shè)計了一種基于SoPC的千兆以太網(wǎng)接口卡,重點對千兆以太網(wǎng)接口卡的組成、工作流程、EMAC、時鐘管理、用戶邏輯設(shè)計和軟件設(shè)計等關(guān)鍵技術(shù)進行了描述,并基于Xilinx平臺驗證了千兆以太網(wǎng)接口卡的有效性。本文的研究為基于SoPC實現(xiàn)自主化的千兆以太網(wǎng)產(chǎn)品具有一定的工程參考價值。
本文引用地址:http://www.ex-cimer.com/article/249045.htm關(guān)鍵詞:千兆以太網(wǎng);SOPC;接口卡
0 引言
隨著通信技術(shù)的迅猛發(fā)展,千兆以太網(wǎng)以其傳輸速度快、距離遠、接口普及、成本低、易于集成等特點,受到業(yè)內(nèi)青睞,廣泛應(yīng)用在通信、金融、商業(yè)、教育和政府機關(guān)等領(lǐng)域。
SoPC即可編程片上系統(tǒng),以FPGA為載體構(gòu)造面向應(yīng)用的完整系統(tǒng),具有開發(fā)周期短、難度和成本低的優(yōu)點。Xilinx公司推出基于FPGA器件開發(fā)SoPC的開發(fā)環(huán)境EDK,并在新一代器件中集成硬核EMAC,使得FPGA能夠和千兆以太網(wǎng)實現(xiàn)無縫連接。
本文研究并設(shè)計了一種基于SoPC的千兆以太網(wǎng)接口卡,重點對其組成、工作流程、EMAC、時鐘管理、用戶邏輯設(shè)計和軟件設(shè)計等關(guān)鍵技術(shù)進行了描述,并開發(fā)測試用例進行測試驗證。
1 千兆以太網(wǎng)接口卡系統(tǒng)結(jié)構(gòu)
本文采用Xilinx公司的Virtex-5 FX70T作為核心器件,基于嵌入式處理器PPC440實現(xiàn)千兆以太網(wǎng)接口卡高速通信功能。在設(shè)計實現(xiàn)中,所設(shè)計的接口卡包括PPC440、DMA控制器、MPMC、EMC、UART、定時器、EMAC、中斷控制器和GTX等內(nèi)容,如圖1所示。
其中,PPC440是整個SoPC的核心,它控制所有部件,運行控制程序。Xilinx提供PPC440的硬核,支持32位流水線,支持32位運算,單核最高主頻550MHz,處理能力1000DMIPS。在本設(shè)計中,PPC440工作主頻為400MHz,內(nèi)部PLB總線頻率為100MHz。
DMA控制器能夠在CPU配置之后長時間地獨立引導(dǎo)以太網(wǎng)數(shù)據(jù)在EMAC和MPMC之間高速交換。Xilinx提供獨立的IP核CDMAC,CDMAC的結(jié)構(gòu)包含4個DMA引擎,128bytes存儲器觸發(fā)能力,分散的地址數(shù)據(jù)Buffer。CDMAC針對MPMC提供了2個獨立的數(shù)據(jù)操作端口,針對EMAC提供了為其硬件總線構(gòu)造的4個收發(fā)端口,在CDMAC內(nèi)部有數(shù)據(jù)通道、控制通道,各包含2個DMA引擎,可以根據(jù)數(shù)據(jù)的長度產(chǎn)生DMA的不同長度讀寫觸發(fā)工作模式,最大效率地提高操作效率。
DDR2用來解決FPGA內(nèi)部RAM不足的問題,本系統(tǒng)采用MPMC作為DDR2的控制器。MPMC提供了1~8個端口來存取內(nèi)存,每個端口都能選擇一系列連接個性接口模塊(PIMs),包含PPC440MC、PLB、NPI、XCL和VFBC等接口。本系統(tǒng)將MPMC配置為兩端口模式。一個端口是PPC440MC,用于和
PPC440的接口;另一個端口為NPI接口,數(shù)據(jù)寬度為64位,用于要發(fā)送數(shù)據(jù)的輸入DDR2作為緩存。
FLASH用來固化和貯存可執(zhí)行的軟件程序,通過EMC接口連接在PLB總線上。UART用來完成PC機和SoPC系統(tǒng)之間的通信,定時器用來為實時操作系統(tǒng)提供周期節(jié)拍。
中斷控制器接收FPGA內(nèi)部各種中斷,包括定時器中斷、串口中斷等,并上報給PPC440,等待PPC440進行處理。
EMAC采用Xilinx提供的硬核實現(xiàn),用戶邏輯完成對EMAC的訪問和控制。EMAC產(chǎn)生的數(shù)據(jù)通過GTX進行串并/并串轉(zhuǎn)換后,通過外部光纖進行通信。
2 千兆以太網(wǎng)接口卡設(shè)計
千兆以太網(wǎng)接口卡基于SoPC設(shè)計,采用Xilinx提供的PPC440、MPMC、EMC、EMAC等軟硬核,結(jié)合自主開發(fā)的用戶邏輯,共同完成干兆以太網(wǎng)接口卡的通信功能。
2.1 工作原理
千兆以太網(wǎng)接口卡發(fā)送過程如下:
(1)當(dāng)需要發(fā)送時,通過外部高速接口將傳輸數(shù)據(jù)寫入內(nèi)部RAM中,暫時存入DDR2中;
(2)當(dāng)DDR2中數(shù)據(jù)達到一定的數(shù)量后,向PPC440發(fā)送中斷信號;
(3)當(dāng)PPC440收到中斷申請后,通過DMA通道將數(shù)據(jù)從千兆以太網(wǎng)送出。
千兆以太網(wǎng)接口卡接收過程如下:
(1)當(dāng)千兆以太網(wǎng)接收數(shù)據(jù)后,產(chǎn)生中斷;
(2)當(dāng)PPC440收到中斷申請后,通過DMA通道將數(shù)據(jù)寫入DDR2中;
(3)外部高速接口通過內(nèi)部RAM,將DDR2中的數(shù)據(jù)讀出。
2.2 EMAC
千兆以太網(wǎng)MAC采用Xilinx公司提供的三速嵌入式以太網(wǎng)MAC核(EMAC)實現(xiàn)。該IP核集成了10/100/1000Mb/s以太網(wǎng)MAC核,符合802.3—2002規(guī)范,支持全雙工的10/100/10013Mb/s,半雙工的10/100Mb/s。支持多種可配置的物理層接口,包括MII、GMII、RGMII、SGMII和1000BASE—XPCS/PMA接口。EMAC中包含主機接口、客戶端、時鐘管理、MII/GMII/RGMII接口等,如圖2所示。
在設(shè)計中,根據(jù)系統(tǒng)需求對EMAC進行配置。配置接口為主機配置模式,并以8位數(shù)據(jù)進行訪問,配置速率為固定千兆模式,配置物理接口為SGMII模式,通過GTX進行串并/并串轉(zhuǎn)換。
2.3 時鐘管理
整個系統(tǒng)需要提供2個外部時鐘:40MHz單端時鐘和125MHz差分時鐘。
40MHz時鐘通過倍頻產(chǎn)生100MHz、200MHz和400MHz時鐘。100MHz時鐘為PLB總線提供時鐘,200MHz時鐘為DDR2提供時鐘,400MHz時鐘為
PPC440內(nèi)頻時鐘。
125MHz差分時鐘用于提供GTX、EMAC和內(nèi)部邏輯時鐘。125MHz高質(zhì)量的差分時鐘經(jīng)過IBUFDS后直接連接GTX的CLKIN端,然后GTX返回一個125MHz時鐘REFCLKOUT,經(jīng)過內(nèi)部DCM產(chǎn)生125MHz和162.5MHz時鐘,分別提供給GTX并行端時鐘、EMAC時鐘和內(nèi)部邏輯,如圖3所示。
2.4 用戶邏輯設(shè)計
用戶邏輯中完成三個功能:EMAC配置接口設(shè)計、客戶端發(fā)送單元設(shè)計和客戶端接收單元設(shè)計。
EMAC配置接口實現(xiàn)PPC440和EMAC之間的訪問控制。EMAC通過Xilinx提供的IPIF接口掛接在PLB總線上。
評論