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
    +关注

    关注

    1625

    文章

    21663

    浏览量

    601661
  • 接口
    +关注

    关注

    33

    文章

    8486

    浏览量

    150804
  • 千兆以太网
    +关注

    关注

    0

    文章

    67

    浏览量

    13852
  • UDP
    UDP
    +关注

    关注

    0

    文章

    322

    浏览量

    33870
  • RGMII
    +关注

    关注

    0

    文章

    27

    浏览量

    12149
收藏 人收藏

    评论

    相关推荐

    基于Xilinx FPGA千兆以太网控制器的开发

    千兆以太网利用了原以太网标准所规定的全部技术规范,其中包括CSMA/CD协议、以太网帧、全双工、流量控制以及IEEE 802.3标准中所定义的管理对象。##
    发表于 01-23 11:13 3w次阅读
    基于Xilinx <b class='flag-5'>FPGA</b>的<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>控制器的开发

    简谈基于FPGA千兆以太网

    大家好,又到了学习时间了,学习使人快乐。今天我们来简单的聊一聊以太网以太网FPGA学习中属于比较高级的内容了,有些同学肯定会感觉以太网学习起来非常不容易。其实,我可以告诉大家,前期
    的头像 发表于 08-05 10:28 1.3w次阅读
    简谈基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>

    【紫光同创国产FPGA教程】【第二十三章】千兆以太网传输实验

    本实验将实现FPGA芯片和PC之间进行千兆以太网数据通信, 通信协议采用Ethernet UDP通信协议。 FPGA通过
    的头像 发表于 04-07 10:38 1.5w次阅读
    【紫光同创国产<b class='flag-5'>FPGA</b>教程】【第二十三章】<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>传输实验

    如何使用Vitis自带的LWIP模板进行PS端千兆以太网TCP通信?

    开发板有两路千兆以太网,通过RGMII接口连接,本实验演示如何使用Vitis自带的LWIP模板进行PS端千兆以太网TCP通信。
    的头像 发表于 04-28 10:44 2993次阅读
    如何使用Vitis自带的LWIP模板进行PS端<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>TCP通信?

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

    各位前辈你们好,我是刚开始学习fpga的新人。最近在altera fpga的一个板子上调试口,任务是用千兆以太网实现
    发表于 10-03 09:12

    简谈基于FPGA千兆以太网

    ,只是说以太网的速率为千兆,也就是1G。除了千兆,还有百兆,万兆,当然这些都是指的
    发表于 02-03 15:11

    简谈基于FPGA千兆以太网设计

    大侠带来简谈基于FPGA千兆以太网设计,话不多说,上货。今天我们来简单的聊一聊以太网以太网FPGA
    发表于 06-01 18:39

    基于FPGA的十端口千兆以太网接口的设计与实现

    当前的路由器或交换机产品都提供多端口千兆以太网接口。采用高性能FPGA 设计十端口千兆以太网接口, 阐述了系统平台的硬件设计及主要单元模块的
    发表于 08-29 09:30 51次下载

    千兆以太网发展现状 千兆以太网技术优势

    以太网其实是我们日常生活中都会用到的,比如大家小区里的千兆以太网等。为增进大家对以太网的了解,本文讲对千兆
    的头像 发表于 03-21 11:30 7739次阅读
    <b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>发展现状 <b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>技术优势

    如何快速分辨以太网千兆以太网

    本文解释并比较了两种类型的以太网:快速以太网千兆以太网。快速以太网千兆
    的头像 发表于 05-06 16:35 4409次阅读
    如何快速分辨<b class='flag-5'>以太网</b>与<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>

    FPGA如何为以太网千兆以太网解决低功耗问题

    探索新的中档 FPGA 如何为以太网千兆以太网 (GbE) 链路执行桥接功能,同时解决低功耗问题。
    的头像 发表于 05-07 16:54 3988次阅读
    <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 4329次阅读
    基于<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 2014次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>UDP</b>万兆光通信测试

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

    本文介绍一个FPGA开源项目:UDP RGMII千兆以太网通信。该项目在我之前的工作中主要是用于FPGA
    的头像 发表于 09-04 16:49 1509次阅读
    基于<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>通信方案

    千兆以太网发展现状 千兆以太网技术优势

    以太网其实是我们日常生活中都会用到的,比如大家小区里的千兆以太网等。为增进大家对以太网的了解,本文讲对千兆
    的头像 发表于 12-08 16:40 982次阅读