GTM中如何设置两个channel使用不同的LCPLL

作者:Ivy Guo,AMD工程师;来源:AMD开发者社区

Versal的一个GTM Quad包含4路channel和两个LCPLL。两个LCPLL的设计,可以在同一个Quad里面实现更灵活的配置,比如两路channel的数据速率不同,且两路数据的VCO frequency不一样的应用,此时是无法用同一个LCPLL来实现的。

本文中的办法就是展示如何在设计里面实现此种配置的自动化。

Step 1:

打开Vivado,基于使用的器件新建一个工程。

Step 2:

新建一个BD设计: Create Block Design。因为两路channel需要不同的LCPLL控制,我们需要添加个gt_bridge IP和一个gt_quad_base IP。

一般情况下,两个gt_bridge是使用不同协议的,分别配置好即可。示例如下:

示例1.png

示例2.png

Step 3:

运行Run Block Automation。选择Auto方式先看看结果:

示例3.png

示例4.png

仔细查看Block Design,可以看到被选择的两路channel是ch0和ch2。这是因为ch0和ch1默认是使用同一个LCPLL的,而ch2和ch3则使用另外一个LCPLL。上述的两个协议没有共同的VCO frequency,所以自动会被绑定到ch0和ch2上面。

可以尝试绑定到ch0和ch1上看看,会报错:

示例5.png

示例6.png

示例7.png

Step 4:

有时候即使用同一个LCPLL可以实现多路数据协议的不同速率要求,为了彻底‘隔绝’ channel间的互相干扰,我们可能也想使用不同的LCPLL去提供时钟。手动修改连线是可以实现的,但是注意,GTM不建议任何的手动操作,因为理论上有可能出现底层配置没有对应修改好,导致功能异常的情况。这里我们就需要通过设置Run Block Automation时使用Customized_Connections来做自动连接了。

为了更好演示这种情况。我们把两个gt_bridge配置成一样的协议来看看:

示例8.png

此时如果选择Auto方式的Run Block Automation,连线会自动选择ch0和ch1,此时实际使用了同一个LCPLL:

示例9.png

所以我们如下操作:

示例10.png

示例11.png

重新连线。ch0和ch2被选择,此时GTM实际使用了两个LCPLL,完成了期望的配置方式。

示例12.png

综上,通过Run Block Automation时灵活选择各种Interface Options的设置,我们可以自动化实现各种配置的连线,大大节省建立工程的时间,并能保证正确性。

最新文章

最新文章