当前位置: 首页 > news >正文

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.lryc.cn/news/373391.html

相关文章:

  • 前端面试项目细节重难点(已工作|做分享)(九)
  • 区间预测 | Matlab实现BP-ABKDE的BP神经网络自适应带宽核密度估计多变量回归区间预测
  • 抢占人工智能行业红利,前阿里巴巴产品专家带你15天入门AI产品经理
  • MEMS:Lecture 16 Gyros
  • Java中List流式转换为Map的终极指南
  • 【秋招突围】2024届秋招笔试-小红书笔试题-第一套-三语言题解(Java/Cpp/Python)
  • HAL库开发--STM32的HAL环境搭建
  • 【DPDK学习路径】七、创建RX/TX队列
  • 【ArcGISProSDK】OpenItemDialog打开文件对话框
  • TensorFlow2.x基础与mnist手写数字识别示例
  • 大数据开发语言Scala入门
  • 【CDN】逆天 CDN !BootCDN 向 JS 文件中植入恶意代码
  • 摆脱Jenkins - 使用google cloudbuild 部署 java service 到 compute engine VM
  • 【CS.PL】Lua 编程之道: 控制结构 - 进度24%
  • 从“数据孤岛”、Data Fabric(数据编织)谈逻辑数据平台
  • vuex4.x 升级pinia,router 中使用同步组件导致项目启动失败
  • 0. 云原生之基于乌班图远程开发
  • C++ 字符串处理5-手机号邮箱如何脱敏处理
  • 【lesson8】云备份服务端完整版代码
  • AI办公自动化:kimi批量搜索提取PDF文档中特定文本内容
  • 基于C#开发web网页管理系统模板流程-总集篇
  • 什么是DMZ?路由器上如何使用DMZ?
  • 【bugfix】解决Redis缓存键清理问题
  • 泛微开发修炼之旅--15后端开发连接外部数据源,实现在ecology系统中查询其他异构系统数据库得示例和源码
  • 弹幕逆向signature、a_bogus
  • jEasyUI 使用标记创建树形菜单
  • IT人的拖延——拖是因为不想离开“舒适区”?
  • JUnit 5学习笔记
  • 西格玛 ------ 第18个希腊字母学习
  • 【C语言】assert.h——断言