如何理解GTX发送通道的用户接口?(高速收发器二)

  前文讲解了高速收发器的QPLL及CPLL和差分时钟相关内容,如下图所示。本文就打开高速收发器通道的内部结构,进行简要讲解。

在这里插入图片描述

图21GTXE2_CHANNEL原始拓扑

  收发器的内部框图如下所示,上半部分是发送通道,下半部分是接收通道,均包含PCS和PMA两部分。其中PMA的功能为:串并转换和模拟部分。PCS的功能为:并行的数字电路处理。

在这里插入图片描述

图2 GTXE2_CHANNEL原始拓扑

  本文先讲解发送通道,接收通道的很多内容相似,只有部分区别,下图是发送通道的内部框图,搞懂这张图,基本上发送通道的功能就了解的差不多了。

在这里插入图片描述

图3 GTX收发器TX框图

1. FPGA TX Interface

  GTX发送通道的用户接口,用户数据通过该接口的信号输入。用户输入的数据TXDATA与用户发送时钟TXUSRCLK2上升沿对齐,数据位宽可以设置为2、4、8字节,常用数据位宽4字节,即32位。

2、8B/10B Encoder

  对待发送的数据进行8B/10B编码,作用与前文DVI接口的TMDS编码一致,直流均衡,保证已传输的数据中1和0的个数长期相等。

  在配置IP时,可以选择发送/接收数据的编码/解码方式,如果把用户数据位宽设为32位,采用8B/10B编码,则编码后的数据位宽为40位,如下图所示。

在这里插入图片描述

图4 8B/10B编码

  这个数据的位宽大小其实与线速率和编码方式均有关,如下表所示,当使能8B/10B编码时,发送数据位宽TX_DATA_WIDTH只能设置为20、40、80。

  注意表中TX_DATA_WIDTH表示一个用户数据经过8B10B编码后的数据位宽,而FPGA Interface Width表示用户接口每次传输的数据位宽,该数据与后文的TXUSRCLK2对齐。Internal Data Width表示PCS内部并行数据一个时钟传输的数据位宽,该数据与后文的TXUSRCLK对齐。

  当TX_DATA_WIDTH与Internal Data Width相等时,表示PCS内部传输一个数据只需要一个时钟,此时TXUSRCLK的频率与TXUSRCLK2频率会相等。如果TX_DATA_WIDTH是Internal Data Width的二倍,则PCS内部需要两个时钟才能传输一个经过8B10B编码后的用户数据,那么TXUSRCLK的频率是TXUSRCLK2频率的2倍。可以在后文图12的时钟关系中进行验证。

  PCS内部每次可以传输2字节或者4字节数据,通过TX_IN_DATAWIDTH参数进行设置,TX_IN_DATAWIDTH为0时每次传输2字节数据,为1时每次传输4字节数据,当线速率大于6.6Gb/S时,每次必须传输4字节数据。

  因此由下表可知,当线速率为10Gb/S,使能8B/10B时,用户数据位宽只能为32或者64位,并且编码后的数据位宽均为40位。

在这里插入图片描述

图5 数据位宽

  当不使能8B/10B编码且线速率小于6.6Gb/S时,用户输入的数据位宽可以是16、20、32、40、64、80。此时如果TXDATA为16/32/64,TX_DATA_WIDTH为20/40/80,TXCHARDISPMODE和TXCHARDISPVAL端口用于将TXDATA端口从16位扩展到20位、32位扩展到40位或64位扩展到80位。如下图所示。

  通过下图可知GTX先发送低字节数据,后发送高字节数据。

在这里插入图片描述

图6 8B/10B编码器旁路时发送的TX数据

  在多数情况下都是要使用8B/10B编码或者64B/66B编码的,此时TXCHARDISPMODE和TXCHARDISPVAL可以用来控制极性,与TMDS编码类似,直流均衡,硬核模块可以自己实现,用户也可以通过这两个信号自己实现。

  采用8B/10B编码,每传输10bit数据,需要传输2bit无效数据。数据传输效率只有百分之八十,为了提高数据传输速率,同时保留编码方案的优势,可以使用64B/66B编码。

3. TX Gearbox

  支持使用64B/66B编码,由图3可知,8B/10B Encoder和TX Gearbox的输入、输出都是连接的同一个端口。

  因此在实际使用时,如果不使用编码,数据直接到达数据选择器输入端,然后输出。如果使用8B/10B编码,则会经过8B/10B Encoder到达数据选择器输入端。如果使用64B/66B则经TX Gearbox到达数据选择器输入端口。在使用64B66B编码时详细讲解该部分内容。

