91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用FPGA實現(xiàn)千兆網(wǎng)TCP/IP協(xié)議棧調(diào)試記錄

FPGA設(shè)計論壇 ? 來源:FPGA設(shè)計論壇 ? 2026-03-16 15:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

基礎(chǔ)信息

FPGA芯片:xc7v690tffg1761-2L

vivado版本:vivado2018.3

測試板卡:優(yōu)數(shù)科技 PCIe-404、som-404 信號處理模塊

基本架構(gòu)

e552c4bc-1ead-11f1-90a1-92fbcf53809c.png

說明

TCP/IP協(xié)議棧: 核心的TCP/IP代碼,支持ICMP,UDP,TCP,ARP等以太網(wǎng)報文處理。

Tri_mode_eth:xilinx的千兆網(wǎng)IP_CORE,當(dāng)前使用RGMII與以太網(wǎng)芯片交互。

Mdio_cfg:解決誤碼問題,在本模塊進行RXDLY的微調(diào)設(shè)置,需要根據(jù)不同的板卡確定調(diào)整值。

實際測試

基礎(chǔ)配置

FPGA_IP地址:192.168.1.30

FPGA_MAC地址:0x1234_5678_9abb

上位機IP地址:192.168.1.26

交互情況

上板測試后,發(fā)現(xiàn)FPGA與電腦之間存在報文交互,交互正常。

如下圖,arp報文和TCP報文可以正常發(fā)送至上位機。

e5b31f42-1ead-11f1-90a1-92fbcf53809c.png

PING異常

在電腦端ping 192.168.1.30地址,發(fā)現(xiàn)ping不通,但wireshark抓包發(fā)現(xiàn)FPGA與電腦可正常收發(fā)包。

e60d11be-1ead-11f1-90a1-92fbcf53809c.png

如下圖所示,用wireshark抓取ping報文,發(fā)現(xiàn)FPGA對ping是有回復(fù)的,但是回復(fù)的報文在異常,check_sum錯誤,回復(fù)數(shù)據(jù)也存在異常。本應(yīng)該6768696a的數(shù)據(jù),變?yōu)?76a696a,分析是存在1位的錯誤。

e664909c-1ead-11f1-90a1-92fbcf53809c.pnge6bd4494-1ead-11f1-90a1-92fbcf53809c.png

在抓取了FPGA內(nèi)部收到的ping報文后,發(fā)現(xiàn)從PHY芯片進入FPGA的報文就已經(jīng)錯了,因此懷疑硬件PCB走線問題。更換PCB板卡后,測試正常。在查閱pg051和以太網(wǎng)PHY芯片的數(shù)據(jù)手冊后,決定嘗試通過微調(diào)RXDLY的值解決問題。誤碼如何解決詳情見MDIO配置RXDLY延遲章節(jié)。

通過修改RXDLY后,再次進行ping報文的操作,發(fā)現(xiàn)此時是可以ping通的。

e71b4a4e-1ead-11f1-90a1-92fbcf53809c.png

通過wireshark抓包,可以看到此時reply的數(shù)據(jù)是正常的。

e77c1b4e-1ead-11f1-90a1-92fbcf53809c.pnge7d7435c-1ead-11f1-90a1-92fbcf53809c.png

性能及資源

在解決了誤碼情況后進行性能測試。

性能

UDP性能測試

千兆網(wǎng),UDP測試性能在970Mbp左右。

e83516e4-1ead-11f1-90a1-92fbcf53809c.png

TCP性能測試

TCP的4個port測試,性能在960Mbps左右

e88e5db2-1ead-11f1-90a1-92fbcf53809c.png

MDIO配置RXDLY延遲

目標(biāo)是通過MDIO調(diào)節(jié)Rx_delay_sel的值解決誤碼問題,如下圖所示,Rx_delay_sel位于EXE_0xA003寄存器的【13:10】bit.每步長為150ps.

e8e7d81a-1ead-11f1-90a1-92fbcf53809c.png

查閱YT8531SH數(shù)據(jù)手冊發(fā)現(xiàn),通過配置0x1E寄存器和0x1F寄存器來實現(xiàn)對擴展寄存器的訪問。

e946efd0-1ead-11f1-90a1-92fbcf53809c.png

Pg051使用勘誤

PHY地址的確定,xilnx手冊中描述phy地址不能為0.但是實測發(fā)現(xiàn)當(dāng)前只有1個phy時,僅當(dāng)phy地址為0才能讀取到正確的數(shù)據(jù),其他的phy地址時,讀取到的數(shù)據(jù)全部為0xffff。

e99e8240-1ead-11f1-90a1-92fbcf53809c.png

YT8531SH使用勘誤

