AR# 53561

有关 Artix-7 FPGA GTP 收发器的设计咨询:量产芯片 RX 复位顺序要求

描述

此答复记录包含针对 Artix -7 GTP 收发器量产芯片的 RX 复位顺序要求。

解决方案

在 Artix-7 GTP 量产收发器中发布 GTRXRESET、RXPMARESET 或 RXRATE 所需的顺序已在下面的文档中列出。此外,这些复位顺序也可以用在通用 ES 芯片上,但不是必要要求。

这些顺序已经由“ISE 14.4.1 Device Pack 或 ISE 14.5/Vivado 2013.1 ”工具版本中 7 系列 FPGA 收发器向导 v2.5 生成的封装程序实现。新增置顺序至 v1.4 7 系列 FPGA GTP 收发器用户指南(UG482)。 注意:需要特别关注仿真。 请查看以下部分的“其它仿真要求”。

 在这些顺序中,“user_*”代表用户输入。这个信号之前直接与 GT 原语连接。现在它将触发一个可选的复位顺序,如下所示。
“gt_*”代表到 GT 原语的连接。下面的图表指出了新复位顺序的安放位置。
“DRP wr”的功能是在地址 9'h011 执行 DRP 写入。确切的 DRP 事务处理并未显示。


1) GTRXRESET:

当用户想要执行 GTRXRESET 时,必须遵循下面的复位顺序。


 

步骤:

  1. 用户可通过断言 user_GTRXRESET 来触发一个复位请求。
  2. 设置并保持 gt_GTRXRESET 处于高电平。这会导致 gt_RXPMARESETDONE 变为低电平。
  3. 将 DRP 写使能发布到 GTPE2_CHANNEL 原语、DRP 地址 9h011,并且将位[11]设置为 1b0。
  4. 为了确保只有 DRP 地址 9h011 的位[11]被修改,最好执行一个 read-modify-write 函数。
  5. DRP 写使能完成后并且检测到 user_GTRXRESET 为低电平,那么应设置并保持 gt_GTRXRESET 为低电平。如果 DRP 写使能完成后 user_GTRXRESET 仍处于断言状态,那么应继续断言 gt_GTRXRESET 直到 user_GTRXRESET 为低电平。
  6. 等待 gt_RXPMARESETDONE 的下降沿。
  7. 将 DRP 写使能发布到 GTPE2_CHANNEL 原语、DRP 地址 9h011,重建位[11]的原始设置。DRP 写使能设定必须在 gt_RXPMARESETDONE 从低电平切换到高电平之前完成。gt_RXPMARESETDONE 会在最少 0.66 us 的时间内保持低电平。

注:

  1. 确保 gt_GTRXRESET 是寄存器的输出。
  2. 确保 RXPMARESET_TIME 设置为 5'h3。这应该是默认设定。
  3. 只有当 SIM_GTRESET_SPEEDUP 被设置为 FALSE 时,以上顺序才能得到正确仿真执行。如果 SIM_GTRESET_SPEEDUP 被设置为 TRUE,则必须忽视以上顺序。

2) RXPMARESET:

当用户想要执行 RXPMARESET 时,必须遵循以下复位顺序。


 

步骤:

  1. 用户通过断言 user_RXPMARESET 来触发 RXPMARESET 请求。
  2. 将 DRP 写使能发布到 GTPE2_CHANNEL 原语、DRPADDR 9h011,并且将位[11]设置为 1b0。
  3. 为了确保只有 DRPADDR 9h011 的位[11]被修改,最好执行一个 read-modify-write 函数。
  4. DRP 写使能完成后,设置并保持 gt_RXPMARESET 为高电平。
  5. 等待 RXPMARESETDONE 变为低电平。.
  6. 将 DRP 写使能发布到 GTPE2_CHANNEL 原语、DRPADDR 9h011,重建位[11]的原始设置。
  7. 当 DRP 写使能完成并且检测到 user_RXPMARESET 为低电平,需设置并保持 gt_RXPMARESET 为低电平。如果 DRP 写使能完成后 user_RXPMARESET 仍保持断言状态,那么应继续断言 gt_RXPMARESET 直到 user_RXPMARESET 为低电平。

注: 确保 gt_RXPMARESET 是寄存器的输出。

3) RXRATE:

当用户希望通过 RXRATE 触发 RX 速率变化时,必须遵守下面的顺序。




步骤:

  1. 用户通过改变 user_RXRATE 来触发 RX 速率变化请求。
  2. 将 DRP 写使能发布到 GTPE2_CHANNEL 原语、DRPADDR 9h011,并且将位[11]设置为 1b0.
  3. 为了确保只有 DRPADDR 9h011 的位[11]被修改,最好执行一个 read-modify-write 函数。
  4. DRP 写使能完成后,将 gt_RXRATE 设置为 user_RXRATE 的值。
  5. 等待 RXPMARESETDONE 变为低电平。
  6. 将 DRP 写使能发布到 GTPE2_CHANNEL 原语、DRPADDR 9h011,重建位[11]的原始设置。DRP 写使能设定必须在 RXPMARESETDONE 从低电平切换到高电平之前完成。RXPMARESETDONE 会在最少 0.66 us 的时间内保持低电平。


  注:
只有当 SIM_GTRESET_SPEEDUP 被设置为 FALSE 时,以上顺序才能得到正确仿真执行。如果 SIM_GTRESET_SPEEDUP 被设置为 TRUE,则必须忽视以上顺序。 请查看下列“其它仿真要求”。

GTP 属性:

除了以上要求的顺序,还必须正确设置以下属性。

PMA_RSV2 = 32h'00002040.

其它仿真要求

虽然这些序列是为了实现适当硬件工作而在 7 系列 FPGA 收发器向导生成的封装程序中实现的,但用户可以在 RXOUTCLK、RXUSRCLK 及 RXUSRCLK2 以错误时钟速率运行的仿真中看到。 

例如,时钟速率为被分为 16 个分率的 GT 速率,而不是 20 的正确分率(可实现支持 8b10b 解码器的配置以及 20 的内部数据位宽)。

要在仿真中解决/避免这种行为并生成正确的时钟速率,请完成以下步骤:

  1. 将 core_name_gtxreset_seq.v/.vhd 中的 DRP 地址 (drpaddr_o) 设置为 2C。 在默认情况下,该 DRP 地址设为 11,这是硬件的适当设置。
    2C 设置可用作仿真的解决方案。
    对于 Verilog,请查看 core_name_gtrxreset_seq.v 中的 251 行和 324 行。
    对于 VHDL,请查看 core_name_gtxreset_seq.vhd 中的 244 行。
    注意:这只需针对仿真定义,无需针对硬件运行定义。例如,在 Verilog 中,请定义 `ifdef SIMULATION 中的 2C 地址。

  2. 确保 EXAMPLE_SIM_GTRESET_SPEEDUP 参数通过 rtl 层级拖拽至 gt_channel 层面。GT 向导实例设计中需要该步骤。
  3. 请确保 EXAMPLE_SIMULATION 参数设置为 1。

变更这些后,在复位大约 20us 内,仿真中就会看到正确的时钟速率。

修订历史:

02/14/2017增加了其它仿真要求
04/12/2013更新了支持复位序列的用户指南版本
01/31/2013初始版本

链接问答记录

主要问答记录

相关答复记录

AR# 53561
日期 02/17/2017
状态 Active
Type 设计咨询
器件