4. TX PIPE Control

  全称为Physical Interface for PCI Express,PCIe物理层接口。如果使能PCIE接口,则该通道是PCIE的数据通道,否则将不会被使用。

5. Pattern Generator

  伪随机序列(Pseudo-random bit sequences,PRBS),频谱接近白噪声,一般用于高速串行通信通道传输的误码率测试。相关的设置端口如下所示,原理与M序列类似。

在这里插入图片描述

图7 PRBS端口设置

  手册中显示提供了四种PRBS波形,分别是PRBS-7、PRBS-15、PRBS-23、PRBS-31,其中PRBS-7的表达式为x^7+x^6+1,输出数据每2^7-1个时钟循环一次,实现方式也很简单,几个移位寄存器加异或门就行了。

在这里插入图片描述

图8 TX PRBS码发生器模块

6和16、TX Phase Interpolator Controller

  TX相位插值器控制器模块,允许使用PCS中的TX相位插值器PPM(百万分之一)控制器模块来控制TX PMA中的TX PI,以优化高速数据传输过程中的信号质量,保持传输的稳定性和可靠性。

7. Phase Adjust FIFO

  相位调整FIFO缓冲器如下图是时钟域的划分,在发送端的PCS子层里面有两个并行时钟域,分别是PMA相连的并行时钟(XCLK)和TXUSRCLK时钟。要传输数据,XCLK速率必须与TXUSRCLK速率匹配,并且必须解决两个域之间的所有相位差。

  GTX的发送数据通道包括一个FIFO缓冲器和一个TX相位对准电路,用于解决XCLK和TXUSRCLK域之间的相位差。

在这里插入图片描述

图9 GTX收发器TX框图

  FIFO缓冲器优势就是设计比较简单,用户可以不用去管内部实现,只需要在调用IP时勾选下图中1处选项即可,缺点是FIFO的延迟比较大,导致用户把数据输入GTX到GTX输出数据的时间比较长.如果不考虑这部分延迟,推荐直接使用FIFO即可。

在这里插入图片描述

图10 跨时钟域及时钟处理

  如果对延时比较敏感,则可以使用相位对齐电路,只不过需要用户自己编写这部分控制代码,如果代码出现错误,将无法正常接收和发送数据。

  在图10中还可以设置用户发送端口TXUSRCLK和用户接收端口RXUSRCLK的时钟来源,首先应该了解下TXUSRCLK和TXUSRCLK2。

  TXUSRCLK是GTX发送通道中PCS逻辑的内部时钟,TXUSRCLK的速率取决于GTXE2_CHANNEL原语的内部数据路径宽度和GTX发送通道的线路速率,计算公式如下所示。

在这里插入图片描述

图11 TXUSRCLK频率计算

  TXUSRCLK2是GTX发送通道所有信号的主同步时钟。TXUSRCLK2和TXUSRCLK的频率关系与TX_DATA_WIDTH、TX_INT_DATAWIDTH有关,如下图所示。

在这里插入图片描述

图12 时钟关系

  **TXUSRCLK和TXUSRCLK2必须正边沿对齐,并且源时钟必须相同,两者之间的偏斜尽可能小。**一般使用BUFG、BUFH、BUFR来驱动TXUSRCLK和TXUSRCLK2。

  因此一般将GTX IP输出的TXOUTCLK时钟信号作为TXUSRCLK和TXUSRCL源时钟信号,用户其实只需要关注TXUSRCLK2和RXUSRCLK2即可,其余两个用于IP内部,与用户关系不大。

  如果IP设置为图10所示,那么时钟关系如下所示,GTX IP输出的TXOUTCLK通过一个MMCM生成RXUSRCLK、RXUSRCLK2、TXUSRCLK、TXUSRCLK2时钟信号,全部输入GTX IP内部,其中RXUSRCLK2和TXUSRCLK2分别输出作为用户接收、发送的时钟信号。

在这里插入图片描述

图13 时钟信号

  图10的设置好处在于TXUSRCLK2和RXUSRCLK2信号是同一个信号,那么用户的发送端和接收端使用的是同一时钟信号,不需要跨时钟处理。

  前文讲解了GTX的QPLL和CPLL等时钟信号,本文对外部时钟与发送、接收通道内部时钟的关联做简要介绍,下图是发送通道的时钟架构。

  下图是发送通道内部的串行和并行时钟分频器,部分内容可以与前文的外部时钟相互对应。

在这里插入图片描述

