《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 吉比特MAC接口IP軟核的分析與研究
吉比特MAC接口IP軟核的分析與研究
2015年微型機與應(yīng)用第13期
趙 竹1,肖 帥2
1.湖南交通職業(yè)技術(shù)學(xué)院,湖南 長沙 410132; 2.湖南現(xiàn)代物流職業(yè)技術(shù)學(xué)院,湖南 長沙 410131
摘要: MAC(Media Access Control)層位于網(wǎng)絡(luò)結(jié)構(gòu)七層協(xié)議中的數(shù)據(jù)鏈路層,控制局域網(wǎng)中的多個節(jié)點對共享介質(zhì)的訪問,保證相鄰節(jié)點之間數(shù)據(jù)的可靠傳輸。本文介紹一種吉比特MAC接口的結(jié)構(gòu),該MAC采用基于描述符傳輸?shù)腄MA(Direct Memory Access)和雙通道的MTL(MAC Transaction Layer),在半雙工模式下支持10/100 Mb/s、全雙工模式下支持10/100/1 000 Mb/s的網(wǎng)絡(luò)數(shù)據(jù)傳輸速率。
關(guān)鍵詞: MAC 描述符 DMA MTL
Abstract:
Key words :

  摘  要MAC(Media Access Control)層位于網(wǎng)絡(luò)結(jié)構(gòu)七層協(xié)議中的數(shù)據(jù)鏈路層,控制局域網(wǎng)中的多個節(jié)點對共享介質(zhì)的訪問,保證相鄰節(jié)點之間數(shù)據(jù)的可靠傳輸。本文介紹一種吉比特MAC接口的結(jié)構(gòu),該MAC采用基于描述符傳輸?shù)?a class="innerlink" href="http://ihrv.cn/tags/DMA" title="DMA" target="_blank">DMA(Direct Memory Access)和雙通道的MTL(MAC Transaction Layer),在半雙工模式下支持10/100 Mb/s、全雙工模式下支持10/100/1 000 Mb/s的網(wǎng)絡(luò)數(shù)據(jù)傳輸速率。

  關(guān)鍵詞: MAC;描述符;DMA;MTL

0 引言

  在計算機網(wǎng)絡(luò)技術(shù)飛速發(fā)展的新時期,人們對現(xiàn)有資源共享越來越依賴網(wǎng)絡(luò),并設(shè)計開發(fā)了多種不同應(yīng)用范圍的局域網(wǎng)技術(shù)。其中,以太網(wǎng)憑借其較高的靈活性和操作性,在局域網(wǎng)技術(shù)使用過程中得到了飛速迅猛的發(fā)展。隨著人們對網(wǎng)絡(luò)帶寬和數(shù)據(jù)傳輸速率要求的提高,千兆位以太網(wǎng)應(yīng)運而生。千兆位以太網(wǎng)仍然保留了以太網(wǎng)的幀格式、CSMA/CS機制和MTU[1],并且引入了載波擴展和幀突發(fā)機制[2]。以太網(wǎng)IEEE802.3協(xié)議根據(jù)LAN的特點,把數(shù)據(jù)鏈路層分為LLC(邏輯鏈路控制)和MAC(介質(zhì)訪問控制)兩個子層。MAC層協(xié)議作為數(shù)據(jù)幀收發(fā)的基礎(chǔ),是以太網(wǎng)技術(shù)的核心,主要負(fù)責(zé)上層數(shù)據(jù)和物理層的數(shù)據(jù)流量控制以及數(shù)據(jù)流的檢測、校驗工作。

  IP核是采用Verilog等硬件描述語言實現(xiàn)的功能塊。使用IP核的方式便于實現(xiàn)元件系統(tǒng)引用、修改基本元件功能及IP核復(fù)用都非常容易。在SoC設(shè)計中,IP核的使用可以縮短設(shè)計周期,降低設(shè)計風(fēng)險,已經(jīng)成為SoC設(shè)計中不可缺少的部分[3]。

  本文主要介紹吉比特MAC接口IP軟核的結(jié)構(gòu)和實現(xiàn)。

