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

news2024/12/23 9:59:56

本文开源一个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万兆光纤以太网通信》。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/950632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt6.5安装教程——国内源

为什么离线包没了? Qt6开始非商业授权下,不再提供离线安装方式的exe,但源码安装费时费力,所以推荐安装方式已经为在线组件安装方式,包括vs2022、Qt在线安装工具已经成为开发工具新的安装趋势。 Qt是不是要放弃开源&…

服务器日志出现大量NTLM(NT LAN Manager)攻击

日志名称:Security 来源: Microsoft-Windows-Security-Auditing 日期: 2023/8/30 20:57:40 事件 ID:4625 任务类别:登录 级别: 信息 关键字: 审核失败 用户: 暂缺 计算机: WIN-QBJ3ORTR0CF 描述: 帐户登录失败。 主题: 安全 ID:NULL SID 帐户名:- 帐户域:- …

【软考】系统集成项目管理工程师(二)信息系统服务管理【2分】

一、信息技术服务标准 1、组成要素 组成要素描述人员提供IT服务所需的人员及其知识、经验和技能要求【正确选人】流程提供IT服务时,合理利用必要的资源,将输入转化为输出的一组相互关联和结构化的活动【正确做事】技术交付满足质量要求的IT服务应使用的…

搭建个人备忘录中心服务memos、轻量级笔记服务

目录 一、源码 二、官网 三、搭建 四、使用 一、源码 GitHub - usememos/memos: A privacy-first, lightweight note-taking service. Easily capture and share your great thoughts. 二、官网 memos - Easily capture and share your great thoughts 三、搭建 docke…

js原生Unicode转中文

下面这个是一串正常的url https://editor.csdn.net/md?not_checkout10&spm1001.201001.9739&articleId27834274872转码过的字符串 https://editor.csdn.net/md?not_checkout1%26spm1001.2014.3001.9739%26articleid132576228上面这个代码如何再转回去 js通过decod…

springBoot--终

目录 Web定制SpringMVC定制某些mvc配置定制mvc核心组件完全自定义mvc 静态资源静态资源映射静态资源缓存示例自定义静态资源规则配置方式代码方式 欢迎页Favicon(网站图标)路径匹配策略内容协商制定返回json类型数据制定返回xml类型数据制定返回自定义类…

layui框架学习(43:文件上传模块-下)

上一篇文章介绍文件上传模块使用示例时介绍了done和error事件,这两个事件是在文件上传成功(原文:在上传接口请求完毕后触发,但文件不一定是上传成功的)及上传失败(原文:请求上传出现异常&#x…

一篇文章带你快速入门使用Git

文章目录 前言一、什么是版本控制二、Git与SVN的主要区别三、下载及使用1.安装2.启动Git3.常用的Linux命令4.Git配置 四、Git基本理论1.三个区域2.工作流程 五、Git项目搭建1.创建工作目录与常用指令2.本地仓库搭建3.克隆远程仓库 六、Git文件操作1.文件的四种状态2.查看文件状…

ElasticSearch最全详细使用教程:入门、索引管理、映射详解

导读:本文介绍了ElasticSearch的必备知识:从入门、索引管理到映射详解。 一、快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 状态值说明 Green - eve…

JavaScript基础语法01——初识JavaScript

哈喽,大家好,我是雷工! 最近有项目用到KingFusion软件,由于KingFusion是B/S架构的客户端组态软件,因此在学习KingFusion产品时会涉及许多前端的知识。 像JavaScript语言就是需要用的,俗话说:活到…

工单管理报修系统有什么用?的修工单系统助您解决报修难点

随着互联网的快速发展,许多企业都开始使用“的修”工单管理系统,这是一款企业管理软件,可以帮助管理员用户针对不同的机构、单位以及外部客户的需求来选择性地管理、维护及追踪各种各样的问题和请求,也可用作公司内部员工工作上的…

【数据结构与算法 模版】高频题刷题模版

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【】,使用【】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为:目标公…

nacos在windows和linux的安装(教程都是完全一样的,因为是java写的)

文章目录 nacos下载Java安装(作者用的是java8)Windows编辑启动脚本文件编辑配置文件集群配置(非常简单) Linux其他 nacos下载 点击进入github下载页面nacos手册nacos是用java写的,可以跨平台,根本不存在li…

C. Divisor Chain

题目:样例: 输入 3 3 5 14 输出 3 3 2 1 4 5 4 2 1 6 14 12 6 3 2 1 题意: 输入 x ,使得 x 一直减某个数值 一直减到 1,所减的这个数值不能出现两次,输出该过程 x 的变化情况。 思路: 我们可…

uniapp项目实战系列(2):新建项目,项目搭建,微信开发工具的配置

目录 系列文章目录uniapp项目实战系列(1):导入数据库,启动后端服务,开启代码托管(点击跳转)1.新建项目2.托管项目的操作:(无勾选托管项目可无视)3.项目编译预览3.1游览器编译3.2微信…

自然语言处理(五):子词嵌入(fastText模型)

子词嵌入 在英语中,“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同,“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西…

DP读书:不知道干什么就和我一起读书吧

DP读书:不知道干什么就和我一起读书吧 为啥写博客:好处一:记录自己的学习过程优点二:让自己在各大社群里不那么尴尬推荐三:坚持下去,找到一个能支持自己的伙伴 虽然清楚知识需要靠时间沉淀,但在…

KylinOS配置完静态IP地址后,保存按钮是灰色

问题: 配置完静态IP地址后,保存按钮置灰,并且提示“无效设置IPv4设置:ipv4.gateway:网关与”never-default”不兼容”。 原因: 这是由于禁止添加默认路由导致的。 解决方案: 1、使用nmcli命令: nmcli con modify "有线连接 1" ipv4.never-default no 执…

keras深度学习框架构建LeNet5神经网络模型实现手写数字识别

之前两篇文章分别通过keras深度学习框架构建简单神经网络和卷积神经网络实现过手写数字识别实验。这篇文章分享我根据LeNet5模型构建的卷积神经网络来实现手写数字识别。 这个实验是根据LeNet5模型构建卷积神经网络,LeNet5模型的原理图如下所示: 相信大家…

3、DVWA——CSRF

文章目录 一、CSRF概述二、low2.1 通关思路2.2 源码分析 三、medium3.1 通关思路3.2 源码分析 四、high4.1 通关思路4.2 源码分析 五、impossible 一、CSRF概述 CSRF全称为跨站请求伪造(Cross-site request forgery),是一种网络攻击方式&…