<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的UDP RGMII千兆以太網設計

CHANBAEK ? 來源:FPGA Zone ? 作者:stark ? 2023-09-06 17:04 ? 次閱讀

01概述

本文總結一下前段時間完成的FPGA以太網通信功能。該方案參考了MILIANKE的設計,但在其基礎上簡化了某些不必要的步驟以及解決了一些由于忽視細節導致的棘手的問題。

02RGMII接口

本設計采用RGMII接口的88E1512芯片。RGMII接口的主要優勢在于,它可以同時適用于1000M、100M、10M三種速率,并且接口占用引腳數較少。

RGMII 使用 4bit 數據接口采用上下沿 DDR(Double Data Rate)的方式在一個時鐘周期內傳輸 8bit 數據信號,即上升沿發送或者接收數據的低4位[3:0],下降沿發送或者接收數據的高4位[7:4]。同理,使用 1bit 控制接口采用 DDR 的方式在一個時鐘周期內傳輸 2bit 控制信號。

  • 發送端:tx_clk,tx_d[3:0],tx_ctrl;
  • 接收端:rx_clk,rx_d[3:0],rx_ctrl;

圖片

圖1 RGMII接口

  • 三種速率模式

MII接口適用于1000M、100M、10M三種傳輸速率。

當工作于1000M 時,時鐘信號 TXC 和 RXC 均為 125MHz,4bit數據信號上下沿值均有效,控制信號上下沿值也均有效。

當工作于 100M時,時鐘信號 TXC 和 RXC均為25MHz,4bit數據信號只有上升沿值[3:0]有效,相當于此時數據信號切換為單沿SDR(Single Data Rata)4位輸模式??刂菩盘柸詾樯舷卵赜行?。

當工作于10M時,時鐘信號TXC和RXC均為2.5MHz,數據信號和控制信號的使用和100M速率時完全相同。

03UDP通信方案

該以太網通信方案如圖2所示,最上層為用戶邏輯模塊,用于處理和使用解析后的以太網通信數據;uiudp_stack模塊采用MILIANKE提供的協議棧網表文件;FPGA 以太網IP核采用Tri Mode Ethernet Mac;PHY芯片采用88E1512;最后RJ-45接口通過網線與上位機連接。

圖片

圖2 FPGA UDP以太網通信方案

  • IP核配置

使用千兆通訊,因此將速率設為 1Gbps;

圖片

接口參數配置如下:

圖片

有關Shared Logic的選擇可參考我之前寫的文章。

圖片

04以太網數據流回環傳輸方案

如圖3所示,以太網數據環路傳輸方案,是在電腦上通過網絡調試助手向FPGA發送任意小于1472字節長度的UDP數據包。由于Tri Mode Ethernet Mac IP核接口數據流為8bits/125M,而uiudp_stack為64bits/15.625M,因此需要在中間插入FIFO緩存模塊,進行數據位寬轉換以及跨時鐘域處理。

圖片

圖3 以太網數據回環傳輸方案

05調試遇到問題

修改電腦IP地址、子網掩碼,上位機UDP端口號、IP地址,然后測試了軟件功能,發現UDP丟包率較高,為30%左右,而且FPGA端接收回路數據沒問題,只是發送回路有問題。因此對軟件中所有模塊進行測試,修改所有可能影響丟包率的代碼部分,都沒能解決問題。

“排除一切不可能的原因,剩下的即使再不可能,那也是真相”,當軟件沒有問題,那只能是硬件部分有問題了。于是我考慮這很可能是因為FPGA引腳配置不對。

一開始tx_d引腳I/O電平標準配置為LVCMOS,考慮到RGMII接口為雙沿動作,數據傳輸速率較高,可能LVCMOS無法滿足,因此參考了DDR3的設計,改用SSTL電平。編譯之后重新做回環測試,UDP丟包率<1/1000,問題解決。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1608

    文章

    21367

    瀏覽量

    594543
  • 接口
    +關注

    關注

    33

    文章

    7859

    瀏覽量

    148974
  • 千兆以太網
    +關注

    關注

    0

    文章

    65

    瀏覽量

    13817
  • UDP
    UDP
    +關注

    關注

    0

    文章

    311

    瀏覽量

    33687
  • RGMII
    +關注

    關注

    0

    文章

    22

    瀏覽量

    12078
