基于光口的以太网 udp 回环实验

文章目录

  • 前言
  • 一、系统框架整体设计
  • 二、系统工程及 IP 创建
  • 三、UDP回环模块修改说明
  • 四、接口讲解
  • 五、顶层模块设计
  • 六、下载验证


前言

本章实验我们通过网络调试助手发送数据给 FPGA,FPGA通过光口接收数据并将数据使用 UDP 协议发送给电脑。


提示:任何文章不要过度深思!万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案」 ;不要急着评判文章列出的观点,只需代入其中,适度审视一番自己即可,能「跳脱出来从外人的角度看看现在的自己处在什么样的阶段」才不为俗人 。怎么想、怎么做,全在乎自己「不断实践中寻找适合自己的大道」

一、系统框架整体设计

本次设计基于以太网 UDP 回环实验,在该系统上进行了一定的添加和修改,本章实验的整体框图。
在这里插入图片描述
本例程在 ACZ7015 开发板上使用光口网口转换模块(1G/2.5G Ethernet PCS/PMA or SGMII IP),再将转换后的数据送到 UDP 回环通信模块中。
在前面小节中我们设计的 UDP 发送模块以及 UDP 接收模块(千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP回环)),FPGA 程序接收到上位机发来的 UDP 数据包,通过解析目标 MAC_address 来确定是否是发给FPGA 的数据包。如果是的话,FPGA 会把数据包中的数据以及 IP 地址等信息,再通过发送程序将数据包发送回指定上位机。
对上图中各个模块的功能介绍如下:
(1)光口网口转换模块(gig_ethernet_pcs_pma_0):该模块的功能就是将输入的光口数据转换为网口数据,并将数据送入 UDP 回环通信模块中;
(2)UDP 回环通信模块:这个模块例化了 UDP 接收以及 UDP 发送模块,这个模块中完成了回环测试(千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP回环));

二、系统工程及 IP 创建

创建一个工程名为 sfp_eth_udp_loop 的工程,接下来我们来介绍一下1G/2.5G Ethernet PCS/PMA or SGMII IP,首先在 IP Catalog 里面搜索 1G/2.5G,然后选择红框中的 1G/2.5G Ethernet PCS/PMA or SGMII,再点击该 IP 进入 IP 的配置界面。在这里插入图片描述

由于我们用到的是 PL 端的以太网,而且我们实验中以太网的传输速率为1Gbps,Tri-Mode Ethernet MAC 选项可以提供 1Gbps 的传输速率,所以我们在Select Ethernet 选项中选择的是 Tri-Mode Ethernet MAC 选项。点击图 中Data Rate 选项进入 Data Rate 界面配置。
在这里插入图片描述
本次实验以太网的传输速率为 1Gbps,所以 Select Data Rate 选择 1G 即可。
在这里插入图片描述
图是网口的标准选择界面:
1000BASEX:勾选该选项表示使用千兆以太网 1000BASEX 接口标准 ,简单来说就是使用千兆光口的物理层规范。在该标准下数据编码和解码都是使用 8B/10B 方式,信道上数据的传输速率为1.25Gbps,实际的数据传输速率则为 1.25G*8/10=1000Mbps,本章实验就是采用 1000BASEX 网口标准。
SGMII:勾选该选项表明使用千兆以太网的 SGMII标准,SGMII(Serilal GMII)串行 GMII。SGMII 支持 10/100/1000Mbps ,可以根据实际情况自行协商速率转换。SGMII 接口标准在使用电口(RJ45)时使用。
BOTH:勾选该选项可以在 1000BASEX 标准以及 SGMII 接口标准之间进行动态切换,哪一个稳定就优先使用哪一种接口标准。下面我们点击图中的Core Functionality 选项。
在这里插入图片描述
在 Core Functionality 界面中,Physical Interface 选项是选择物理接口, 物理接口选择的是 Device Specific Transceiver 表明物理接口使用设备特定的收发器(GTP 收发器);
Physical Interface:这个选项是物理接口的选项,这个选项有 3 种物理接口。物理接口的选择和前面的选项以及芯片的型号有关,下面是文档中的原文:

在这里插入图片描述

