PS通过GTX实现SFP网络通信1

将 PS ENET1 的 GMII 接口和 MDIO 接口 通过 EMIO 方 式引出。在 PL 端将引出的 GMII
接口和 MDIO 接口与 IP 核 1G/2.5G Ethernet PCS/PMA or SGMII 连接, 1G/2.5G Ethernet PCS/PMA or SGMII 通过高速串行收发器 GTX 与 MIZ7035/7100 开发板的 SFP 接口连接。在 PS 端通过 SDK 自带的 lwip echo server 例程实现与电脑的 TCP 通信。
PL 部分设计
ZYNQ PS 设置
要实现本例程的功能,在原有基础上 PS 需要添加 2 个设置。首先,将 ENET1 及其 MDIO 接口以 EMIO 方式引出,如下图所示。
设置 PS 输出 1 路 200MHz 的时钟,用于给 1G/2.5G Ethernet PCS/PMA or SGMII IP 核提供参考时钟。 例如,使用 FCLK_CLK0 输出 200M 时钟,如下图所示。
1G/2.5G Ethernet PCS/PMA or SGMII  IP 核设置
将 IP 核设置为 PS 的以太网控制器。
选择 1000BASEX 模式,如下图。
使用 GTX 收发器作为 SFP 的接口,输入 IP 核内部的 MMCM 的时钟源选择为 GTX 收发器输出
的时钟 TXOUTCLK ,该 MMCM 将产生我们所需要的用户接口时钟。 MDIO 接口默认启用。使能自协商。如 下图。
当设计中只包含 1 个此 IP 核时,应当将可共享的逻辑资源和硬件模块包含在 IP 核内部,这样会减少
所生成的模块数量,简化设计。如下图所示。
当设计中需要同时使用若干个此 IP 核,且所使用的 GTX 均位于同一个 GTX BANK 中。此时,只需其中 1 个 IP 核内部的共享资源( MMCM 、 GTP PLL 、 GTX 参考时钟等)便可以满足所有 IP 核的需求,即选择将共享 资源包含在 IP 核内部。其余 IP 核将这些共享资源从其内部剔除即可,即选择将共享资源包含在 example 中。
IP 核结构
时钟网络
IP 核内部时钟网络结构如下图所示。
用户接口
这里对一些重要的用户接口进行说明,其他接口可参考 IP 核手册。
GMII 接口
GMII 接口的同步时钟为 IP 核的输出时钟 userclk2 。 GMII 接口发送时序如下图所示。
GMII 接口接收时序如下图所示。
independent_clock_bufg
independent_clock_bufg 是频率为 200MHz 的输入时钟。在 IP 核的 example design 中, GMII 接口连接了 IDELAYE2,并作为 IO 与芯片引脚连接。 independent_clock_bufg 输入的 200MHz 时钟便作为 IDELAYCTRL 的 参考时钟。在本例程中,GMII 作为内部信号,不用作 IO 口,所以不需要使用 IDELAYCTRL 。 除此之外,independent_clock_bufg 还供 IP 核内部的其他逻辑使用。因此,无论是否需要使用 IDELAYCTRL,independent_clock_bufg 都必须输入 200MHz 的时钟。后缀 bufg 表示该 200MHz 时钟进入 independent_clock_bufg端口前就已经通过 BUFG 进入了全局时钟网络。在例程中,这个 200MHz 时钟直接由 PS 输出的 FCLK_CLK0 提供。
signal_detect
要使 IP 核正常工作,需要将 signal_detect 置 1 。例程中,通过 IP 核 Constant 将 signal_detect 置 1 。 Constant 设置如下图所示。
Configuration_Vector
Configuration_Vector 用于配置 IP 核的基本工作模式,可替代 MDIO 接口的功能。其具体含义如下图所示。
由于例程中启用了 MDIO 接口,因此 Configuration_Vector 无实际使用。例程中,通过 IP 核 Constant 将输入 的 Configuration_valid 置为 0 ,则使 Configuration_Vector 无效。 Constant 设置如下图所示。
an_adv_config_vector
an_adv_config_vector 用于配置 IP 核的自协商功能,其具体含义如下图所示。对于 1000BASEX 模式,只需要关注 bit5,bit8~7,bit13~12。IP 核的自协商功能可以通过 MDIO 接口进行配置,由于例程中启用了 MDIO 接口,因此 an_adv_config_vector 无实际作用。例程中,通过 IP 核 Constant 将输入的 an_adv_config_val 置为 0,则使输入 an_adv_config_vector 无效。
Status_Vector
Status_Vector 反应了 IP 核工作状态,其具体含义如下图所示。
phyaddr
例程中启用了 MDIO 接口,由于 MDIO 接口时基于地址进行访问的,因此需要为 IP 核设置 1 个 phy address 。 在例程中,通过 IP 核 Constant 将 phy address 设置为 6 。
将 PS ENET1 与 1G/2.5G Ethernet PCS/PMA or SGMII 连接

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

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