1 MAC功能

  本設(shè)計中的MAC遵守CSMA/CD協(xié)議,網(wǎng)絡(luò)數(shù)據(jù)在發(fā)送的過程中打包成標(biāo)準(zhǔn)的IEEE802.3幀格式;在接收數(shù)據(jù)過程中,對數(shù)據(jù)幀進行CRC校驗,有效刪除錯誤數(shù)據(jù),提高數(shù)據(jù)傳輸效率[4]。支持半雙工和全雙工的操作模式,半雙工模式下支持10 Mb/s/100 Mb/s的網(wǎng)絡(luò)數(shù)據(jù)傳輸速率,提高載波擴展和幀突發(fā)機制,并以back-pressure的形式進行流控制;全雙工模式下支持10 Mb/s/100 Mb/s/1 000 Mb/s的網(wǎng)絡(luò)數(shù)據(jù)傳輸速率,并采用pause幀的方式進行流控制;支持可編程的幀間距以及幀長度以適應(yīng)標(biāo)準(zhǔn)以太網(wǎng)幀和長達16 kB的超大以太網(wǎng)幀;支持IPv4、IPv6和ICMP網(wǎng)絡(luò)協(xié)議和TCP、UDP傳輸協(xié)議;提供GMII/RGMII/MII/RMII端口與相應(yīng)的PHY端口連接,并且提供MDIO主機對PHY進行配置管理。

2 MAC體系結(jié)構(gòu)

  如圖1所示,MAC由以下四個部分構(gòu)成:MAC-AXI、MAC-DMA、MAC-MTL、MAC-CORE。MAC采用獨立的數(shù)據(jù)傳輸與寄存器訪問接口,通過AXI接口與DSP連接,通過AXI主機端口進行數(shù)據(jù)的傳輸,通過AXI從機端口訪問DMA和MAC的系統(tǒng)控制、狀態(tài)寄存器(CSR)[5]。AXI接口基于burst的傳輸方式和獨立的控制、數(shù)據(jù)及響應(yīng)通道,提高了傳輸效率和總線的利用率;DMA提供獨立的數(shù)據(jù)和寄存器訪問接口,數(shù)據(jù)端采用基于描述符的傳輸將數(shù)據(jù)傳輸?shù)組TL,大大提高了數(shù)據(jù)傳輸效率;MTL提供兩個FIFO對DMA與MAC-CORE之間傳輸?shù)臄?shù)據(jù)進行緩存;MAC-CORE對網(wǎng)絡(luò)數(shù)據(jù)幀進行接收發(fā)送并對PHY進行配置管理;各個層次都提供了單獨的發(fā)送、接收通道,加快數(shù)據(jù)傳輸速率。此外,該MAC IP核的各個層次可獨立,用戶可以根據(jù)自己的需求選擇合適的結(jié)構(gòu)。

Image 001.png

  2.1 AXI接口

  MAC通過AMBA3 AXI總線接口與DSP連接。AXI主機接口支持burst請求以隊列的形式發(fā)出讀寫請求,并通過請求重排序,數(shù)據(jù)交錯使得主機可以更加靈活地選擇優(yōu)先請求、慢速外設(shè)從機。在寫數(shù)據(jù)通道設(shè)計了一個深度為8的數(shù)據(jù)請求FIFO,這樣AXI總線上最多能支持8個讀寫請求。此外還設(shè)計了深度為2的數(shù)據(jù)FIFO和響應(yīng)FIFO,用以支持DMA的OSF操作模式,提高數(shù)據(jù)傳輸效率。AXI從機接口訪問MAC的系統(tǒng)控制、狀態(tài)寄存器(CSR)。

  該接口提供128 bit的數(shù)據(jù)位寬、32 bit的地址位寬,最大burst長度為32,每個ID最多支持4個讀/寫請求,為數(shù)據(jù)的高效傳輸提供了保障。該接口允許來自不同DMA通道的讀寫同時傳輸,以提高總線的利用率。另外,為了減少整個芯片的功耗,DSP可以通過控制AXI接口使MAC進入低功耗模式。

  2.2 MAC-DMA

  DMA模塊實現(xiàn)MTL模塊和AXI接口之間的數(shù)據(jù)交換,DSP通過AXI從機接口配置DMA寄存器直接啟動MAC,DSP可以通過設(shè)置DMA CSR來控制DMA的操作。該模塊采用128 bit的數(shù)據(jù)位寬與AXI接口和MTL模塊連接。如圖2所示,DMA提供獨立的CSR訪問接口和數(shù)據(jù)接口;具有獨立的發(fā)送、接收引擎,發(fā)送引擎將數(shù)據(jù)從DSP的發(fā)送數(shù)據(jù)buffer傳輸?shù)組TL,接收引擎將數(shù)據(jù)從MTL傳輸?shù)紻SP接收數(shù)據(jù)buffer,描述符作為這些buffer的指針;沖裁模塊除了對讀寫操作進行沖裁和發(fā)送接收之間的沖裁之外,還包括對描述符傳輸與數(shù)據(jù)傳輸?shù)臎_裁。讀寫數(shù)據(jù)通過數(shù)據(jù)單元緩沖,提高傳輸效率。

