<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設計應用 > 基于SoPC的千兆以太網接口卡的設計和實現

          基于SoPC的千兆以太網接口卡的設計和實現

          作者: 時間:2016-10-10 來源:網絡 收藏

          摘要:研究并設計了一種基于SoPC的,重點對的組成、工作流程、EMAC、時鐘管理、用戶邏輯設計和軟件設計等關鍵技術進行了描述,并基于Xilinx平臺驗證了的有效性。本文的研究為基于SoPC實現自主化的千兆以太網產品具有一定的工程參考價值。

          本文引用地址:http://www.ex-cimer.com/article/201610/306414.htm

          關鍵詞:千兆以太網;;接口卡

          0 引言

          隨著通信技術的迅猛發(fā)展,千兆以太網以其傳輸速度快、距離遠、接口普及、成本低、易于集成等特點,受到業(yè)內青睞,廣泛應用在通信、金融、商業(yè)、教育和政府機關等領域。

          SoPC即可編程片上系統,以FPGA為載體構造面向應用的完整系統,具有開發(fā)周期短、難度和成本低的優(yōu)點。Xilinx公司推出基于FPGA器件開發(fā)SoPC的開發(fā)環(huán)境EDK,并在新一代器件中集成硬核EMAC,使得FPGA能夠和千兆以太網實現無縫連接。

          本文研究并設計了一種基于SoPC的千兆以太網接口卡,重點對其組成、工作流程、EMAC、時鐘管理、用戶邏輯設計和軟件設計等關鍵技術進行了描述,并開發(fā)測試用例進行測試驗證。

          1 千兆以太網接口卡系統結構

          本文采用Xilinx公司的Virtex-5 FX70T作為核心器件,基于嵌入式處理器PPC440實現千兆以太網接口卡高速通信功能。在設計實現中,所設計的接口卡包括PPC440、DMA控制器、MPMC、EMC、UART、定時器、EMAC、中斷控制器和GTX等內容,如圖1所示。

          基于SoPC的千兆以太網接口卡的設計和實現

          其中,PPC440是整個SoPC的核心,它控制所有部件,運行控制程序。Xilinx提供PPC440的硬核,支持32位流水線,支持32位運算,單核最高主頻550MHz,處理能力1000DMIPS。在本設計中,PPC440工作主頻為400MHz,內部PLB總線頻率為100MHz。

          DMA控制器能夠在CPU配置之后長時間地獨立引導以太網數據在EMAC和MPMC之間高速交換。Xilinx提供獨立的IP核CDMAC,CDMAC的結構包含4個DMA引擎,128bytes存儲器觸發(fā)能力,分散的地址數據Buffer。CDMAC針對MPMC提供了2個獨立的數據操作端口,針對EMAC提供了為其硬件總線構造的4個收發(fā)端口,在CDMAC內部有數據通道、控制通道,各包含2個DMA引擎,可以根據數據的長度產生DMA的不同長度讀寫觸發(fā)工作模式,最大效率地提高操作效率。

          DDR2用來解決FPGA內部RAM不足的問題,本系統采用MPMC作為DDR2的控制器。MPMC提供了1~8個端口來存取內存,每個端口都能選擇一系列連接個性接口模塊(PIMs),包含PPC440MC、PLB、NPI、XCL和VFBC等接口。本系統將MPMC配置為兩端口模式。一個端口是PPC440MC,用于和

          PPC440的接口;另一個端口為NPI接口,數據寬度為64位,用于要發(fā)送數據的輸入DDR2作為緩存。

          FLASH用來固化和貯存可執(zhí)行的軟件程序,通過EMC接口連接在PLB總線上。UART用來完成PC機和SoPC系統之間的通信,定時器用來為實時操作系統提供周期節(jié)拍。

          中斷控制器接收FPGA內部各種中斷,包括定時器中斷、串口中斷等,并上報給PPC440,等待PPC440進行處理。

          EMAC采用Xilinx提供的硬核實現,用戶邏輯完成對EMAC的訪問和控制。EMAC產生的數據通過GTX進行串并/并串轉換后,通過外部光纖進行通信。

          2 千兆以太網接口卡設計

          千兆以太網接口卡基于SoPC設計,采用Xilinx提供的PPC440、MPMC、EMC、EMAC等軟硬核,結合自主開發(fā)的用戶邏輯,共同完成干兆以太網接口卡的通信功能。

          2.1 工作原理

          千兆以太網接口卡發(fā)送過程如下:

          (1)當需要發(fā)送時,通過外部高速接口將傳輸數據寫入內部RAM中,暫時存入DDR2中;

          (2)當DDR2中數據達到一定的數量后,向PPC440發(fā)送中斷信號;

          (3)當PPC440收到中斷申請后,通過DMA通道將數據從千兆以太網送出。

          千兆以太網接口卡接收過程如下:

          (1)當千兆以太網接收數據后,產生中斷;

          (2)當PPC440收到中斷申請后,通過DMA通道將數據寫入DDR2中;

          (3)外部高速接口通過內部RAM,將DDR2中的數據讀出。

          2.2 EMAC

          千兆以太網MAC采用Xilinx公司提供的三速嵌入式以太網MAC核(EMAC)實現。該IP核集成了10/100/1000Mb/s以太網MAC核,符合802.3—2002規(guī)范,支持全雙工的10/100/10013Mb/s,半雙工的10/100Mb/s。支持多種可配置的物理層接口,包括MII、GMII、RGMII、SGMII和1000BASE—XPCS/PMA接口。EMAC中包含主機接口、客戶端、時鐘管理、MII/GMII/RGMII接口等,如圖2所示。

          基于SoPC的千兆以太網接口卡的設計和實現

          在設計中,根據系統需求對EMAC進行配置。配置接口為主機配置模式,并以8位數據進行訪問,配置速率為固定千兆模式,配置物理接口為SGMII模式,通過GTX進行串并/并串轉換。

          2.3 時鐘管理

          整個系統需要提供2個外部時鐘:40MHz單端時鐘和125MHz差分時鐘。

          40MHz時鐘通過倍頻產生100MHz、200MHz和400MHz時鐘。100MHz時鐘為PLB總線提供時鐘,200MHz時鐘為DDR2提供時鐘,400MHz時鐘為

          PPC440內頻時鐘。

          125MHz差分時鐘用于提供GTX、EMAC和內部邏輯時鐘。125MHz高質量的差分時鐘經過IBUFDS后直接連接GTX的CLKIN端,然后GTX返回一個125MHz時鐘REFCLKOUT,經過內部DCM產生125MHz和162.5MHz時鐘,分別提供給GTX并行端時鐘、EMAC時鐘和內部邏輯,如圖3所示。

          基于SoPC的千兆以太網接口卡的設計和實現

          2.4 用戶邏輯設計

          用戶邏輯中完成三個功能:EMAC配置接口設計、客戶端發(fā)送單元設計和客戶端接收單元設計。

          EMAC配置接口實現PPC440和EMAC之間的訪問控制。EMAC通過Xilinx提供的IPIF接口掛接在PLB總線上。

          發(fā)送單元負責將待發(fā)送的數據按照一定時序發(fā)送到MAC核,再通過GTX輸出到數據鏈路中??蛻舳税l(fā)送時序如圖4所示。

          基于SoPC的千兆以太網接口卡的設計和實現

          客戶端發(fā)送過程如下:

          (1)當客戶端需要發(fā)送數據時,首先將第一個字節(jié)送到數據線(TXD),同時將數據有效信號(TXDVLD)置高;

          (2)當EMAC收到第一個字節(jié)后,返回一個應答信號(TXACK);

          (3)客戶端收到應答信號后,將剩余數據按照字節(jié)發(fā)送,在數據發(fā)送完成之前,TXDLVD信號一直為高。

          接收單元負責根據客戶端接收時序接收來自于MAC的數據。客戶端接收時序如圖5所示。

          基于SoPC的千兆以太網接口卡的設計和實現

          客戶端接收過程如下:

          (1)當EMAC有數據發(fā)送到客戶端時,接收數據信號(RXD)和數據有效信號(RXDVLD)同時有效;

          (2)接收單元根據RXD和RXDVLD接收來自EMAC的數據;

          (3)當數據接收完成后,如果接收數據正確信號(RXGOODFRAME)有效,表示該幀數據正確,則將數據提交。如果數據錯誤信號(RXBADFRA ME)有效,表示該幀數據錯誤,則將數據丟棄。

          2.5 軟件設計

          在設計中,軟件負責完成系統的運行、設備的控制、系統各部分功能實現、以太網的TCP/IP協議的實現等功能。使用Xilinx提供的EDK下集成的工具SDK,使用C語言進行編程。

          EDK提供第三方支持庫TRECK,它使用一種簡化的TCP/IP協議,并向用戶提供上層的API函數,實現了一種高效的、便于與實現的TCP /IP協議。

          3 仿真與驗證

          本論文采用Xilinx Virtex-5 FPGA芯片對千兆以太網接口板進行設計和實現,并采用Modelsim6.5d進行仿真驗證,采用ISE12.1進行綜合、布局布線、生成bit文件。

          將生成的bit文件下載到自主設計的板卡中,并開發(fā)測試用例進行測試、驗證。實際測試結果表明:基于SoPC的千兆以太網接口板系統功能正確,傳輸速率達到了線速。

          4 結束語

          本文研究并設計了一種基于SoPC的千兆以太網接口卡,重點對其組成、工作流程、EMAC、時鐘管理、用戶邏輯設計和軟件設計等關鍵技術進行了描述,并開發(fā)測試用例進行測試驗證。經嚴格測試驗證表明,該千兆以太網接口板功能完全符合系統要求。

          本文的研究對基于SoPC實現自主化的千兆以太網產品具有一定的工程參考價值。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();