相关文章

利用flask + pymysql监测数据同步中的数据是否完整

一、背景 最近项目搞重构,将原有的系统拆分成了多个子系统。但是有数据表需要在不同系统中数据,同时为了解决项目性能最了一个很简单的方案,就是公共数据存在每个系统之中。 二、分析 分析这些表,这些表相比源数据表,表…

行为型-观察者模式(Observer)

观察者模式(Observer Pattern)是一种软件设计模式,主要用于在对象之间建立一对多的依赖关系,以便当一个对象的状态发生改变时,其所有依赖的对象都会得到通知并自动更新。观察者模式属于行为型模式。以下是关于观察者模…

lvgl手势事件判断为点击事件问题

lvgl手势事件判断为点击事件问题处理方法 1.打开文件lvgl\src\core\lv_indev.c 2. 修改函数 static void indev_proc_release(_lv_indev_proc_t * proc)2.1 由原来的 /*** Process the released state of LV_INDEV_TYPE_POINTER input devices* @param proc pointer to an …

学习笔记——交通安全分析05

目录 前言 当天学习笔记整理 交通行为、心理与安全 结束语 前言 #随着上一轮SPSS学习完成之后,本人又开始了新教材《交通安全分析》的学习 #整理过程不易,喜欢UP就点个免费的关注趴 #本期内容接上一期04笔记 当天学习笔记整理 交通行为、心理与…

关于Flutter doctor里两个警告的消除

在终端里输入 flutter doctor 是我们检查flutter是否配置好的方法。 在输出信息里常碰到两个警告 ! Warning: dart on your path resolves to /usr/local/Cellar/dart/2.18.6/libexec/bin/dart,which is not inside your current Flutter SDK checkout at /Users/dengpeng/fl…

三运放仪表放大器通过设置单个电阻器的值来调整增益

从公式 1 中可以看出,我们可以通过调整单个电阻器 R G的值来调整仪表放大器的差分增益。这很重要,因为与电路中的其他电阻器不同, RG的值不需要与任何其他电阻器匹配。 例如,如果我们尝试通过更改 R 5的值来设置增益,…

TGI模型- 同期群-评论文本

用户偏好分析 TGI 1.1 用户偏好分析介绍 要分析的目标,在目标群体中的均值 和 全部群体里的均值进行比较, 差的越多说明 目标群体偏好越明显 TGI(Target Group Index,目标群体指数)用于反映目标群体在特定研究范围内…

在自己的电脑上搭建我的世界Java版服务器

很多朋友,喜欢玩Minecraft,也希望搭建一个服务器,用于和小伙伴联机; 并且,拥有服务器后,即使所有玩家都下线,“世界”依旧在运行,玩家可以随时参与其中,说不定一上线&am…

有状态服务和无状态服务

有状态服务和无状态服务在不同的业务场景下有不同的应用,以下是一些常见的例子: 有状态服务的场景: 用户会话管理: 用户登录后,会话信息(如用户ID、权限、购物车内容等)需要在服务端保持状态。…

一种新的一维时间序列信号盲解卷积算法(以旋转机械故障诊断为例,MATLAB环境)

一种新的一维时间序列信号盲解卷积算法(以旋转机械故障诊断为例,MATLAB环境),可作为深度学习信号前处理过程,水个SCI不是问题。 机械设备的状态信号中往往蕴含着大量的设备异常信息。如何从繁多的机械状态信号中提取足…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(五)质量设计方法与工具

第五节 质量设计方法与工具 1 任 务 分 解 法 1.1 概念 任务分解法,又称工作分解结构 (Work Breakdown Structure, 简 称 WBS) 。WBS 指以可交付成果为 导向,对项目团队为实现项目目标并完成规定的可交付成果而执行的工作所进行的层次分解。W…

程序员基本功之git的使用

阿里网盘-资料链接 文章目录 git分布式版本控制工具git的基本概念开发过程中的问题常见的版本控制工具git分布式版本控制工具特点git系统所定制的若干目标git的工作流程图 GIT的安装和常用命令**创建本地git仓库步骤****本地git仓库的使用**git log详解 git分布式版本控制工具…

SpringCloud跨服务远程调用

随着项目的使用者越来越多,项目承担的压力也会越来越大,为了让我们的项目能服务更多的使用者,我们不得不需要把我们的单体项目拆分成多个微服务,就比如把一个商城系统拆分成用户系统,商品系统,订单系统&…

MQTT TCP HTTP 协议对比

目录 1. 类型与用途 2. 通信模式与特性 3. 优缺点 4. 使用场景 MQTT、TCP和HTTP在类型、用途、通信模式、特性以及使用场景等方面存在显著的区别,以下是详细的阐述: 1. 类型与用途 MQTT:MQTT是一种消息传输协议,主要适用于物…

增加软件投入的重要性:提升自动化程度与用户界面设计的价值

一、引言 在许多项目中,硬件系统通常占据了大量预算,而对软件的投入相对较少。这种不平衡往往导致软件自动化程度低、操作不便、界面简陋,过多的人工干预不仅降低了工作效率,还影响了用户体验。特别是对于一些国家项目&#xff0…

matlab:数字信号处理过程(趋势+峰值+包络+滤波+FFT)仿真

数字信号处理 消除趋势找峰值求包络平滑fftclc;clear;close all; figure(1);clf; Fs = 200;%采样频率 T = 1/Fs; %采样周期 N = 300;

「C系列」C 结构体

文章目录 一、C 结构体1. 定义结构体2. 声明结构体变量3. 初始化结构体变量4. 访问结构体成员5. 结构体数组6. 结构体指针7. 结构体嵌套 二、C 如何使用结构体1. 定义结构体类型2. 声明结构体变量3. 初始化结构体变量4. 访问结构体成员5. 结构体指针6. 在函数中使用结构体7. 注…

docker run的复杂使用

sudo docker run -dit --namenmediacross1.x -v $HOME:$HOME -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri --privileged --networkhost -e DISPLAYunix$DISPLAY -w $HOME nova:nmediacross1.x这个Docker命令相当复杂,包含了许多选项和参数,…

记录一次CTF图片拼图安装工具montage+gaps成功步骤以及踩坑全过程

安装图片拼接工具montage: 1.安装 使用pip install montage无法安装montage工具的师傅可以尝试下面的方法 #Debian apt-get install graphicsmagick-imagemagick-compat#Ubuntu apt-get install graphicsmagick-imagemagick-compat#Alpine apk add imagemagick6#…

安全相关的一些基础知识(持续更新)

目录 1. TRNG真随机数生成 2. 对称加密和非对称加密及其区别 3. Hash算法(摘要算法) 4. HTTPS、TLS、SSL、HTTP区别和关系 HTTPS的基本原理 5. PSS 1. TRNG真随机数生成 True Random Number Generator 在真随机数的生成里,把随机数的生…