GT Transceiver的复位与初始化(3)TX初始化和复位流程

举报
李锐博恩 发表于 2021/10/27 22:02:23 2021/10/27
【摘要】 TX初始化与复位过程 GTX/GTH收发器TX使用一个复位状态机来控制复位过程。GTX/GTH收发器TX被划分为两个复位区域,TX PMA和TX PCS。该分区允许TX初始化和复位只在顺序模式下操作,如...

TX初始化与复位过程

GTX/GTH收发器TX使用一个复位状态机来控制复位过程。GTX/GTH收发器TX被划分为两个复位区域,TX PMA和TX PCS。该分区允许TX初始化和复位只在顺序模式下操作,如下图所示:

TX复位状态机

初始化TX必须在顺序模式下使用GTTXRESET。激活GTTXRESET输入可以自动触发一个完整的异步TX复位。复位状态机执行复位顺序,其覆盖整个TX PMA和TX PCS。

在正常工作期间,当需要时,顺序模式允许用户从激活TXPMARESET开始复位TX,并继续执行复位状态机,直到TXRESETDONE从低电平转换为高电平。

TX复位状态机在检测到TXUSERRDY为高电平时才会复位PCS。用户应在满足如下这些条件后将TXUSERRDY驱动为高电平。

  1. 当使用PLL或MMCM时,应用程序使用的所有时钟,包括TXUSRCLK/TXUSRCLK2都显示为稳定或锁定。

  2. 用户接口准备好向GTX/GTH收发器传输数据。

看完这段描述想说的是:TXUSERRDY 是TX的一个输入端口,当TXUSRCLK和TXUSRCLK2稳定时,该端口由用户的应用驱动为高电平。例如,如果一个MMCM被用来产生TXUSRCLK和TXUSRCLK2,那么这里可以使用MMCM锁定信号。

这里说的MMCM是文章《GT Transceiver中的重要时钟及其关系(7)TXUSRCLK以及TXUSRCLK2的产生》中提到的:

单lane下TXOUTCLK驱动TXUSERCLK2
或:

多lane下TXOUTCLK驱动TXUSERCLK2

中驱动TXUSERCLK的MMCM,时钟稳定后LOCKED会拉高,其可作为TXUSERRDY 。

GTX/GTH收发器在完成配置后的复位

