前言:

综合全网各路老鸟的优质博客加上一些自己的理解,整理了如下学习笔记;蛮开心入职了自己满意的单位,分享出来,希望大家都有所收获。

吉比特收发器(MGT)是吉比特级串行器/解串器(SERDES)的别名。赛灵思7系列FPGA内部集成了能实现高速数据收发RocketI/O模块,采用了CML高速电平逻辑、CDR、线路编码(8B/10B)和预加重等技术的RocketI/O硬核模块,可极大地减小时钟扭曲、信号衰减和线路噪声对接收性能的影响,从而使传输速率进一步提高,可用于实现吉比特以太网、PCI-Express、SRIO、SFP等常用接口。
吉比特高速串行I/O的最大缺点在于对信号完整性的严格要求。而且板材、高速连接器和电缆的费用较高
下图为赛灵思7系列FPGA高速串行接口(MGT)在各个型号芯片中的具体资源配置

*GTX结构与功能:

(1) 7系列FPGA通常按照bank来分,对于GTX的bank,一般称为一个Quad,原因是一个bank(Quad)中有4个独立的GTX通道以及一个时钟模块。每个通道称呼为Channel。所以在GTX的代码中可以看到Channel这个底层原语。

GTXE2_CHANNEL/GTHE2_CHANNEL 就是最后IP例化的名称。
GTXE2_COMMON/GTHE2_COMMON 就是最终IP中QPLL的名称.


每一个CHANNEL的TX与RX接口都是由PMA和PCS组成;GTX的最小必要单元就是PMA,其主要原因就是核心的模拟部分。而PCS理论上可以全部由FPGA普通逻辑来实现。当然作为硬核提供的PCS功能更多、性能更好、使用更方便;

PCS提供丰富的物理编码层特性,如8b/10b编码等;
PMA部分为模拟电路,提供高性能的串行接口特性****
TX模块工作原理:
①将需要发送的16/32bit并行数据通过内部fifo传给编码模块;
②编码后的数据需要跨时钟域到并串转换模块(PCS到PMA)缓存到fifo;
③并串转换完成后发给TX驱动器调整数据电器特性后从高速IO口发出;*
RX模块工作原理与TX正好相反
调整数据电器特性、串并转换、8B/10B编码。

关于8B/10B编码的知识点:
作用:8B/10B编码有平衡电平,防止出现连续1/0的功能,其最大的优势在于自带错误检查,当8b10b错 误的时候大概率是链路质量问题;
缺点:8B/10B编码效率比较低,有20%的额外开销;常用于8G以下使用;
改进:GTX还提供了GearboX,其内部包含64b/66b编码;

(2)每个CHANNEL都有自己的专用锁相环CPLL;同时每个CHANNEL也可公用 同一个QPLL;
疑问:QPLL与CPLL有什么区别?
解答:解答:QPLL一般用到更高频率时使用;当收发器的线速度非常高,其CPLL的频率范围已无法满足需求时,QPLL就出场了。在GTX里面,CPLL的频率范围为1.6GHz~3.3GHz,支持的最高线速度为6.6Gb/s。QPLL的工作频率在低波段模式时为5.93 GHz到8.0GHz,在高波段的工作频率为9.8GHz~12.5GHz。无论是artix、kintex还是virtex,PLL的频率范围决定了收发器的最高线速度。
时钟的独立性:TX/RX的时钟独立,channel 时钟的独立,QUAD时钟的独立。
时钟可选择性:TX/RX的时钟可选,channel 时钟的可选,QUAD时钟的可选。
CPLL通常用于低速率传输通常在3.125G以下,QPLL通常用于高速率传输,QPLL的时钟更加精确,原则是能用QPLL就不用CPLL

硬件设计指导(K7-325T为例)

(1)概述:

GTX/GTH收发器管脚定义

每种电压在GTX模块内部的具体作用点

K7具体供电电压需求

RCAL电路仅在FPGA配置器件执行校准功能,在配置前所有的模拟电压必须达到要求电压及其容忍误差,如果没使用Quad,MGTAVTTRCAL和MGTRREF管脚必须接地,电阻精度1%,PCB走线满足等长;

(2)时钟设计

MGTREFCLK输入buffer详细结构图中时钟管脚内部上拉至0.8V,当MGTAVCC收发器驱动电压不满足要求时,其参考时钟有可能出现问题;
当为GTX/GTH收发器选择晶振时,注意一下问题:

  • 晶振输出管脚与GTX/GTH收发器Quad时钟输入管脚之间需要AC耦合
    疑问:Quad时钟输入管脚对应哪一个REFCLK(0 or 1)?
    解答:软件可以通过任意一个参考时钟通道连接到QPLL上;
  • 参考时钟差分电压摆幅满足开关特性要求;
  • 遵守晶振供电、布局布线、噪声特性要求;
  • 保持差分线阻抗连续(不要跨分割,以完整低平面为参考);
    FPGA收发器GTX/GTH参考时钟接口电平有两种连接方式:LVDS与LVPECL;
    如果参考时钟未使用,则参考时钟MGTREFCLKP和MGTREFCLKN应该悬空。

LVPECl耦合链路上的偏置电阻应以晶振推荐值为准;
AC耦合电容的作用(0.1uf):

  • 阻断外部晶振与收发器Quad专用时钟管脚之间的DC电流,降低功耗;(隔直通交)
  • AC耦合电容和参考时钟输入端构成高通滤波器,衰减参考时钟偏移(时域上);
  • 保持电容两端电压独立,互不干扰。

