XILINX SGMII千兆以太网 (2)

2023-05-16

参考PG047

The LogiCORE™ IP 1G/2.5G Ethernet PCS/PMA or Serial Gigabit Media Independent Interface (SGMII) core provides a flexible solution for connection to an Ethernet Media Access Controller (MAC) or other custom logic.

It supports two standards: the 1000BASE-X and 2500BASE-X Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) operation, as defined in the IEEE 802.3-2008 standard and the Gigabit Media Independent Interface (GMII) to Serial-GMII (SGMII) bridge or SGMII to GMII bridge, as defined in the Serial-GMII Specification V1.7 (CISCO SYSTEMS,
ENG-46158) [Ref 1].

Dynamic switching between 1000BASE-X and SGMII standards is also supported

 

速率和模式

从IP核的名字可以看出,该核通过配置可以生成两种核,光口可以用以太网PCS/PMA mode电口具有PHY采用SGMII mode,这里速率采用1G,因为其内部有8b/10b转换,所以参考时钟则是125MHz,有效的数据传输速率就变成了125*10*8/10。

备选项如果勾选,IP核就会把底层SerDes的一些寄存器接口引出来供用户配置,这里不需要。

 

核配置

1000BASEX 的核配置就简单的多了,因为必须要使用到PCS和PMA,因此物理接口必选 Device Specific TR,然后是GMII解析出来的时钟选择自协商功能勾选,MDIO是一种配置IP核的总线,有时钟、数据、标志信号和中断,我的感觉是提供给CPU用的,给上层提供一个方便的配置管理接口。

对于FPGA来说,可以采用另一种途径,Configuration Register,通过寄存器的形式去完成配置,虽然FPGA也能利用MDIO总线,总归是麻烦了些,所以就只用默认的寄存器配置途径。

SGMII 模式的物理接口除了可以用 TR ,还可以用 LVDS 接口。

PHY 与 FPGA 跨时钟的 BUFFER 选项,这个看手册 Figure 3-11。

还有工作模式选项,默认MAC mode,勾选PHY mode,这个对自协商功能来说非常重要,因为,只有PHY mode,自协商广播寄存器是可写的(Advertisement register is programmable)。

按照我的理解就是,MAC 模式中的速率、双工、流控等信息只能从对端获取,PHY 模式则可以通知对端自己的配置信息。关于自协商的数据过程,SGMII mode 和 1000BASEX mode 比较类似,都是通过协议里的两个寄存器 Reg4、Reg5 交叉式的通知与获取,当然,并不是像图中那样还有专门的连线,自协商信息也是通过 SGMII 总线收发的,抓 status vector 的信号就可以看到协议里/C/码形式的,bit2 代表的自协商配置信息流(AN CONFIG Sequences),总之,前端选择默认模式就好,但后端一定要选择 PHY mode,因为它必须把自协商信息广播(advertise)给交换芯片的 reg5。

接收 GMIl 时钟源:选择接收路径和 GMII RX 接口的时钟源。2.5G数据速率不支持 RxGmiClkSrc=RXOUTCLK。当选择 RXOUTCLK 时,由于 RX 数据路径与恢复时钟是同步的,所以不需要对 fabric elastic buffer 进行 required 。因此,SGMll 速度选择不需要 SGMIl capability选项卡。

 

 

 

Shared Logic

Xilinx很贴心,它把所需要的外围电路都设计好了,主要包括时钟管理和复位的一些逻辑。

in Core 表示它会把这些逻辑封装进核里,成为一个新核,把处理后的接口引出来。

in Example design 则是会像例子里的一样,外围电路以独立模块的形式呈现。

举个例子,in Example design 模式里 MMCM 会将时钟锁定信息输入到核的 mmcm_locked,而在 in Core 模式,只能看到mmcm_locked_out,模块间的逻辑因为进一步封装而被隐藏了。

因为,需要用它来加速工程开发,并不意味着不要要看它的代码和手册,这里面也有坑,比如,它的异步复位是高有效。

 

 

收发器被配置为在 txoutclk 端口上输出该时钟的一个版本(1G为125 MHz, 2.5G为312.5 MHz)。然后 txoutclk 路由到 BUFG_GT。USERCLK:生成 userclk  (1G为62.5 MHz、125 MHz,2.5G为312.5 MHz、156.25 MHz)、userclk2 (1G为125MHz, 2.5G为312.5 MHz),并放置到全局时钟路由上。USRCLK:这些时钟被输入回用户接口时钟端口usrclk和usrclk2上的收发机。

sgmii_clk_r、 sgmii_clk_f 

这提供了 SGMII 时钟传递以正确的频率;当将 core 和 SGMII 自适应模块连接到内部逻辑时,可以忽略这些信号。

 

 

 

 

 

 