收藏 人收藏

    評論

    相關推薦

    【紫光同創國產FPGA教程】【第二十三章】千兆以太網傳輸實驗

    本實驗將實現FPGA芯片和PC之間進行千兆以太網數據通信, 通信協議采用Ethernet UDP通信協議。 FPGA通過
    的頭像 發表于 04-07 10:38 ?1.4w次閱讀
    【紫光同創國產<b class='flag-5'>FPGA</b>教程】【第二十三章】<b class='flag-5'>千兆</b><b class='flag-5'>以太網</b>傳輸實驗

    基于AlteraFPGA千兆以太網實現方案

    `基于AlteraFPGA千兆以太網實現方案`
    發表于 06-10 11:59

    百兆以太網千兆,要怎么修改程序?

    各位前輩你們好,我是剛開始學習fpga的新人。最近在altera fpga的一個板子上調試口,任務是用千兆以太網實現
    發表于 10-03 09:12

    PC與FPGA以太網通信

    我現在在做FPGA和PC之間的以太網通信,PC和FPGA用交叉線直連,板子上的以太網phy芯片是88e1111,以太網
    發表于 07-05 21:37

    AC6102 開發板千兆以太網UDP傳輸實驗

    本帖最后由 芯航線跑堂 于 2016-12-19 00:20 編輯 AC6102 開發板千兆以太網UDP傳輸實驗 在芯航線AC6102開發板上,設計了一路GMII接口的千兆
    發表于 12-15 15:01

    關于千兆以太網,UDP傳輸漏包的問題

    FPGA千兆以太網發送數據,數據來自AD采集(有60MHz),經FIFO緩存。采用的UDP協議,一幀一幀傳輸數據,最后通信成功,但是漏包嚴重,后來發現是因為:AD不停地采集數據,但每一
    發表于 05-15 09:21

    簡談基于FPGA千兆以太網

    ,只是說以太網的速率為千兆,也就是1G。除了千兆,還有百兆,萬兆,當然這些都是指的
    發表于 02-03 15:11

    AC6102開發板千兆以太網UDP傳輸實驗分享!

    AC6102 開發板千兆以太網UDP傳輸實驗在芯航線AC6102開發板上,設計了一路GMII接口的千兆以太網電路,通過該
    發表于 10-18 02:15

    【工程源碼】基于FPGA千兆以太網模塊UDP設計實例程序

    192.168.0.2,端口號為500012、點擊發送,程序能正常發送數據出去,開發板能夠收到數據并將數據原封不動返回給電腦。13、使用過程可能需要關閉防火墻(注意,是防火墻,不是安全軟件)二、千兆以太網UDP攝像頭圖像傳輸程序
    發表于 02-10 18:14

    分享一款不錯的基于Altera FPGA千兆以太網實現方案

    千兆以太網技術是什么基于Altera FPGA千兆以太網實現方案
    發表于 05-08 07:32

    簡談基于FPGA千兆以太網設計

    大俠帶來簡談基于FPGA千兆以太網設計,話不多說,上貨。今天我們來簡單的聊一聊以太網,以太網FPGA
    發表于 06-01 18:39

    FPGA如何為以太網千兆以太網解決低功耗問題

    探索新的中檔 FPGA 如何為以太網千兆以太網 (GbE) 鏈路執行橋接功能,同時解決低功耗問題。
    的頭像 發表于 05-07 16:54 ?3545次閱讀
    <b class='flag-5'>FPGA</b>如何為<b class='flag-5'>以太網</b>和<b class='flag-5'>千兆</b><b class='flag-5'>以太網</b>解決低功耗問題

    基于FPGAUDP千兆以太網光通信

    本文介紹一個FPGA開源項目:UDP千兆以太網光通信。利用SFP接口,可以通過使用SFP轉RJ45模塊或者直接使用光纖進行以太網通信。
    的頭像 發表于 08-31 11:26 ?2714次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>UDP</b><b class='flag-5'>千兆</b><b class='flag-5'>以太網</b>光通信

    基于FPGAUDP萬兆光通信測試

    本文開源一個FPGA項目:UDP萬兆光通信。該項目實現了萬兆光纖以太網數據回環傳輸功能。Vivado工程代碼結構和之前開源的《UDP RGMII
    的頭像 發表于 09-01 16:25 ?957次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>UDP</b>萬兆光通信測試

    基于FPGAUDP RGMII千兆以太網通信方案

    本文介紹一個FPGA開源項目:UDP RGMII千兆以太網通信。該項目在我之前的工作中主要是用于FPGA
    的頭像 發表于 09-04 16:49 ?955次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>UDP</b> <b class='flag-5'>RGMII</b><b class='flag-5'>千兆</b><b class='flag-5'>以太網</b>通信方案
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>