图14 TX串行和并行时钟分频器

  下图是前文讲解QPLL和CPLL出现的图,上下两图中1处其实都是同一个器件,上图中IBUFGDS输出信号可以通过REFCLK_CTRL控制引脚输出到BUFG、BUFH、CMT,这是什么意思?

  这就意味着GT bank的差分时钟转换为单端时钟后,可以作为其他bank的时钟信号,毕竟BUFG能够驱动FPGA内部所有时钟资源吧,不了解的可以查看前文对7系列FPGA时钟资源的讲解。但REFCLK_CTRL这个信号由软件自动生成,用户无法控制。

  上图中的3处其实与下图的4处是相同结构,均是数据选择器、CPLL,上图4是QPLL的输出时钟和参考时钟,其中QPLL的输出时钟QPLLCLK和CPLL的输出时钟通过TXSYSCLKSEL[0]的选择作为TX PMA的输入时钟。

在这里插入图片描述

图15 时钟信号

  该时钟输入TX PMA之后,需要经过 “Phase Interp”后被D分频,然后分为两路,一路直接作为并串转换模块的串行时钟,另一类继续经过两次分频作为并串转换模块并行时钟,并且输出到PCS侧作为其时钟,还输入到下半部分的数据选择器中。

  这里并串转换为什么会配置一个D分频的分频器?

  首先要明确这个时钟的频率能够影响什么?作为并串转换的串行时钟,毫无疑问直接影响的就是转换后的数据的线速率,通过控制该分频器能够在一定范围内调节该通道的线速率。

  这样就好回答具体原因了,每个GT bank有四个通道,但是却共用同一个QPLL,那如果四个通道的线速率均大于6.6Gb/S,但是线速率却不等,该如何实现?此时只能使用QPLL输出时钟,而QPLL输出时钟只有一个,此时就只能通过调节每个通道内部的D分频器,来实现不同通道不同线速率的目的。

  但是D分频器只能实现1、2、4、8分频,分频系数可以动态设置也可以静态设置。当静态设置时,必须把分频系数TXOUT_DIV设置为固定值,并且将TXPATE设置为3’b000。

  如果要实现动态线速率,需要在生成IP时勾选TXRATE信号,TXOUT_DIV和TXRATE必须在器件配置时选择相同的D分频器值,器件配置后,通过TXRATE动态更改D分频器值。

在这里插入图片描述

图16 TXRATE设置

  分频系数设置如下图所示,静态时通过TXOUT_DIV的值进行设置,动态时根据TXRATE的值进行设置,默认分频系数为1。

在这里插入图片描述

图17 TX PLL输出分频器设置

  之后还要讲解下图14中后两个分频器的作用,这两个分频的输入作为并串转换模块的串行时钟,而输出作为并串转换模块的并行时钟,分频系数毫无疑问与并行数据位宽有关。

  两个分频器能够组成的分频系数有8、10、16、20,由图5可知,PCS内部传输数据位宽只有16、20、32、40这几种,即并串转换的并行数据位宽取值为16、20、32、40。

  可以推测串行数据是在串行时钟的双沿完成转换的,在8倍频率的时钟下将16位并行数据转换为串行数据输出,其他分频系数转换道理类似。

  下图中的TXOUTCLKPCS和TXOUTCLKFABRIC用户不需要关注,没有输出到用户接口。

在这里插入图片描述

图18 TX串行和并行时钟分频器

  重点在于TXOUTCLK,时钟来源可以是TXOUTCLKPCS、TXOUTCLKPMA、QPLL或者CPLL参考时钟或参考时钟二分频,还可以选择是否对时钟来源进行延迟。

  TXOUTCLK输出到BUFG,就处于“GTPE2_CHANNEL”外部了,根据用户的数据位宽,生成对应的参考时钟信号,下图是2字节或者4字节数据位宽时,可以使用的时钟结构。

在这里插入图片描述

图19 单通道TXOUTCLK驱动txusrclk 2(2字节或4字节模式)

  用的比较多的应该是下图所示的时钟结构,TXOUTCLK输出到BUFG,然后通过MMCM生成TXUSCLK和TXUSCLK2,其中TXUSCLK2作为用户接口的时钟信号。图13就是使用的该结构生成用户时钟信号。

在这里插入图片描述

图20 单通道TXOUTCLK驱动txusrclk 2(4字节或8字节模式)

  下图是单通道的TXOUTCLK通过MMCM生成TXUSRCLK和TXUSRCLK2驱动多个通道的时钟信号,这样做的好处应该是多个通道的数据都处于同一时钟域下,便于数据同步。

在这里插入图片描述