选择默认的即可。

 

include shared logic in core:

 

 

 

IP 核的内部信号初始化配置以及常量定义

 

DRP:Dynamic Reconfiguration Port

status_vector

output 端口,phy 层反馈的信号。

bit 0 :连接状态。这个信号表示链路的状态。

当高时,链路是有效的:链路的同步已经获得,自动协商(如果存在并启用)已经成功完成,收发机的重置顺序(如果存在)已经完成。

当低时,没有建立有效的链接。链接同步失败或自动调整(如果存在并启用)失败。

当启用自动协商时,此信号与状态寄存器第1.2位:链接状态相同。

当禁用自动协商时,此信号与status_vector位[1]相同。在这种情况下,可以使用任何一位。

 

speed_is_10_100

 

默认设置为:speed_is_10_100 = 0;speed_is_100 = 0;

configuration_vector

默认设置为: configuration_vector = 5‘b00000

 

an_adv_config_vector

 

如果 MDIO 接口没有选择的话,core 可以被配置通过 configuration_vector。

默认设置为(参考 example design): an_adv_config_vector = 15’b0_00_00_0_00_0_1_0000_1

 

signal_detect

连接出现问题,非 AN 模式下:

查看是否连接:

   1. 读 register 1 的 bit 1.2。

   2. 查看 status_vector [0] 的 logic 是否是 1。

如果没有连接成功需要进行一下操作:

   1. 确保在 core 和 link partner (连接到 core 的设备或测试设备)中禁用自动协商

   2. 监视 core 的 signal_detect 输入信号:

      2.1. 连接到光模块以检测光的存在。逻辑1表明光模块对光的检测是正确的;逻辑0表示错误。因此,要确保驱动的极性正确。

      2.2. signal_detect 信号逻辑置 1。

默认设置为:signal_detect = 1。

 

an_restart_config

这个信号只有在AN存在时才有效。此信号的上升沿是重写 Bit 9 或 Register 0 的使能信号。为了触发一个 AN 的开始,这个信号应该被置0,然后重新置1。

在 AN 模式下起作用。

默认设置为:an_restart_detect = 0。

 

reset

异步复位,整个 core 的复位,reset 高电平有效。

 

sgmii_clk_r、sgmii_clk_f

sgmii_clk 输出到 MAC,这个时钟是 sgmii_clk_r、sgmii_clk_f 通过使用 ODDR 的原语得到。

monitor clock for the GMII receiver

在 example design 中

assign mon_rx_clk = gmii_rx_clk;

 

 

gmii interface

