• FPGA优质开源项目 – UDP万兆光纤以太网通信


    本文开源一个FPGA项目:UDP万兆光通信。该项目实现了万兆光纤以太网数据回环传输功能。Vivado工程代码结构和之前开源的《UDP RGMII千兆以太网》类似,只不过万兆以太网是调用了Xilinx的10G Ethernet Subsystem IP核实现。

    下面围绕该IP核的使用、用户接口,以及数据传输方案展开介绍。文章末尾有该工程源码获取方式,有需要的小伙伴可以点赞、分享支持一下~

    一、软硬件平台

    • 软件平台:Vivado 2017.4;
    • 硬件平台:XC7Z035FFG676-2;

    二、IP核参数配置 

    AXI4-Stream数据位宽选择64bits。对应的用户接口时钟频率为156.25MHZ。

    PCS/PMA Options:配置GTX动态重配置端口DRP时钟为100MHZ(该设置同样仅对IP核out-of-context模式的综合有效);不使用Transceiver Debug功能。

    IEEE1588 Options:IEEE1588功能一般用于某些需要进行网络时间同步的场合,例如音(视)频传输。在本项目中只是进行数据传输,因此可以不选择使用。

    Shared Logic:由于在此项目Vivado工程中只需例化一个该IP核,因此这里选择Include Shared Logic in core,将共享资源包含在IP内部即可。如果需要例化多个该IP核,只需将其中一个IP核配置为Include Shared Logic in core,其余的都配置为Include Shared Logic in example design。

     三、用户接口

    • AXI-Stream发送接口

    用户通过该接口将要发送的以太网数据包写入IP核。另外,由tx_ifg_delay接口控制发送间隔,将其配置为0即可。AXI-Stream发送接口时序如下图所示。

    • AXI-Stream接收接口

    用户通过该接口读取IP核输出的以太网数据包。AXI-Stream接收接口时序如下图所示。

    • Pcspma-Status接口

    该接口用于输出IP核内部PCS PMA部分工作状态,在该工程中只有第0bit有效,用于指示PCS Block Lock。

    • Sim-Speed-Up接口

    该接口只在仿真时会用到,用于加快仿真速度,在该工程中将其设置为0即可。

    • Optical模块接口

    signal_detect:光模块状态指示信号,配置为1;

    tx_fault:光模块状态指示信号,配置为0;

    tx_disable:输出光模块控制信号。

    • Flow-Control接口

    在高带宽、大负荷传输场合,一般需要流量控制功能。在该工程不需要发送暂停帧,因此将以下两个信号设置为0。

    s_axis_pause_tvalid & s_axis_pause_tdata。

    • AXI-Lite接口

    该接口用于读写IP核内部寄存器,通过对IP核各参数进行配置,以实现基本的以太网数据包收发功能。

    四、数据传输方案及测试 

    该项目的功能主要用于实现万兆以太网光纤数据回环传输,在电脑端通过网络调试助手向FPGA发送数据包,FPGA端接收、缓存数据包后回传给上位机。以太网数据回环传输方案如下图所示。

    其中,时钟为156.25MHZ,数据位宽为64bits。在UDP IP核和10G Ethernet Subsystem IP核之间,通过插入FIFO实现对每包以太网数据流的缓存功能。

    利用wireshark软件抓取PC端和FPGA端之间以太网双向传输数据包,结果如下图所示。

    五、源码获取方式

    需要该工程源码的小伙伴,请下载我的 资源:《FPGA优质开源项目获取方式 ,里面有Vivado工程源码免费获取方式。 或者点击链接,跳转到原文获取:《FPGA优质开源项目 – UDP万兆光纤以太网通信》。

  • 相关阅读:
    MyBatis获取参数值的两种方式,MyBatis获取参数值的情况(5种)
    关于vue中image控件,onload事件里,event.target 为null的奇怪问题探讨
    iptables防火墙
    深度学习中的熵、交叉熵、相对熵(KL散度)、极大释然估计之间的联系与区别
    什么是机器学习中的集成学习,列举几种常见的集成学习算法
    排序算法(Java实现)
    关于使用STM32CubeMx配置串口出现的一些问题
    快速构建高质量中文APP登录注册页面Figma源文件
    C#:实现杨辉三角算法​(附完整源码)
    Docker ---- network中的命令详解
  • 原文地址:https://blog.csdn.net/cjx_csdn/article/details/132588321