(3)电源滤波设计

GTX/GTH收发器对电源噪声比较敏感,电源噪声会导致收发器性能下降,来源于:

  • 电源稳压器噪声(DCDC)
  • 其他电路耦合
  • 电源分布网络
    在FPGA输入管脚测量的总的噪声Vpk-pk不能超过10mV,正常情况下,GTX/GTH模拟电源最后一级稳压器应尽量靠近收发器供电管脚,减小稳压器输出管脚到收发器电源输入管脚之间的距离,降低耦合噪声的概率;

虽然GTX模块对上电时序没有要求,但是任意的上电顺序也不会损坏芯片,但为了减少上电的瞬间电流,推荐一下上电顺序:
MGTVCCAUX > MGTAVCC > MGTAVTT。

其他资源介绍:
GTX的预加重和均衡:当使用到GTX的物理接口出现信号质量不佳,数据丢包,校验出错之类的情况时,为了提高信号质量,可以使用GTX提供的预加重、均衡、调整输出振幅等功能。预加重和调整输出振幅用于数据发送方向,均衡用于数据接收方向

基于XILINX FPGA芯片高速串行接口GTX学习笔记相关推荐

  1. FPGA Xilinx 7系列高速收发器GTX通信

    Xilinx 7系列高速收发器GTX 说明: FPGA: TX端_zynq(7z035) RX端_zynq(7z100). 两个FPGA通过SFP(光纤)接口相连进行GTX的通信. 环境:Vivado ...

  2. Xilinx FPGA芯片命名规则

    1.1 Xilinx FPGA芯片命名规则 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Xilinx FPGA芯片命名规则: 5)结束语. 1.1.2 本节引言 &q ...

  3. 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实战

    系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...

  4. 《基于GPU加速的计算机视觉编程》学习笔记

    <基于GPU加速的计算机视觉编程>学习笔记(1) 最近打算 准备工作 CUDA开发环境(主要是查看N卡的信息) 在WIN10下安装CUDA工具包 最近打算 在训练模型的时候,感觉电脑非常吃 ...

  5. 多层高速PCB设计学习笔记(四)四层板实战(上)之常见模块要求

    系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...

  6. 《基于GPU加速的计算机视觉编程》学习笔记(2)

    <基于GPU加速的计算机视觉编程>学习笔记(2) 笔记(1)得到的结论 CUDA的开发环境 拥有Ubuntu16.04系统 linux下查看显卡信息 linux下安装CUDA工具包 一个基 ...

  7. 《基于张量网络的机器学习入门》学习笔记7

    <基于张量网络的机器学习入门>学习笔记7 量子算法 什么是量子算法 三个经典量子算法 Grover算法 背景 基本原理 例题 量子算法 什么是量子算法 例如我们求解一个问题,一个111千克 ...

  8. 《基于张量网络的机器学习入门》学习笔记6

    <基于张量网络的机器学习入门>学习笔记6 密度算符(密度矩阵) 具体到坐标表象 在纯态上 在混合态上 纯态下的密度算符 混合态下的密度算符 密度算符的性质 量子力学性质的密度算符描述 第一 ...

  9. 《基于张量网络的机器学习入门》学习笔记5

    <基于张量网络的机器学习入门>学习笔记5 量子概率体系 事件 互斥事件 概率与测量 不相容属性对 相容属性对 量子概率与经典概率的区别 量子测量 量子概率体系 我们将经典的实数概率扩展到复 ...

最新文章

  1. 干货|NLP 的四张技术路线图,带你系统设计学习路径
  2. LeetCode Verify Preorder Serialization of a Binary Tree
  3. 自写网站阶段之:终结篇
  4. 货拉拉携手神策数据,数据赋能企业,实现多元颠覆式创新
  5. [Spoj]Counting Divisors (cube)
  6. HDU1181:变形课(DFS)
  7. 软件架构(5)---软件架构设计的一些总结和理解
  8. SAP License:今天你‘牺牲’了吗?
  9. [软件架构]基于PluginRT的插件编程
  10. vss2005 Internet配置
  11. Stream流简单使用之List集合排序
  12. 合并两个有序数组(Python)
  13. oracle汉字转换成拼音首字母和五笔首字母
  14. 树莓派Python3 使用定时器
  15. 【BZOJ3772】精神污染 DFS序+主席树
  16. 希尔排序(实现+总结)
  17. 调试本地SQLServer存储过程
  18. python文件名排序按windowsp_在SQLServer中如果实现Windows文件夹中按名称排序?算法是什么怎么Order By...
  19. 二 、C语言程序的基本语句和基本结构
  20. HDU 2681 MM Programming Club(miaos的线段树维护+ycy的暴力贪心)

热门文章

  1. DDNS是什么?DDNS的工作原理是怎样的?
  2. require.js笔记
  3. 字符编程输出小飞机C++
  4. 图形化编程 超级马里奥_超级马里奥可以向我们传授哪些图形技术?
  5. 阿里云asp主机 后台登录一直提示验证码错误_Lazada官方最全开店指南首发!云开店之入驻篇,快速入驻只需四步...
  6. 海岛奇兵服务器维护中怎么办,海岛奇兵: 这几点一定要注意,不然会半途而废...
  7. 百万用户级游戏服务器架构介绍
  8. zzuli_acm_oj 1851 KILL 小模拟
  9. U盘显示1字节怎么办?
  10. “合”而不同,持“智”以恒,幂律智能2022产品升级发布会全程回顾!