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

news2024/9/30 15:24:49

文章目录

  • 前言
  • 一、系统框架整体设计
  • 二、系统工程及 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 <

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

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

相关文章

【SpringBoot技术专题】「开发实战系列」Undertow web容器的入门实战及调优方案精讲

Undertow web容器的入门实战及调优方案精讲 Undertow web容器Undertow 介绍官网API给出一句话概述Undertow&#xff1a;官网API总结特点&#xff1a;Lightweight&#xff08;轻量级&#xff09;HTTP Upgrade Support&#xff08;支持http升级&#xff09;、HTTP/2 Support支持H…

浅谈linux中的根文件系统(rootfs的原理和介绍)【转】

浅谈linux中的根文件系统&#xff08;rootfs的原理和介绍&#xff09;【转】 转自&#xff1a;https://www.cnblogs.com/sky-heaven/p/13742173.html linux中有一个让不少初学者都不是特别清楚的概念&#xff0c;叫作“根文件系统”。我接触linux前先后后也好几年了&#xff0…

Hystrix-熔断机制

1.1. 雪崩效应 熔断发生在服务端&#xff0c;降级发生在客户端&#xff1b; 分布式系统环境下&#xff0c;服务间类似依赖非常常见&#xff0c;一个业务调用通常依赖多个基础服务。如下图&#xff0c;对于同步调用&#xff0c;当库存服务不可用时&#xff0c;商品服务请求线程…

使用pysimplegui+opencv编写一个摄像头的播放器

需求 使用pysimplegui和opencv实现一个播放器&#xff0c;播放 摄像头的画面。 代码实现 import cv2 import time from typing import Iterable, NamedTuple, Optionalimport PySimpleGUI as sgclass CameraSpec(NamedTuple):name: strindex: intwidth: intheight: intfps: i…

【英文干货】【Word_Search】找单词游戏(第1天)

本期主题&#xff1a;Mindfulness&#xff08;意识力&#xff09; 本期单词&#xff1a; Awareness 意识 Breathing 呼吸 Calm 平静的 De-Stress 减压 Feelings 感受&#xff0c;情感 Inspection 调查 Meditation 冥想 Peace 和平 Quiet 安静的 Recollection 回忆 R…

深入理解java对象的内存布局

概述&#xff1a; 在HotSpot虚拟机里&#xff0c;对象在堆内存中的存储布局可以划分为三个部分&#xff1a;对象头&#xff08;Header&#xff09;、实例数据&#xff08;Instance Data&#xff09;和对齐填充&#xff08;Padding&#xff09;。 在HotSpot虚拟机里&#xff0c;…

网络安全全栈培训笔记(57-服务攻防-应用协议RsyncSSHRDPFTP漏洞批量扫描口令拆解)

第57天 服务攻防-应用协议&Rsync&SSH&RDP&FTP&漏洞批量扫描&口令拆解 知识点&#xff1a; 1、服务攻防-远程控制&文件传输等 2、远程控制-RDP&RDP&弱口令&漏洞 3、文件传输-FTP&Rsyc&弱口令&漏洞 章节内容&#xff1a;…

vmware 安装Rocky-9.3系统

安装系统截图 安装完成&#xff0c;启动 查看版本和内核 开启远程登陆授权 1、编辑配置文件 #提升权限&#xff0c;输入su,并输入密码 su #编辑ssh文件开启root远程登陆 vi /etc/ssh/sshd_config找到以下内容&#xff1a;#PermitRootLogin prohibit-password 添加&#xff1a…

13个常见的 WordPress 块编辑器问题以及如何修复它们

您在使用 WordPress 块编辑器时遇到过错误吗&#xff1f; WordPress 在 2019 年用名为 Gutenberg 的全新内容编辑器取代了旧的经典编辑器。该编辑器使用块在 WordPress 中创建内容。然而&#xff0c;有时&#xff0c;在使用它时可能会遇到恼人的问题。 在本文中&#xff0c;我…

知识图谱的广泛应用与价值