Image 002.png

  DMA通過描述符的傳輸在DSP盡量少干涉的情況下實現(xiàn)數(shù)據(jù)交互,每個描述符可以傳輸8 KB的數(shù)據(jù),描述符地址寬度與總線寬度一致。描述符有兩類:發(fā)送描述符(TDES0-3)和接收描述符(RDES0-3),如圖3所示,每一類描述符包含兩個buffer、兩個字節(jié)計數(shù)buffer和兩個指向DSP發(fā)送、接收數(shù)據(jù)buffer的地址指針。每一個描述符最多指向兩個數(shù)據(jù)buffer,數(shù)據(jù)buffer可以包含一整幀的數(shù)據(jù)或者不滿一幀的數(shù)據(jù),但是不能超過一幀,并且只含數(shù)據(jù),buffer狀態(tài)包含在描述符中。一幀的數(shù)據(jù)可以跨越多個數(shù)據(jù)buffer,但是一個描述符中的數(shù)據(jù)不能跨越多幀。描述符列表有兩種結(jié)構(gòu):環(huán)型,每個描述符指向兩個數(shù)據(jù)buffer,執(zhí)行到最后一個描述符時跳回描述符列表的首地址;鏈接型,將DES3配置成下一個描述符地址形成描述符鏈,這種模式下的描述符只能指向一個數(shù)據(jù)buffer。

Image 003.png

  與以往基于計數(shù)的DMA傳輸相比,采用基于描述符傳輸?shù)腄MA每次傳輸?shù)臄?shù)據(jù)量增大,傳輸速率更快。此外,DMA具有單獨的發(fā)送、接收引擎可加快數(shù)據(jù)的傳輸,并提供幀分隔符以優(yōu)化報文結(jié)構(gòu)的傳輸,對任何正確或錯誤的傳輸都給出狀態(tài)標(biāo)識位,增強數(shù)據(jù)傳輸可靠性,支持可編程地發(fā)送、接收DMA引擎burst尺寸以提高總線利用率,支持每一幀的發(fā)送接收完成中斷控制和各種操作情況下可編程的中斷選擇。

  2.3 MAC-MTL

  MTL作為DMA的從設(shè)備,采用128 bit數(shù)據(jù)位寬與DMA和MAC-CORE相連,數(shù)據(jù)傳輸以簡單的FIFO協(xié)議執(zhí)行操作。該模塊包含兩個數(shù)據(jù)通道,發(fā)送通道和接收通道。發(fā)送通道將DMA的數(shù)據(jù)傳輸?shù)組AC-CORE,DMA控制發(fā)送通道的所有傳輸;接收通道則把MAC-CORE的數(shù)據(jù)傳輸?shù)紻MA,如圖4所示。每個通道都含有單獨的讀寫控制模塊。根據(jù)接收幀的狀態(tài)信息,接收寫控制模塊對接收幀進行過濾,刪除錯誤幀。在發(fā)送過程中產(chǎn)生沖突時,發(fā)送讀模塊將沖突的數(shù)據(jù)幀重新發(fā)送到MAC-CORE端。

