FPGA|CPLD|ASIC论坛
直播中

小刘

11年用户 3959经验值
私信 关注
[经验]

FPGA开发板教程——如何在K7上使用Ibert完成基本GTX测试?

GTX、GTH等具体是什么就不多介绍了,网上有很多。写这个的目的,就是当收到FPGA板卡后,要判断本板的高速串行总线是否能够应用,那就需要做基本的功能测试。我们可以用xilinx提供的ibert进行测试,而且基本上可以达到不用敲代码就可以完成测试的目的。

下面按步骤,一步一步实现。重点的地方我会标注出来。

(1)新建工程,只需选择好与板卡对应的FPGA型号即可,无须添加任何文件。
(2)添加ibertiP。


(3)配置IP
这里我们先只配置一个quad,也就是测试一个quad,速度是1G的速度,也就是千兆网的速度。这里是8b/10b编码。因此实际1000Mbpsx10/8=1.25Gbps。参考时钟这里,你要看你的硬件上是接的多少M的时钟。也就是MGT的refclk引脚上,并注意是哪个quad。

在我的电路中,我的125MHz的差分时钟是接到了MGTREFCLK1P_115和MGTREFCLK1N_115上。

这里需要注意的是:参考时钟频率和GTX的传输速率的关系。虽然在内部是通过PLL倍频上去的,但是,基本时钟频率是要匹配才行。比如125MHz,10倍频就可以达到1.25GHz。如果55MHz参考时钟,倍到1.25GHz,就不行了。

假若是10GHz的速度,因为10GHz就是64b/66b的编码,实际速度是:10000x66/64=10.3125Gbps。这时用156.25MHz的时钟就比较合适(156.25MHzx66=10.3125GHz)。如果其他频率的,存在小数倍频,那就不行了,pll很难锁定。

因为我这里选的速度是1.25GHz,那后面的QuadPLL就不能选择,否则提示错误。1.25GHz频率低于QuadPLL的范围。因此,这里不选中QuadPLL,默认采用CPLL。


(4)这部分就是要选择你要测哪个quad以及对应的时钟。

我这里测115哪个quand,参考时钟前面已经说了是在MGTREFCLK1P_115和MGTREFCLK1N_115上,所以做如下选择:


(5)在clocksetTIng里,是设置ibert内部逻辑使用的时钟,这里可以用从其他bank引入的时钟,也可以直接用前面的quad时钟。现在为了简单,直接使用前面的115上的时钟。


至此,点击“OK”产生iberTIP。

(6)在刚才生成的iberTIP上右键,选择:OpenIPExampleDesign。又会重新打开一个Vivado,然后生成一个新的工程。在这个工程里,你可以不做任何更改。当然,你可以在顶层文件中加入一些其他逻辑,比如控制你的晶振、指示灯等。

(7)在(6)的工程里里直接生成bit文件,先后下载到FPGA板卡上。

(8)下载完后,会点击createlinks。

添加通道:

选择回环:

(9)连接建立如下,误码率比较高,复位一下就可以了:


(10)这里可以选择回环模式。如果只是在本板测试的话,就只能是near端回环了。


(11)在这里显示notlocked,是因为我们前面没有用quadpll,而用了cpll,不影响传输。


(12)还可以看眼图,在对应通道上右击,选择createscan:

直接OK,就会出现眼图,蓝色部分越大,越好。如果选择远端回环,速度越高,眼自然会开的要小:



(13)至此,基本的测试完毕。

总结:整个测试是很简单的,没有过多的可设置项。关键的就是要把时钟频率、时钟位置对应好。

(在ug476的P345开始,有MGTbank与placement的对应关系图,这个可以用来对照自己的原理图以及ip设置是否正确。)


不正确的地方,欢迎大家讨论指正。我也是才开始用这个东西。


回帖(1)

卿小小_9e6

2021-7-2 21:09:54
感谢分享,非常实用的ibert功能。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分