FPGA配置完成后,需要满足下面的条件才能开始顺序复位状态机:

  1. GTRESETSEL必须拉低以启用顺序模式(见文章:《GT Transceiver的复位与初始化(1)Transceiver复位的两种类型和两种模式》

复位模式选择端口

  1. 必须使用GTTXRESET。

  2. 在整个复位过程中,TXPMARESET和TXPCSRESET必须在TXRESETDONE被检测到高电平之前被持续驱动为低电平。

  3. GTTXRESET不能被驱动为低电平,直到相关的PLL被锁定。

如果复位模式在配置时被默认为顺序模式,那么C/QPLLRESET和GTTXRESET可以在配置完成后等待至少500 ns后有效。

如果复位模式默认为单一模式,那么用户必须:

  1. 配置完成后至少要等待500 ns。

  2. 将复位模式改为顺序模式。

  3. 再等待300-500 ns。

  4. 使能C/QPLLRESET和GTTXRESET。

注意:这里为什么会提到C/QPLLRESET呢?这是因为CPLL或QPLL需要先进行复位:

文章:《GT Transceiver的复位与初始化(1)Transceiver复位的两种类型和两种模式》开头就已提到:
GT 复位流程

可见,FPGA配置完成后,需要先进行相关PLL复位,之后进行TX复位。

C/QPLLRESET和GTTXRESET也有一个先后顺序,C/QPLLRESET在先,GTTXRESET在后。

TX复位的时序如下:

TX初始化

建议使用CPLLL或QPLL的相关PLLLOCK将GTTXRESET从高电平释放到低电平,如上图所示。TX复位状态机在检测到GTTXRESET为高电平时等待,直到GTTXRESET被释放为低电平, 启动复位序列。

响应GTTXRESET脉冲的GTX/GTH收发器TX复位

GTX/GTH收发器允许用户在任何时候通过发送GTXRESET的高电平有效脉冲来完全复位整个TX。
TXPMARESET_TIME和TXPCSRESET_TIME可以静态设置或通过DRP端口重新编程,以调整应用GTTXRESET前所需的复位时间。

使用GTTXRESET时必须满足这些条件:

  1. GTRESETSEL必须被驱动为低电平以使用顺序模式。

  2. 在整个复位过程中,TXPMARESET和TXPCSRESET必须在TXRESETDONE被检测到高电平之前被持续驱动为低电平。

  3. 相关的PLL必须指示锁定。

  4. 该异步GTTXRESET脉冲宽度的指导原则是参考时钟的一个周期。

GTTXRESET脉冲后的GT复位

TX 组件复位

TX PMA和TX PCS可以单独复位。在TXPMARESET或TXPCSRESET过程中,GTTXRESET必须保持为低电平才能完成。

将TXPMARESET从高电平驱动到低电平开始PMA复位过程。

在TXPMARESET过程中,TXPCSRESET必须被持续驱动为低电平。

在顺序模式下,如果TXUSERRDY为高电平,复位状态机在完成PMA复位后自动启动PCS复位。

顺序模式下的TXPMARESET

当TXUSERRDY为高电平时,将TXPCSRESET从高电平驱动到低电平开始PCS复位过程。

当PCS处于复位过程时,TXPMARESET必须被持续驱动为低电平。

在 顺序模式下,复位状态机只对PCS进行复位。

顺序模式下的TXPCSRESET

TX复位总结

下表总结了GTX/GTH收发器TX可用的所有复位以及在顺序模式下受其影响的组件。

在顺序模式下使用TXPMARESET可以重置GTTXRESET所涵盖的一切,除了TX复位状态机。

TX初始化复位和组件复位的覆盖范围

在不同场景下推荐使用的复位方式:

推荐复位方式
续

可见:

  1. 在上电配置完成后,需要对整个TX进行复位。
  2. 如果参考时钟改变或GTX/GTH收发器在配置后上电,GTTXRESET应在PLL完全完成其复位程序后有效。
  3. 每当PLL的参考时钟输入被改变时,PLL必须在之后复位,以确保它锁定在新的频率上。GTTXRESET应该在PLL完全完成其复位程序后有效
  4. 当正在使用的CPLL或QPLL在断电后回到正常工作状态时,必须对PLL进行复位。GTTXRESET应该在PLL完全完成其复位程序后有效。
  5. 在TXPD信号失电后,GTTXRESET必须有效。
  6. 当TX速率改变时,所需的复位序列会自动执行。当TXRATEDONE有效时,它表明速率变化和必要的复位序列都已应用并完成。如果TX buffer被启用,TXBUF_RESET_ON_RATE_CHANGE属性应被设置为TRUE,以允许TX缓冲器在速率改变后自动复位。如果使用TX buffer旁路模式,在TXRATEDONE有效后必须重复对齐。
  7. 驱动TXUSRCLK和TXUSRCLK2的时钟必须是稳定的,以便正确操作。这些时钟通常由FPGA中的MMCM驱动,以满足相位和频率要求。如果MMCM失去锁定并开始产生不正确的输出,应在时钟源重新锁定后有效TXPCSRESET。如果使用TX缓冲器旁路模式,在完成复位程序后必须重复对齐。

注意:上面提到的所有的有效,指的是触发条件有效,例如GTTXRESET有效,指的是一个高脉冲,触发TX复位。

往期回顾

GT Transceiver的复位与初始化(2)CPLL复位以及QPLL复位

GT Transceiver的复位与初始化(1)Transceiver复位的两种类型和两种模式

GT Transceiver中的重要时钟及其关系(10)RXOUTCLK的来源及其生成

GT Transceiver中的重要时钟及其关系(9)RXUSERCLK和RXUSER_CLK2的生成

GT Transceiver中的重要时钟及其关系(8)TXOUTCLK的来源及其产生

GT Transceiver中的重要时钟及其关系(7)TXUSRCLK以及TXUSRCLK2的产生

FPGA 核和FPGA Fabric的区别是什么?

GT Transceiver中的重要时钟及其关系(6)TXUSRCLK以及TXUSRCLK2的用途与关系

GT Transceiver中的重要时钟及其关系(5)QPLL的工作原理介绍

GT Transceiver中的重要时钟及其关系(4)CPLL的工作原理介绍

GT Transceiver中的重要时钟及其关系(3)多个外部参考时钟使用模型

GT Transceiver中的重要时钟及其关系(2)单个外部参考时钟使用模型

GT Transceiver中的重要时钟及其关系(1)GT Transceiver参考时钟

FPGA的设计艺术(11)FPGA的构建过程

FPGA的设计艺术(8)最佳的FPGA开发实践之严格遵循过程

GT Transceiver的总体架构梳理

Vivado中用于时钟操作的几个Tcl命令

高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求

高速串行总线设计基础(八)揭秘SERDES高速面纱之CML电平标准与预加重技术

FPGA基础知识极简教程(1)从布尔代数到触发器

FPGA基础知识极简教程(7)详解亚稳态与跨时钟域传输

静态时序分析中的四类时序路径

时序分析中的关键术语

高速串行总线设计基础(一)同步时序模型介绍

高速串行总线设计基础(四)眼图的形成原理

FPGA设计心得(10)关于行为仿真的一点观点

Vivado如何计算关键路径的保持时间裕量?

Vivado如何计算关键路径的建立时间裕量?(实践篇)

Vivado如何计算关键路径的建立时间裕量?(理论分析篇)

TCL中Ports/Pins/Nets/Cells/Clocks之间的交互关系?

TCL中关于Nets的一些用法?

TCL中关于Cells的一些使用方法?

TCL中关于Pins的一些使用方法?

TCL中关于管脚(Ports)的一些使用方法?

逻辑设计中复位的稳妥处理方法?

逻辑设计中需要显式地使用IBUF以及OBUF类似的原语吗?

FPGA的设计艺术(1)FPGA的硬件架构

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/120982787

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。