Receive GMII Clock Source 选项是选择接收 GMII 时钟源,这里可以选择 TXOUTCLK 和
RXOUTCLK,本次实验选择默认选项 TXOUTCLK;在Management Options 选项栏下,我们本次实验勾选 Auto Negotiation 选项表明使用自协商管理功能来配置该 IP。接下来,我们点击图 4- 6 中的 Shared Logic 选项,进入 Shared Logic 配置界面。
在这里插入图片描述

Shared Logic 选项卡主要是选择共享逻辑是否被包含在 IP 内部。如果使用 1 个 IP 就将共享逻辑包含在IP 内部,这种方式会减少所生成的模块数量,简化设计;若使用多个 IP,那么将其中一个 IP 采用共享逻辑包含在 IP 内部的方式,其他 IP 选择将共享资源包含在 example 中。

至此,gig_ethernet_pcs_pma 的 IP 就生成成功了。

三、UDP回环模块修改说明

在千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP回环)中对udp接收模块做出修改,修改原因为:
在这里插入图片描述
在实测上板ila抓取信号时当DV为高(有效时),TXD发送为6个55或7个55的前导码,故以往只判断7个55会导致接收失败,做出如下修改:
(1)

//判断条件
	always @ (posedge clk125m_o  or negedge reset_n)
		if(!reset_n)
			preamble_code_check_ok <

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电工技术实验-电路元件伏安特性测绘

一、 实验目的 1、学会识别常用电路元件的方法 2、验证线性电阻、非线性电阻元件的伏安特性 3、熟悉实验台上直流电工仪表和设备的使用方法 二、实验器材 可调直流稳压电源、直流数字毫安表、直流数字电压表、万用表 二极管、稳压管、白炽灯、线性电阻 三、实验原理 任…

低压防雷箱综合选型应用方案

低压防雷箱是一种用于保护低压配电系统免受雷电过电压的影响的装置&#xff0c;它主要由防雷箱模块、浪涌保护器SPD、接地线等组成。本文将介绍低压防雷箱的作用原理和行业应用解决方案&#xff0c;以及低压防雷箱的选型方法。 低压防雷箱的作用原理 低压防雷箱的作用原理是利…

革新区块链:代理合约与智能合约升级的未来

作者 张群&#xff08;赛联区块链教育首席讲师&#xff0c;工信部赛迪特聘资深专家&#xff0c;CSDN认证业界专家&#xff0c;微软认证专家&#xff0c;多家企业区块链产品顾问&#xff09;关注张群&#xff0c;为您提供一站式区块链技术和方案咨询。 代理合约&#xff08;Prox…

职业规划,软件开发工程师的岗位任职资格

软件工程师是指从事软件开发的人&#xff0c;主要的工作涉及到项目培训和项目设计两个方面。在实际工作中&#xff0c;软件工程师是一个广义的概念&#xff0c;包括了很多与软件相关的人员。除开最基础的编程语言&#xff0c;还有数据库语言等等。从事这份工作&#xff0c;需要…

多标签节点分类

Multi-Label Node Classification on Graph-Structured Data,TMLR’23 Code 学习笔记 图结构数据的多标签分类 节点表示或嵌入方法 通常会生成查找表&#xff0c;以便将相似的节点嵌入的更近。学习到的表示用作各种下游预测模块的输入特征。 表现突出的方法是基于随机游走(ran…

【Spring 篇】MyBatis注解开发:编写你的数据乐章

欢迎来到MyBatis的音乐殿堂&#xff01;在这个充满节奏和韵律的舞台上&#xff0c;注解是我们编写数据乐章的得力助手。无需繁琐的XML配置&#xff0c;通过简单而强大的注解&#xff0c;你将能够轻松地与数据库交互。在这篇博客中&#xff0c;我们将深入探讨MyBatis注解开发的精…

MySQL数据库 | 事务中的一些问题(重点)

文章目录 什么是事务&#xff1f;事务的几个特性(ACID) -重点原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability) Mysql中事务操作隐式事务显式事务 savepoint关键字只读事务事务中的一些问题&#xff08;重点&#xff09;隔离级别脏读解决办法 幻读解决…

C语言实战系列一:经典贪食蛇

C语言学习必须实战&#xff0c;并且学完语法后就必须立即用实战来巩固。一般需要10来个比较复杂的程序才能掌握C语言。今天就教大家第一个小程序&#xff0c;贪食蛇。 首先上代码 一、代码 #include <stdio.h> #include <stdlib.h> #include <curses.h> #…

Leetcode的AC指南 —— 栈与队列:20. 有效的括号