1.如下圖,使用是需要配置0x1E寄存器配置為0xA003,圖中顯示僅【7:0】bit是可寫的,【15:8】bit是僅讀的,但實際測試發(fā)現(xiàn),整個0x1E寄存器的16bit都是可讀可寫的,否則無法將0xA003寫入。

e9f90c9c-1ead-11f1-90a1-92fbcf53809c.png

MDIO

寄存器說明

Xilinx通過axi_lite接口配置MDIO需要關(guān)注以下寄存器。

ea5113ec-1ead-11f1-90a1-92fbcf53809c.pngeaa9d5fe-1ead-11f1-90a1-92fbcf53809c.pngeb08cb72-1ead-11f1-90a1-92fbcf53809c.pngeb632734-1ead-11f1-90a1-92fbcf53809c.png

MDIO讀取測試

進行初步的測試,觀察當(dāng)前使用讀取phy芯片的0x0寄存器,回讀的數(shù)據(jù),為0x1140,與YT8531SH數(shù)據(jù)手冊之中phy芯片的0x0寄存器默認(rèn)值能對應(yīng)的。

ebc10c0a-1ead-11f1-90a1-92fbcf53809c.pngec1cfeac-1ead-11f1-90a1-92fbcf53809c.pngec7651e6-1ead-11f1-90a1-92fbcf53809c.png

寄存器控制流程

開啟MDIO傳輸

操作phy芯片的寄存器時必須先開啟MDIO傳輸。

開啟MDIO傳輸
w/r axi_awaddr axi_wdata description
w 0x500 0x58 [6]bit打開MDIO_ENABLE

寫0x1E寄存器

給0x1E寄存器寫入0xA003表示我們要操作的擴展寄存器是EXT_A003.

給0x1E寄存器寫0xA003
w/r axi_awaddr axi_wdata description
w 0x508 0xA003 需要寫的數(shù)據(jù)是0xA003
w 0x504 0x001E_4800 1.[11]bit開啟傳輸
2.[15:14]bit是2'b01開啟寫流程
3.[20:16]bit TX_REGAD是0x1E
4.[28:24]bit phy地址是0x0

寫0x1F寄存器

0x1E寄存器指代要操作的擴展寄存器,0x1F指代給給0x1E指定的擴展寄存器寫的值。

給0x1F寄存器寫入0x10F1表示,我們要給EXT_A003寄存器寫0x10F1.

給0x1F寄存器寫0x10F1
w/r axi_awaddr axi_wdata description
w 0x508 0x10F1 需要寫的數(shù)據(jù)是0x10F1
w 0x504 0x001F_4800 1.[11]bit開啟傳輸
2.[15:14]bit是2'b01開啟寫流程
3.[20:16]bit TX_REGAD是0x1F
4.[28:24]bit phy地址是0x0

通過以上開啟MDIO傳輸,寫0x1E和寫0x1F寄存器,就可以修改RX_DELAY_SEL的值了。

讀寄存器流程

寫寄存器和讀寄存器都要先開啟MDIO的控制傳輸,此處不再贅敘。

以讀0x1E地址的數(shù)據(jù)為例,說明下讀寄存器的命令。

先發(fā)送axi寫數(shù)據(jù),給0x504寄存器寫入0x001E_8800,表明要讀取0x1E地址的數(shù)據(jù)。而后通過讀取0x50C寄存器獲取數(shù)據(jù)。

讀取0x1E寄存器的值
w/r axi_addr axi_wdata description
w 0x504 0x001E_8800 1.[11]bit開啟傳輸
2.[15:14]bit是2'b10開啟讀流程
3.[20:16]bit TX_REGAD是0x1E
4.[28:24]bit phy地址是0x0
r 0x50c 讀取0x50c獲取到TX_REGAD寄存器返回的值

參考文檔

PG051-tri-mode-eth-mac-en-us-9.0

以太網(wǎng)收發(fā)器_YT8531SH

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22431

    瀏覽量

    637062
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1426

    瀏覽量

    83569
  • 上位機
    +關(guān)注

    關(guān)注

    27

    文章

    1007

    瀏覽量

    57159
  • 千兆網(wǎng)
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    9978

