当重新配置收发器通道以在收发器模块中的CMU PLL与Stratix IV GX器件中收发器模块外部的附加CMU PLL或ATX PLL之间切换时,为什么收发器模块会产生错误的tx_clkout频率?-Altera-Intel社区-FPGA CPLD-ChipDebug

当重新配置收发器通道以在收发器模块中的CMU PLL与Stratix IV GX器件中收发器模块外部的附加CMU PLL或ATX PLL之间切换时,为什么收发器模块会产生错误的tx_clkout频率?

Altera公司使用多PLL动态重配置功能时,识别在功能仿真和硬件的问题了Stratix®IV器件。 这种多PLL功能使您能够重新配置收发器通道,以收听位于收发器模块外部的其他发送器PLL。

在功能仿真中使用此功能时,您可能会发现,当您从收发器模块内的发送器PLL切换到收发器模块外部的发送器PLL(CMU / ATX)时, tx_clkout频率不正确。在硬件上,如预期的Quartus®II软件不合并多个实例之间传输的PLL。

以下示例进一步说明了此问题: 考虑具有以下要求的设计

  • 一个通道(如图所示)以OTU1数据速率(2.666 Gbps)运行
  • 一个通道(图中B所示)能够在OTU1,光纤通道4G(4.25G)和SONET OC48(2.488 Gbps)之间切换
  • 假设上述两个通道需要放置在两个不同的收发器模块中。

要实现此设计,必须实例化如下所示的两个ALTGX实例,并使用多重PLL重配置功能(选项 – 在ALTGX Megawizard 的重配置设置屏幕中使用“额外的CMU / ATX PLL …”)

  • ALTGX实例1:具有通道A,主PLL作为PLL 2 ,以2666 Mbps运行。
  • ALTGX实例2:具有通道B,主PLL作为PLL 0 (0是PLL的逻辑参考索引),以4250 Mbps运行,附加PLL作为PLL 1运行在2488.32 Mbps,PLL 2以2666 Mbps运行

在两个ALTGX实例中,保持相同数量的输入参考时钟。这需要在两个实例之间共享PLL2,如下面的步骤3所述。

对于此设计配置,只需要三个PLL即可实现此目的,如图1所示:

图1.多PLL重配置示例设计方案

图1
查看完整尺寸

功能仿真中的问题:

在功能仿真中,当您使用“使用TX PLL选择的通道重配置”模式从PLL 0切换到PLL 2时,您会发现tx_clkout频率不正确。以下是解决方法

如果CMU PLL是’外部收发器模块PLL’:

– 在“外部收发器模块PLL”(PLL 2 )和THEN上执行TX PLL重配置

– 在所需通道(通道B)上执行“通道和TX PLL选择”,切换到“外部收发器模块PLL”

如果ATX PLL是’外部收发器模块PLL’:

– ATX PLL不支持重新配置。

– 因此,将ATX PLL(PLL 2 )作为主PLL(通道监听的默认PLL)然后

– 切换到收发器模块内的CMU PLL(PLL 0 )并返回。

硬件问题

QII软件不会在两个不正确的实例之间合并PLL 2

Ťø合并PLL 2两者ALTGX实例在一个物理发送器PLL的位置, 执行以下步骤

1)在赋值编辑器中创建GXB TX PLL重配置组设置,并为两个实例的tx_dataout分配相同的值(例如:0或1,2等)

2)手动分配TX PLL的位置,为其收发器模块外的通道提供时钟。在这个例子中它是PLL2。以下步骤显示了手动位置分配方法。

  • 编译报告中的Fitter选项的Resource Section中选择GXB Transmitter PLL 您可以看到设计中使用的所有PLL的发送器PLL节点信息。
  • 对于PLL 2 ,您可以看到同一节点的两个位置分配(例如:tx_pll_edge0)
  • 使用tx_pll_edge0的两个位置之一并在赋值编辑器中手动分配它,如图2所示

图2.发送器PLL的手动分配

图1
查看完整尺寸

有关与x,y坐标关联的PLL的物理位置的信息,请参阅http://www/literature/an/an578.pdf

3)通过修改包装器文件,使ALTGX实例中的‘txplledge <x> .inclk <>’参数相同。

对于此示例方案,Instance 2包装器文件将显示以下参数

  tx_pll_edge0.inclk0_input_period = 9412,

tx_pll_edge0.inclk1_input_period = 6430,

tx_pll_edge0.inclk2_input_period = 6002,

Instance 1包装器文件将显示以下参数

tx_pll_edge0.inclk0_input_period = 0,

tx_pll_edge0.inclk1_input_period = 0,

tx_pll_edge0.inclk2_input_period = 6002,

当输入参考时钟参数( INCLK INPUT PERIOD )不匹配时,QII软件无法合并两个实例的PLL 2

因此,请指定tx_pll_edge <>。来自instance2的具有最大PLL数的参数,并将其包含在instance1的包装器中。以下是instance1中所需的更改

tx_pll_edge0.inclk0_input_period = 9412

tx_pll_edge0.inclk1_input_period = 6430,

tx_pll_edge0.inclk2_input_period = 6002,

3)编译设计并从编译报告中 Fitter选项的资源部分观察GXB发送器PLL

您现在可以看到来自两个实例的发送器PLL已合并到一个物理位置(例如:HSSIPLL_X119_Y10_N135)

请登录后发表评论

    没有回复内容