Image 004.png

  MTL提供了兩個8 KB的雙端口異步FIFO緩存DMA與MAC-CORE之間傳輸?shù)臄?shù)據(jù)幀。Tx FIFO緩存DMA從DSP內(nèi)存讀取且尚未被發(fā)送到MAC的數(shù)據(jù),Rx FIFO保存從以太網(wǎng)接收且尚未被傳輸?shù)紻MA的數(shù)據(jù)。除了緩存每一幀的數(shù)據(jù)外,每一幀的狀態(tài)信息緊跟數(shù)據(jù)存入FIFO中,而不需要額外的FIFO來保存,因此只要FIFO未滿就能不斷接收數(shù)據(jù)幀,提高傳輸效率。數(shù)據(jù)FIFO通過選擇信號啟動,即FIFO不工作時處于休眠狀態(tài),減小功耗。MTL將FIFO的空滿狀態(tài)信息反饋給DMA,再由DMA控制發(fā)送接收操作。此外,Rx FIFO滿的情況下,可以通過pause幀控制或產(chǎn)生back-pressure給MAC-CORE來控制數(shù)據(jù)幀的接收,進行流控制。Tx FIFO的flush操作則是通過軟件來控制的。

  2.4 MAC-CORE

  MAC-CORE有發(fā)送、接收兩個通道,實現(xiàn)PHY與MTL模塊的數(shù)據(jù)交互,具有單獨的地址過濾單元,對接收數(shù)據(jù)幀的地址進行檢查以便決定接收幀的傳輸與否。支持多種地址過濾方式:目的地址/源地址過濾、單播地址/多播地址過濾,另外還可以提供哈希表對地址進行過濾,具有單獨的CRC模塊,對每一個接收幀進行CRC校驗,對需要發(fā)送的幀產(chǎn)生CRC檢驗碼。支持可編程的IFG和接收幀的IEEE802.1Q VLAN檢測。對IPv4、IPv6數(shù)據(jù)包負(fù)載進行TCP、UDP、ICMP檢驗以及IPv4首部檢驗和驗證。提供四種PHY端口:MII、GMII、RMII、RGMII,并且輸出端口的數(shù)據(jù)并行輸出,提高數(shù)據(jù)傳輸效率。提供MDIO模塊對PHY進行配置和管理。

3 MAC體系結(jié)構(gòu)

  在VCS驗證平臺下,分別在10 Mb/s/100 Mb/s/    1 000 Mb/s傳輸速率下對MAC IP核的RTL級代碼進行了模塊級和系統(tǒng)級驗證,主要驗證其邏輯功能的正確性,邏輯驗證和功能結(jié)果均符合要求。圖5為半雙工模式下100 Mb/s傳輸速率MAC模擬波形圖,圖6是全雙工模式下1 000Mb/s傳輸速率MAC模擬波形圖。模擬驗證表明,該結(jié)構(gòu)的MAC設(shè)計達到了預(yù)期目標(biāo)。

Image 005.png

4 結(jié)束語

  本文針對千兆位以太網(wǎng)的要求,介紹了一種吉比特MAC接口,用Verilog硬件描述語言,實現(xiàn)了一個RTL級的IP核,該MAC采用AXI接口,連續(xù)發(fā)送burst請求,各個通道獨立,提高總線利用率?;诿枋龇麄鬏?shù)腄MA在沒有CPU干涉的情況下,一次可以傳輸大量的數(shù)據(jù),獨立的雙通道MTL為數(shù)據(jù)快速傳輸提供了保障。MAC-CORE提供了多種類型的PHY端口,數(shù)據(jù)并行輸出,加快了傳輸速率。最后對該MAC進行了模擬和驗證。驗證結(jié)果表明,本文設(shè)計的模塊功能正確,達到了預(yù)期目標(biāo)。

參考文獻

  [1] IEEE P802.3ba(tm) D3.2-2010. Telecommunication and information exchange between system-local and metropolitan area networks specific requirements Part3: carrier sense multiple access with collision detection(CSMA/CD)access methodand physical layer specifications[S]. 2010.

  [2] 蔡開裕,朱培棟,徐明.計算機網(wǎng)絡(luò)[M].北京:機械工業(yè)出版社,2008.

  [3] 韓建,陳嵐,粟雅娟,等.基于用戶的IP核評測方法[J].微電子學(xué)與計算機,2009,26(11):43-47.

  [4] 張偉華,魏仲慧,何昕.嵌入式通用千兆以太網(wǎng)接口的設(shè)計與實現(xiàn)[J].儀表技術(shù)與傳感器,2011(6):41-43,47.

  [5] 吳俊杰,吳建輝.以太網(wǎng)MAC控制器的MII接口轉(zhuǎn)RMII接口的實現(xiàn)[J].電子器件,2008(2):712-715.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。