gmii_rx_er

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XILINX SGMII千兆以太网 (2) 的相关文章

  • 15.linux中的源码安装,SRPM包安装,rpmbild,spec详解

    前言 本小节会详细讲解在linux中如何进行源码编译安装 xff0c SRPM包的两种安装方式 xff0c rpmbuild spec的使用方法 文章目录 前言源码安装和卸载源码安装介绍安装gcc安装源码包Linux源码包卸载 SRPM包的
  • zephyr中消息队列和邮箱的主要区别点

    简单列一下而已 xff0c 想到什么就列了什么 xff1a 1 邮箱既可以同步也可以异步 xff0c 消息队列只可以异步 xff1b 2 邮箱包含Send和Recv两个消息队列 xff0c 消息队列仅仅包含一个用于消息传输的队列 3 邮箱不
  • Windows/Linux客户端挂载NFS共享存储

    Windows Linux客户端挂载NFS共享存储 1 Linux搭建NFS共享存储1 1 NFS概述1 2 安装并配置NFS Server1 3 启动并验证NFS Server 2 客户端挂载NFS共享存储2 1 Windows操作系统挂
  • WIN10源码编译安装QGC-V3.4

    WIN10源码编译安装QGC V3 4 20190228更新 整个安装过程的流程为 xff0c 先安装VS2015 xff0c 再安装Git 用Git来下载qgroundcontrol代码 xff0c 最后下载Qt 用Qt对qgroundc
  • ESP8266简介

    ESP8266 是一款适用于物联网和家庭自动化项目的 Wi Fi 模块 ESP8266 是一个 10元人名币的 Wi Fi 模块 它允许您像使用 Arduino 一样控制输入和输出 xff0c 但它带有 Wi Fi 因此 xff0c 它非常
  • 多任务操作系统是如何切换进程

    多任务操作系统在并行执行多任务时 xff0c 实际上是不断地在任务间进行切换的 xff0c 也就是切换上文 首先要保存前一个进程的上下文 xff0c 然后调度一个就绪的进程 xff0c 并载入该进程的上下文 xff0c cpu开始执行该进程
  • python爬虫爬取淘宝网页

    首先进行相关的分析 要想爬取相关的信息 xff0c 必须指导如下信息 xff1a 1 访问接口 2 翻页操作 首先进行搜索 xff0c 得到相关的网址 xff1a https s taobao com search q 61 书包 amp
  • Ceres使用经验之柯西核函数

    原理 在优化中 xff0c 经常会遇见有异常值的情况 xff0e 如在直线拟合中 xff0c 可能会出现若干个不在直线上点 xff0c 此时如果每一个点的权重一样 xff0c 就会导致求得的直线方程不理想 xff0e 为了增强优化过程中对异
  • PHPStrom2018最新版软件汉化教程,绝对靠谱

    phpstorm2018中文汉化包 是专门为phpstorm2018最新软件推出的汉化破解补丁 xff0c 帮助各位汉化和免费使用该软件 xff1b 它是一款非常不错的软件 xff0c 是jetbrains打造的一款轻量级IDE集成开发环境
  • js实现冒泡排序

    span class token comment 冒泡排序 span span class token keyword var span arr span class token operator 61 span span class to
  • 图片水平或垂直滚动

    在vue项目中引用外部插件VueImgSlider vue xff1a import VueImgSlider from 39 components VueImgSlider vue 39 export default name 39 we
  • MCU常见的操作系统介绍

    MCU微控制器几种常见的操作系统各自的优缺点介绍 目录 一 FreeRTOS 二 uC OS II 三 C OS III 四 RT Thread 一 FreeRTOS FreeRTOS是一款免费 开源的实时操作系统 xff08 RTOS x
  • 初学者如何学习人工智能收藏

    在CSDN上看到一篇关于初学人工智能的帖子 xff0c 分享给大家 xff0c 希望有用 原文链接 xff1a http bbs jointforce com topic 22613 全文如下 xff1a 一 机器学习 有关机器学习领域的最
  • freeRTOS中队列发送数组(数组成员是结构体类型)

    typedef struct icm42607 sensor data packet t int8 t head int8 t temp degc int16 t reserve0 int16 t accel g 3 int16 t res
  • tracealyzer的使用方法

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • arm汇编指令探究之 ldmia

    ldmia r0 r4 r11 r14 的意思是 LDMIA 中的 I 是 increase 的缩写 xff0c A 是 after 的缩写 xff0c LD加载 load 的意思 R0后面的感叹号 xff01 表示会自动调节 R0里面的指
  • arm汇编指令探究之STMFD和LDMIA指令的使用

  • 汇编输入输出(单个字符以及字符串)

    简单的汇编代码演示 简单的汇编代码演示 1输入输出 1 INT 16HROM BIOS中断1 INT 21HDOS中断 2字符串的输入 1 输入输出 输入输出主要有两个中断调用 xff0c 分别为INT 16H 和INT 21H 1 1 I
  • 关于海康摄像头OSD字幕叠加(.NET/C#/Formwork)

    刚接触摄像头代码的编写 xff0c 这里记录一下吧 xff01 记录一下我挨打的过程 xff01 xff01 在摄像头里面添加字符串 xff0c 困扰了很久 xff0c 资料也看了很多 xff0c 海康官网的文档看了也不是很懂 xff0c
  • 进程管理——进程实体

    一 进程的重要性 操作系统的基本功能是为了管理底层硬件资源 xff0c 在没有配置操作系统之前 xff0c 资源只属于当前运行的程序 这时的计算机只能运行一个程序 xff0c 并且是一个程序接着一个程序的运行 当计算机运行某一个程序时 xf

随机推荐

  • Effective C++读书笔记--Item 1:从四个语言层次理解C++

    可以将C 43 43 理解成由四个子语言组成 xff1a C Object Oriented C 43 43 Template C 43 43 STL C xff1a 代码块 语句 数组 指针 内置数据类型 预处理器 Object Orie
  • 设计师建筑师太难了,既要学BIM、无人机,还要学GIS!

    我 xff0c 一个平平无奇的城市规划专业 xff08 建筑专业 路桥专业 xff09 大学生 xff0c 还有一年要毕业 xff0c 很担心工作以后受到社会的毒打 xff0c 遂问导师和学长 xff0c 我要自学点什么技能和软件 xff1
  • 无人机航测是选择固定翼还是多旋翼?

    无人机测绘通过无人机低空摄影获取高清晰影像数据生成三维点云与模型 xff0c 实现地理信息的快速获取 效率高 xff0c 成本低 xff0c 数据准确 xff0c 操作灵活 xff0c 可以满足测绘行业的不同需求 大大地节省了测绘人员野外测
  • HAL库学习——串口中断

    一 介绍 串口的传输方式包括 xff1a 轮询 中断DMA xff0c 在此要介绍的是关于HAL库底层串口接收中断流程的讲解 xff0c 包括串口错误的处理 xff0c 中断回调函数以及错误中断回调函数的执行 二 配置流程 首先使用STM3
  • 嵌入式操作系统FreeRTOS的原理与实现

    URL http www eefocus com sensorwireless blog 08 03 144457 c9bd6 html 摘要 FreeRTOS是一个源码公开的免费的嵌入式实时操作系统 xff0c 通过研究其内核可以更好地理
  • 吃惊!难道Java也受美国出口管制?

    今天 xff0c 去翻看了一下Oracle Jdk的许可协议 xff0c 竟然是受美国出口管制 原文是这么说的 xff1a EXPORT REGULATIONS You agree that U S export control laws
  • 自己写出strcat函数

    通过指针和字符数组的结合写出strcat xff08 字符串拼接 源码如下 效果图 include lt stdio h gt include lt string h gt int main void char a 20 char b 20
  • 根据ttf文件 获取汉字点阵数据

    文件列表 untitled3 pro QT 61 gui CONFIG 43 61 c 43 43 11 console CONFIG 61 app bundle The following define makes your compil
  • nmap基本使用方法

    nmap基本使用方法 1 nmap简单扫描 nmap默认发送一个ARP的PING数据包 xff0c 来探测目标主机1 10000范围内所开放的所有端口 命令语法 xff1a nmap lt target ip address gt 其中 x
  • ROS学习之自定义msg类型

    1 创建msg文件 cd catkin ws src my package mkdir msg echo 34 string first name string last name uint8 age uint32 score 34 gt
  • 无人驾驶传感器之GPS和IMU

    GPS精度 xff1a GPS是由美国国防部牵头研制和维护的 xff0c 不可避免的牵扯到军事方面的因素 最早期因为害怕别的国家利用高精度的定位对美国进行打击 xff0c 他们甚至故意加大明勇定位的误差 xff0c 导致当时民用精度只能达到
  • 一步一步学CMake 之 VSCode+CMakeLists 调试 C++ 工程

    目录 1 插件推荐 2 文件准备 3 开始调试 一步一步学 CMake 系列文章 1 插件推荐 CMake CMake tools 2 文件准备 新建文件夹 xff1a TEST 新建文件 xff1a CMakeLists txt 内容如下
  • 记录下:ubuntu14.04安装xinetd服务

    1 先查看电脑是否已经安装xinetd sudo etc init d xinetd status 执行如上命令如果没有提示未知服务的话 xff0c 说明已经安装 2 更新apt get 资源列表 sudo apt get update 3
  • VS中Git使用教程

    现在的VS都自带Git插件 xff0c 用起来很方便 xff0c 能将VsCode前端和VS后端一起提交 xff0c 缺点 xff1a Word文档和Excel表没法协同处理冲突 基本上的常用操作都已经涵盖在内了 xff0c 能够满足日常开
  • Office365 - “The action can‘t be completed because the file is open in Microsoft OneDrive.“错误的解决方案

    今天收到user在 move OneDrive folder到machine local drive时弹出error The action can 39 t be completed because the file is open in
  • [学习笔记-SLAM篇]视觉SLAM十四讲ch3

    一鼓作气哈 还学了一点latex编写技巧 xff0c 技能max 注 xff1a 1 xff09 学习视频 xff1a 高翔 视觉SLAM十四讲 视觉SLAM十四讲 第3讲3 1 理论部分3 2 实践部分 第3讲 3 1 理论部分 这一部分
  • docker 开发编译环境搭建

    参与docker开源社区 xff0c 成为docker项目的contributor xff0c 首先要搭建docker的开发编译环境 xff0c 下面是docker官网介绍的编译环境的搭建 xff0c 这里做个笔记 docker的编译环境准
  • docker run 过程解析

    以运行 busybox容器为线索 xff0c 跟踪docekr启动容器的过程 vito 64 caas docker run it busybox bin sh 1 docker 客户端解析 Docker client主要的工作是通过解析用
  • 快速排序基本思路(通俗易懂+例子)

    快速排序 内推 日常实习和社招也可以简历发送到我邮箱 xff0c 长期接受简历 xff0c 部门做搜索产品研发 xff0c 主要php和go语言 xff01 2022百度提前批招聘 填写内推码可以免专业笔试 xff0c 部门直接发起面试 x
  • XILINX SGMII千兆以太网 (2)

    参考PG047 The LogiCORE IP 1G 2 5G Ethernet PCS PMA or Serial Gigabit Media Independent Interface SGMII core provides a fle