前言
在调试MGT Bank的时候总会出现这样那样的问题,我们有时候会用到这个工具IBERT,那IBERT究竟是什么呢?
IBERT简介
IBERT(Integrated Bit Error Ratio Tester),集成误码率测试仪,它可以利用FPGA内部资源,评估检测FPGA中GTX的通断和通信性能。一般的误码率可以算到十的负十二次方级别。
这里暂时不介绍IBERT具体的生成过程,因为只是对IP核进行配置即可,下面大概描述下这个过程:
IBERT IP核生成及使用简介
在Vivado中IP catalog中搜索IBERT,如下:
开始定制IP核。
-
第一页:
-
第二页
-
第三页
注意第三页的系统时钟,有两种选择,可以选择外部时钟源,我这里选择的就是外部时钟源,由外部晶振直接提供,还可以选择第二项,使用GTX差分时钟: -
定制完毕之后,打开Xilinx提供的例子程序:
之后我们的操作就在例子程序中进行,我们需要给MGT Bank提供时钟,GTX差分时钟,这个时钟也许需要我们在FPGA中配置时钟芯片等。我们的程序就在例子程序的顶层添加吧。 -
生成bitstream
-
上板子下载程序
之后是如下界面:
我们通过观察需要观察的GTX 通道的Status即可,还可以观察误码率:
FAR-End以及Near-End PCS/PMA
还有一个地方比较关键,有多个选择:
回环模式,可以选择的有:
正确选择了,如果你的MGT Bank没问题,状态就正常了:
这几种选择是什么意思呢?
- Near-End PCS
- Near-End PMA
- Far-End PMA
- Far-End PCS
其实我也没有必要多废话,就看数据手册里面讲的很清楚:
UG811有,UG476也有。
所谓的Near-End,以及Far-end代表的就是自己的FPGA的MGT和另外的FPGA的MGT。
而PCS以及PMA是MGT的物理层结构。
在博客:高速串行总线系列(3)GTX/GTH 物理层结构分析
以及UG476中都有讲。
我们的TX用户接口的并行数据是先到PCS之后再到PMA的,而RX的接收到的串行数据先到PMA在到PCS。
中间存在串并转换,不在细讲。
由此可见,要做内部自回环以及外部自回环,都可以通过IBERT来实现。
当然还有一个选择None,也是外回环。
回环的过程是:
Traffic Generator产生数据通过TX发送出去,之后经过一系列路径,在由RX接收最终到达Traffic Checker,经过将发送的数据与接收数据对比,可以得到各种报告,包括眼图等。