AMD Versal™ 自适应 SoC 的一个 GTM Quad 包含四路 Channel 和两个 LCPLL。两个 LCPLL 的设计,可以在同一个 Quad 里面实现更灵活的配置,比如两路 Channel 的数据速率不同,且两路数据的 VCO Frequency 不一样的应用,此时无法用同一个 LCPLL 来实现。本文展示了如何在设计里面实现此种配置的自动化。
Step 1:
打开 AMD Vivado™ Design Tool,基于使用的器件新建一个工程。
Step 2:
新建一个 BD 设计: Create Block Design。因为两路 Channel 需要不同的 LCPLL 控制,我们需要添加个 gt_bridge IP 和一个 gt_quad_base IP。
一般情况下,两个 gt_bridge 使用了不同协议,分别配置好即可。示例如下:
Step 3:
运行 Run Block Automation,选择 Auto 方式先看看结果:
仔细查看 Block Design,可以看到被选择的两路 Channel 是 ch0 和 ch2。这是因为 ch0 和 ch1 默认使用同一个 LCPLL,而 ch2 和 ch3 则使用另外一个 LCPLL。上述的两个协议没有共同的 VCO frequency,所以自动会被绑定到 ch0 和 ch2 上面。
可以尝试绑定到 ch0 和 ch1 上看看,会报错:
Step 4:
有时候即使用同一个 LCPLL 可以实现多路数据协议的不同速率要求,为了彻底"隔绝" Channel 间的互相干扰,我们可能也想使用不同的 LCPLL 去提供时钟。手动修改连线可以实现,但是注意,GTM 不建议任何的手动操作,因为理论上有可能出现底层配置没有对应修改好,导致功能异常的情况。这里我们就需要通过设置 Run Block Automation 时使用 Customized_Connections 来做自动连接。
为了更好演示这种情况。我们把两个 gt_bridge 配置成一样的协议来看看:
此时如果选择 Auto 方式的 Run Block Automation,连线会自动选择 ch0 和 ch1,此时实际使用了同一个 LCPLL:
所以我们如下操作:
重新连线。ch0 和 ch2 被选择,此时 GTM 实际使用了两个 LCPLL,完成了期望的配置方式。
综上,通过 Run Block Automation 时灵活选择各种 Interface Options 的设置,我们可以自动化实现各种配置的连线,大大节省建立工程的时间,并能保证正确性。
AMD 自适应 SOC 及 FPGA 中文技术支持社区