图21 多通道TXOUTCLK驱动txusrclk 2(4字节或8字节模式)

  通过FIFO缓冲器引出了内部时钟的相关讲解,接下来回归正文,继续讲解下图中的其余资源, 将图在贴一遍,不然文章过长不好阅读。

在这里插入图片描述

图22 GTX收发器TX框图

8 .SATA OOB

  SATA是硬盘接口,建立通信主要是通过检测OOB(Out Of Band)实现的,并且向上层传输连接情况,因此只有在使用SATA协议时,才会使用该模块,否则不用考虑。

9. PCIE Beacon

  PICE唤醒功能,只有在使用PCIE协议时才会用到,否则不考虑。

10. Polarity

  极性控制,这个作用比较大,主要时针对PCB设计时将差分对设计反了,模块内部可以将极性反转,从而解决PCB设计问题。

  在生成IP时一般会勾选极性控制选项,后续如果PCB设计或者其他板卡引脚极性相反时,只需要将该信号设置为1’b1,将板卡内部的极性输出也翻转即可,如下图所示。

在这里插入图片描述

图23 极性翻转勾选

11. PISO

  并串转换模块(parallel input Serial output),在前面讲解时钟分频时已经讲解过作用了,就是在时钟双沿将PCS发送的并行数据转换为串行数据。

12及14、 TX Pre/Post Emp和TX Driver

  GTX的TX驱动器是高速电流模式差分输出缓冲器,如下图所示。为了最大限度地提高信号完整性,具有差分电压控制、光标前和光标后传输预加重、校准终端电阻功能。

在这里插入图片描述

图24 TX可配置驱动器框图

  需要明白一个道理,高速信号在长距离、线速率较高的传输时,损耗是很严重的。经过损耗衰减之后,为了让接收端还能检测到数据,在发送端会做预加重和去加重处理,增大差分输出信号的摆幅等等,让其经过传输损耗之后差分信号的幅值变为零。

  用户只需要调节两个参数的值就可以调节预加重和去加重了,在配置IP时勾选下面两个选项即可。至于参数具体应该设置为多少,要根据实际的电路进行眼图扫描,然后确定最佳参数,关于眼图在接收通道的章节进行讲解。

在这里插入图片描述

图25 预加重及去加重选项

13. TX OOB and PCIE

  使用PCIE、SATA协议时才会使用的功能,否则不会用到。

15. TX Clock Dividers

  这个就是时钟的分频模块,在前半段讲解的D分频及后续两个分频时已经详细讲解了,此处不再赘述。

  终于写完GTX发送通道的相关内容了,手册这部分内容大概有接近70页,我只用了不到13页,部分暂时不会使用的内容暂时忽略,重点在于时钟的讲解,很多模块都是针对SATA、PCIE这些协议的,忽略这些,其实也还是比较简单的。


  如果对文章内容理解有疑惑或者对代码不理解,可以在评论区或者后台留言,看到后均会回复!

  如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!您的支持是我更新的最大动力!将持续更新工程!

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu下pyinstaller打包多个.py文件

参考链接: https://blog.csdn.net/CholenMine/article/details/80964272 https://blog.csdn.net/BXD1314/article/details/125226289 前言 要把python项目打包成可执行程序运行,看了很多帖子,大多数博主都采用pyinstall 打包,但…

车间为什么选择蒸发式冷风机?

蒸发式冷风机具有以下特点: 节能环保:蒸发式冷风机不使用压缩机和化学制冷剂,而是通过水的蒸发来降低温度,因此它是无压缩机、无冷媒、无污染的环保型产品。降温效果显著:在较潮湿地区,它一般能达到5-9℃的…

苹果iPad M4:Console级别图形和AI强大功能

苹果iPad M4:Console级别图形和AI强大功能 Apple近日发布了最新的M4芯片,旨在为iPad Pro系列带来明显的性能提升和电池续航时间延长。在本篇报道中,我们将详细介绍M4芯片的特点、性能改进和为创意专业人士带来的影响。 M4芯片的强大功能 …

第二证券|1.73万亿“聪明钱”A股扫货买了什么?

跟着A股上市公司一季报披露收官,备受商场重视的险资、社保基金和QFII等各大组织持仓数据浮出水面。 Wind计算数据显现,719家A股上市公司的十大流通股股东有QFII身影,险资和社保基金分别现身754只和659只个股的前十大流通股股东,Q…

用户体验至上的Spring Boot博客系统

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

Linux/C++——线程池

什么是线程池 线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。 为什么要引入线程池 在单线程的场景中,如在服务端的服务中,要对多个客户端进行服务,单个线…

不得不聊的微服务Gateway