原文標(biāo)題:FPGA(采用RGMII接口)邏輯實現(xiàn)千兆網(wǎng)TCP/IP協(xié)議棧調(diào)試記錄

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    集成硬件TCP/IP協(xié)議網(wǎng)口芯片

    本司專業(yè)提供嵌入式網(wǎng)口芯片(MAC+PHY),且芯片集成硬件TCP/IP協(xié)議。在沒有OS的系統(tǒng)很方便的擴展應(yīng)用
    發(fā)表于 11-10 22:43

    剖析:WIZnet以太網(wǎng)核心技術(shù)–全硬件TCP/IP協(xié)議

    軟件協(xié)議實現(xiàn))對比一下:下面是WIZnet以太網(wǎng)方案(全硬件協(xié)議):從方案結(jié)構(gòu)圖就可以看出,
    發(fā)表于 04-09 09:44

    如何去簡化Simplified TCP/IP協(xié)議?

    Simplified TCP/IP協(xié)議的特點是什么?如何去簡化Simplified TCP/IP
    發(fā)表于 05-26 07:23

    怎么實現(xiàn)的基于TCP/IP協(xié)議的簡易服務(wù)器?

    本文以SPCE061A為主控制器,DM9000為以太網(wǎng)MAC控制器,配合一定的外圍電路而實現(xiàn)的基于TCPIP協(xié)議
    發(fā)表于 05-31 06:34

    基于ARM的TCP/IP協(xié)議LwlP是如何實現(xiàn)的?

    嵌入式網(wǎng)絡(luò)通信系統(tǒng)的硬件平臺由哪幾個部分組成?基于ARM的TCP/IP協(xié)議LwlP是如何實現(xiàn)的?
    發(fā)表于 06-04 06:37

    怎么實現(xiàn)嵌入式TCP/IP協(xié)議的設(shè)計?

    本文闡述在一種異構(gòu)網(wǎng)絡(luò)互聯(lián)——CAN總線與以太網(wǎng)互聯(lián)系統(tǒng)設(shè)計方案中嵌入式TCP/IP協(xié)議的設(shè)計與實現(xiàn)
    發(fā)表于 06-07 06:28

    FPGA實現(xiàn)嵌入式TCP/IP通信協(xié)議

    研究了嵌入式TCP/IP通信協(xié)議在Xilinx FPGA上的實現(xiàn),介紹了其軟硬件的系統(tǒng)組成和原
    發(fā)表于 11-17 17:05 ?9692次閱讀
    在<b class='flag-5'>FPGA</b>中<b class='flag-5'>實現(xiàn)</b>嵌入式<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>通信<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>

    Microchip TCP/IP協(xié)議

    的開發(fā)人員可以很容易找到許多Microchip產(chǎn)品的商業(yè)和非商業(yè)的TC P/IP實現(xiàn)方案。本應(yīng)用筆記詳細說明了Microchip公司自己免費提供的TC P/IP協(xié)議
    發(fā)表于 04-20 16:04 ?5次下載
     Microchip <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>

    基于FPGA和嵌入式以太網(wǎng)W5500的TCP/IP協(xié)議實現(xiàn)設(shè)計

    ,基于TCP/IP協(xié)議的應(yīng)用越來越多。FPGA等可編程邏輯器件的快速發(fā)展使得以太網(wǎng)協(xié)議傳輸越來越
    發(fā)表于 07-30 09:36 ?9434次閱讀
    基于<b class='flag-5'>FPGA</b>和嵌入式以太<b class='flag-5'>網(wǎng)</b>W5500的<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b><b class='flag-5'>實現(xiàn)</b>設(shè)計

    Microchip TCP/IP精簡協(xié)議

    閃存 (僅 UDP)和集成 ≥ 16 KB 閃存(TCP/IP)的單片機提供更優(yōu)化的(占用的閃存和 RAM空間較?。?b class='flag-5'>TCP/IP 協(xié)議
    發(fā)表于 04-01 15:36 ?18次下載
    Microchip <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>精簡<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>

    Microchip TCP/IP協(xié)議

    。感興趣的開發(fā)人員可以很容易找到許多 Microchip 產(chǎn)品的商業(yè)和非商業(yè)的TCP/IP 實現(xiàn)方案。本應(yīng)用筆記詳細說明了 Microchip 公司自己免費提供的 TCP/
    發(fā)表于 04-02 14:28 ?22次下載
    Microchip <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>

    基于FPGATCP/IP協(xié)議實現(xiàn)

    基于FPGATCP/IP協(xié)議實現(xiàn)說明。
    發(fā)表于 04-28 11:19 ?54次下載

    基于PIC單片機的TCP/IP協(xié)議實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于PIC單片機的TCP/IP協(xié)議實現(xiàn).ppt》資料免費下載
    發(fā)表于 10-20 10:03 ?2次下載
    基于PIC單片機的<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b><b class='flag-5'>實現(xiàn)</b>

    TCP/IP協(xié)議的設(shè)計與實現(xiàn)_中文

    電子發(fā)燒友網(wǎng)站提供《TCP/IP協(xié)議的設(shè)計與實現(xiàn)_中文.pdf》資料免費下載
    發(fā)表于 07-03 11:28 ?5次下載

    LwIP協(xié)議源碼詳解—TCP/IP協(xié)議實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《LwIP協(xié)議源碼詳解—TCP/IP協(xié)議實現(xiàn).pdf》資料免費下載
    發(fā)表于 07-03 11:22 ?6次下載