文章 ID: 000074652 内容类型: 产品信息和文件 上次审核日期: 2021 年 08 月 28 日

如何设置输入时钟相移,以在ALTLVDS_RX超级功能中捕获数据?

环境

BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

ALTLVDS_RX宏功能提供有限的下拉列表选择,用于在非 DPA 模式下设置时钟和数据关系。 参数 是"rx_in"与"rx_inclock"的相位对齐。通过设置该参数,ALTLVDS_RX兆功能计算串行数据的正确捕获阶段。

相移值基于rx_inclock周期,因您的接口而异。 以下是常见的rx_inclock用法场景:

  • 每字节(单数据速率时钟)所有串行位的一rx_inclock周期
  • 每字节均为两rx_inclock位(双数据速率时钟)
  • 每个字段的所有串行位(完整数据速率时钟)的 rx_inclock 周期数相同

megafunction 中的可用相移选择将捕获时钟设置为串行数据的不同位置。这是基于每字序列位(解串化因素)rx_inclock周期数。 您在单个数据位周期内指定相移的能力取决于每个串行字接收到的rx_inclock周期的发生量。

例如,考虑一个包含以下参数的接口:

  • 数据速率 = 800 Mbps
  • 解层化因素 = 8
  • rx_inclock = 100 MHz

在这种情况下,收到的所有 8 个串行比特有一个rx_inclock期。 因此,您选择的每个设置在ALTLVDS_RX宏功能(0、45、90 度等)中为 45 度增量设置,在串行词中将捕获相设置为不同的位位置。 此设置不会在比特周期内更改相捕获位置。 每一项选择都会在接口的并行侧产生不同的词对齐。

考虑一个包含以下参数的第二个示例:

  • 数据速率 = 800 Mbps
  • 解层化因素 = 8
  • rx_inclock = 800 MHz

在这种情况下,每个串行位周期有一个rx_inclock期。 您选择的每个设置将在一个比特周期内更改捕获阶段。

在某些情况下,您可能会希望将捕获阶段设置为无法使用的ALTLVDS_RX megafunction 下拉列表选择,即 "rx_in"的相位对齐是否与"rx_inclock" 参数一致。

解决方法

捕获相位的总可能数量取决于接口的解层系数。 对于每个串行位周期,快速时钟可提供 8 相。 快速时钟以串行比特率运行。

可捕获相的总数等于 8 * 解算因数。

在上述示例中,解串化系数为 8,因此总共有 64 个可用的相位,可以在所有 8 位串行字下设置捕获时钟。您可以选择在单位位置、不同位位置中设置捕获阶段,或者通过修改 ALTLVDS_RX 变体文件,将两者的组合设置为捕获阶段。

法律相值必须为增量,相当于快速时钟周期除以 8。每个 8 相移增量等于一个比特周期。 使用上述示例 1 的参数,如果您想要指定rx_inclock的新兴边缘要在 8 位字的第三个串行位上保持一致,则您需要总计 20 相移增量(前两个比特周期中的每个相增量,以及第三位期间中中心对齐的新兴边缘的 4 相增量)。

此示例中的快速时钟运行速度为 800 MHz,与数据速率相同。 快速时钟周期为 1.25 ns,从而实现每相移增量 156.25 ps。 本例描述输入时钟和数据关系所需的总相移为 20 * 156.25 ps = 3.125 ns。

计算了所需的相移值后,将其输入ALTLVDS_RX变体文件中。 打开文件并找到以下参数:

对于 Verilog:ALTLVDS_RX_component.inclock_phase_shift

VHDL:inclock_phase_shift

输入您计算的值,这些单位为微微秒。

注意:串行数据中最重要的一点 (MSB) 可能不是ALTLVDS_RX兆功能rx_out端口上解串并行数据的 MSB。 您需要使用 bitslip 电路在并行侧设置字边界。

如欲了解更多信息,请参阅 LVDS SERDES 发射器/接收器(ALTLVDS_TX与ALTLVDS_RX)超级功能用户指南 (PDF) 的 Word Boundaries(字边界)一节。

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。