摘要&#xff1a; **Leetcode的AC指南 —— 栈与队列&#xff1a;20. 有效的括号 **。题目介绍&#xff1a;给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判断字符串是否有效。 有效字…

Linux系统中内核音频驱动实现

本文以I2S接口为例介绍Linux内核音频相关知识。 一、名词介绍 下面是音频调试中常见的名词缩略语。 1、AEC&#xff08;Acoustic Echo Cancellor&#xff09;&#xff1a;回声消除。 2、AGC&#xff08;Automatic Gain Control&#xff09;&#xff1a;自动增益补偿&#xf…

ZEM20台式扫描电子显微镜在三元材料锂电池中的应用

在当今环保能源需求日益增长的背景下&#xff0c;新型储能材料特别是锂离子电池在新能源汽车和移动互联网设备中的应用越来越广泛。其中&#xff0c;以镍钴锰三元素为基础的分层材质因具有体系能量密度高、原材料来源广、合成过程相对简单等优势&#xff0c;被公认为最有应用前…

字符串展开(Python)

展开字符串中用-压缩的连续小写字母或者数字&#xff0c;不是压缩形式的-不用理会&#xff0c;-没有压缩字符的去除-。 (笔记模板由python脚本于2024年01月21日 18:18:19创建&#xff0c;本篇笔记适合熟悉 p y t h o n python python字符串和列表的coder翻阅) 【学习的细节是欢…

Java线程池七大参数详解和配置(面试重点)

一、corePoolSize核心线程数 二、maximunPoolSize最大线程数 三、keepAliveTime空闲线程存活时间 四、unit空闲线程存活时间的单位 五、workQueue线程工作队列 1、ArrayBlockingQueue FIFO有界阻塞队列 2、LinkedBlockingQueue FIFO无限队列 3、PriorityBlockingQueue V…

2023年度环境电器行业数据分析(洗地机、扫地机器人、吸尘器等)

在家电行业整体消费不振的环境下&#xff0c;环境电器市场也受到影响&#xff0c;2023年度市场大盘销售呈下滑趋势。根据鲸参谋平台的数据显示&#xff0c;2023年京东平台环境电器市场的销量累计约7100万&#xff0c;同比下滑约12%&#xff1b;销售额约360亿&#xff0c;同比下…

二.用户和权限管理(一)

用户和管理权限 1.用户管理1.1登录MySQL服务器1.2创建用户1.3修改用户1.4删除用户1.5设置当前用户密码1.6 修改其它用户密码 2.权限管理2.1权限列表2.2授予权限的原则2.3授予权限2.4产看权限2.5收回权限 3.权限表3.1user表3.2db表3.3tables_priv表和columns_priv表3.4procs_pri…

【iOS】UICollectionView使用

使用UITableView作为表格来展示数据完全没有问题&#xff0c;但仍有许多局限性&#xff0c;对于一些更加复杂的布局样式&#xff0c;就有些力不从心了 比如&#xff0c;UITableView只允许表格每一行只能显示一个cell&#xff0c;而不能在一行中显示多个cell&#xff0c;对于这…

IN操作符

目录 IN NOT IN Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 IN IN 指的是根据一个指定的范围进行数据查询 1.查询出员工编号是 7369、7566、7788、9999 的员工信息 利用前面学的知识,得出: SQL> set linesize 250 SQL>…

​第14节-高质量简历写作求职通关-在线测试

在线测试主要包括性格测试、综合能力测试、技能测试三类 性格测试 性格测试主要用于考察个人与工岗位的匹配程度 考察内容包含性格、能力、动机、价值观等&#xff0c;考察形式一般为给出相应的工作场景&#xff0c;让你选择最喜欢或者最不喜欢的答案 技能考试 这类测试一般是针…

Windows云服务器如何配置多用户登录?(Windows 2012)华为云官方文档与视频地址

Windows云服务器如何配置多用户登录&#xff1f;&#xff08;Windows 2012&#xff09;_弹性云服务器 ECS_故障排除_多用户登录_华为云 打开任务栏左下角的“服务器管理器”&#xff0c;在左侧列表中选中“本地服务器” 然后将右侧“远程桌面”功能的选项修改为“启用”&#x…

LeetCode 13.罗马数字转整数(python版)

需求 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两个并列的 1 。12 写做 XII &#xff0c;即为 X …