一、 什么是Gateway? 1.网关的由来 单体应用拆分成多个服务后,对外需要一个统一入口,解耦客户端与内部服务 2.网关的作用 Spring Cloud Gateway是Spring Cloud生态系统中的一员,它被设计用于处理所有微服务的入口流量。作为一…

志邦家居流程项目中心负责人郑瑶瑶受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 志邦家居股份有限公司流程项目中心负责人、战略及变革委员会秘书长郑瑶瑶女士受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“PMO在制造企业的标准化建设之路”。大会将于6月29-30日在北京举办,敬请关注&…

社区智能奶柜:创业新机遇

社区智能奶柜:创业新机遇 在追求高质量生活的今天,健康食品成为大众焦点。社区智能奶柜适时登台,革新了居民获取新鲜牛奶的传统模式,为创业者开辟了一片蓝海市场。 一、新兴创业蓝海:牛奶随享站 日常膳食中&#xf…

【系统架构师】-UML-用例图(Use Case)

1、概述 用于表示系统功能需求,以及应用程序与用户或者与其他应用程序之间的交互关系。 2、组成 参与者(Actors):与系统交互的用户或其他系统。用一个人形图标表示。用例(Use Cases):系统需要…

sql查询数据语句

select * from 表名 where 列名 某个数据名字 查询某个表名中的某列是否有某个数据

孩子咳嗽,积食?可以试试宋乐冬医生分享的几个缓解方法~

最近气温变化大忽冷忽热,多变的天气容易引发儿童疾病。 不少妈妈也在后台咨询,想要学习一下常用的小儿推拿,在孩子身体出现轻微不适时,能够给孩子做做小儿推拿来辅助治疗,缓解不适恢复健康。 今天我们就一起学习一下&a…

视频剪辑图文实例:一键操作,轻松实现视频批量片头片尾减时

视频剪辑是现代媒体制作中不可或缺的一环,而批量处理视频更是许多专业人士和爱好者的常见需求。在剪辑过程中,调整视频的片头片尾时长可以显著提升视频的质量和观感。本文将通过图文实例的方式,向您展示如何一键操作,轻松实现视频…

Debian——安装syzkaller——2024

系统:Debian 远程连接——我是不想安装tools没有办法复制黏贴,所以远程,根据个人情况选择是否远程连接 就是说使用Windows自带的远程mstsc,使用的不是ssh22端口,是TCP 3389端口 mkdir debian cd debian 二:安装go编译器 打开终端。使用wget命令从官方网站或可信的镜像…

关于行内(块)元素vertical-align:middle;居中对齐

有时候 会发现 对行内元素或者行内块元素设置垂直居中vertical-align:middle;与不设置,没有什么变化 这是因为vertical-align不是作用于行内(块)元素自身,它是作用于其他行内(块)元素…

醛固酮(Aldosterone)/Aldosterone ELISA kit--比色竞争法酶免疫检测试剂盒

醛固酮(Aldosterone)是一种由肾上腺皮质中的胆固醇合成的类固醇激素。醛固酮在肾脏和肝脏中代谢,并作为控制钠钾平衡的关键盐皮质激素发挥作用。肾上腺合成和释放醛固酮主要受肾素-血管紧张素-醛固酮系统(RAAS)的调节&…

图纸管理的高效策略与最佳实践

图纸管理的高效策略与最佳实践 在工程设计、产品研发和建筑行业中,图纸管理是一项至关重要的任务。随着项目规模的扩大和复杂性的增加,如何高效、有序地管理图纸已成为企业和团队关注的焦点。本文将为您介绍图纸管理的高效策略与最佳实践,帮助…

检测机构的双资质是什么?

CMA和CNAS是两种在检测、校准和认证领域具有权威性的资质。 CMA资质全称为“检验检测机构资质认定”(China Inspection Body and Laboratory Mandatory Approval)。它是根据《中华人民共和国计量法》等相关法规,由国家认证认可监督管理委员会…

面试中算法(2的整数次幂)

判断一个正整数是否是2的整数次幂(如16是2的4次方,返回true;18不是2的整数次幂,则返回false),要求性能尽可能高。 使用一个整型变量,让它从1开始不断乘以2,将每一次乘2的结果和 目标整数进行比较…

印尼本土电商平台Tokopedia和Akulaku如何高效上货?你需要EasyBoss ERP产品批量编辑功能

作为印尼本土电商平台,Tokopedia及Akulaku在印尼拥有相当大的用户群体,根据Similarweb数据显示,这两个电商平台分别占据谷歌及苹果应用下载榜的第三四名。对于有意布局印尼本土电商市场的中国卖家,Tokopedia或Akulaku都不失为一个…