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

2024-06-16 00:36
文章标签 实现 网络通信 ps gtx sfp

本文主要是介绍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 连接

这篇关于PS通过GTX实现SFP网络通信1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1065029

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构