目录 前言1 语义搜索2 知识问答2.1 问答对的深度关联2.2 文本挖掘与答案精准性2.3 知识图谱问答的全面服务 3 辅助推荐4 辅助大数据分析4.1 知识图谱推理的应用4.2 知识图谱的数据分析4.3 动态本体技术的引入 5 故障诊断5.1 故障诊断系统的应用5.2 知识图谱在语言理解中的作用5…

【Android12】Android Framework系列---Adb和PMS安装apk源码流程

Adb和PMS安装apk源码流程 adb install命令 通过adb install命令可以将apk安装到Android系统&#xff08;注意&#xff1a;特定类型的apk&#xff0c;比如persist类型是无法通过adb安装的&#xff09; 下述命令中adb解析install命令&#xff0c;并调用Android PackageManagerS…

S2-08 ESP-IDF开发 : 存储

S2-06 和 S2-07 暂时先不发&#xff0c;课上没给同学们将&#xff0c;分别是 DMA 和 USB 章节&#xff0c;作为专项讲 存储 ESP32 系列芯片中&#xff0c;不同型号的芯片所携带的 ROM、SRAM、RCT SRAM、PSRAM 以及 Flash大小不同&#xff0c;他们的作用如下&#xff1a; SRAM…

centos 启动nacos pg版本

背景&#xff1a;支持国产化需求&#xff0c;不再使用mysql 1.修改插件 git clone https://github.com/wuchubuzai2018/nacos-datasource-extend-plugins.git cd nacos-datasource-extend-plugins/nacos-postgresql-datasource-plugin-ext mvn package编译成功后&#xff0c;…

虚拟机将1.15版本的nginx推送到阿里云镜像仓库

1、docker images 2、docker login --usernamealiyun7279061146 registry.cn-shenzhen.aliyuncs.com 3、docker tag 53f3fd8007f7 registry.cn-shenzhen.aliyuncs.com/zhouwb/zhou:1.15 docker push registry.cn-shenzhen.aliyuncs.com/zhouwb/zhou:1.15

C++实战:类的包含编译模型

文章目录 一、实战概述二、实战步骤&#xff08;一&#xff09;C普通类的包含编译模型1、创建普通类定义文件2、创建普通类实现文件3、创建主程序文件4、运行主程序&#xff0c;查看结果 &#xff08;二&#xff09;C模板类的包含编译模型1、创建模板类定义文件2、创建模板类实…

【Leetcode 144.二叉树的前序遍历】将二叉树每个节点的值以前序遍历的顺序存入数组中

int* preorderTraversal( struct TreeNode*root, int* returnSize) { }解答代码&#xff1a; int TreeSize(struct TreeNode*root){return rootNULL?0:TreeSize(root->left)TreeSize(root->right)1;}void Prevorder(struct TreeNode*root,int*a,int*pi){if(rootNULL)re…

内网穿透的应用-如何使用Docker部署Redis数据库并结合内网穿透工具实现公网远程访问

文章目录 前言1. 安装Docker步骤2. 使用docker拉取redis镜像3. 启动redis容器4. 本地连接测试4.1 安装redis图形化界面工具4.2 使用RDM连接测试 5. 公网远程访问本地redis5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 前言 本文主要介绍如何在Ub…

代码随想录算法训练DAY25|回溯2

算法训练DAY25|回溯2 216.组合总和III 力扣题目链接 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数&#xff0c;并且每种组合中不存在重复的数字。 说明&#xff1a; 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k 3, n …

【并发编程】synchornized原理

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;并发编程 ⛺️稳重求进&#xff0c;晒太阳 目录 Monitor概念 Java对象头 普通对象 数组对象 Monitor(锁) Monitor结构如下&#xff1a; 注意&#xff1a; 原理之synchornized 轻量…

压力容器多开孔结构静力分析APP

压力容器多开孔结构静力分析APP对带有多个接管的容器结构在内压作用下进行静力分析&#xff0c;考察相邻接管开孔对容器及接管强度的影响。通过对容器和接管的几何尺寸、材料属性、载荷等进行参数化&#xff0c;以方便设计工程师对不同参数下的此类结构进行仿真分析。 近年来&a…