IBERT眼图扫描(高速收发器八)

39 篇文章 3 订阅
22 篇文章 3 订阅

  点击进入高速收发器系列文章导航界面


  前文讲解了GTX的时钟及收发数据通道的组成,之后讲解了眼图、加重、均衡等原理及原因,本文通过xilinx提供的IBERT IP完成实际工程的眼图扫描,确定加重和幅值调节的参数。

1、回环模式

  在此之前,需要了解一下GTX的回环模式。如果板卡有两个光口,可以通过光纤把两个光口连接进行测试,如果只有一个光口,通过GTX的回环模式也可以完成测试。

  回环模式的链路如下图所示,左侧是FPGA的一个GTX通道,右侧可以是其余板卡的一个高速收发器通道,中间使用光纤连接。

在这里插入图片描述

图1 回环路径

  信号可以通过4条路径回环,路径1是经过FPGA内部PCS之后直接回环到接收端的PCS。路径2是经过FPGA发送端的PCS和PMA之后,直接环回到接收端的PMA。

  路径3是经过其他板卡的高速收发器通道接收端的PMA后环回到发送端的PMA,然后输出给FPGA的接收通道。

  路径4的原理与路径3类似,只不过经过了PCS转换。下图是GTX中对应的三条回环路径,红色路径对应上图路径2,蓝色路径对应上图路径3,紫色路径对应上图路径4,路径1在下图中没有体现。

  其中路径1和路径2在自身的GTX中完成回环,被称为近端回环。而路径3和路径4在另一个GTX中回环,回环的节点相对于发送端的距离较远,被称为远端回环。

在这里插入图片描述

图2 GTX中回环路径

  在GTX IP或者IBERT IP中,都可以通过信号的取值来更改回环模式,在GTX IP中勾选LOOPBACK,在生成IP后,会提供给用户一个gt0_loopback_in信号,用户修改回环模式。

在这里插入图片描述

图3 回环模式设置

  进入和退出近端PMA回环后需要复位GTX的接收通道。要使近端PCS回送正常工作,必须使能接收通道的弹性buffer并选择接收通道恢复时钟作为XCLK的时钟源(RX_XCLK_SEL设置为RXREC)。

  在近端PCS回送中,RX XCLK域由TX PMA并行时钟(TX XCLK)提供时钟。

  回环模式的设置如下表示所示,在光口的测试中,没有光纤时使用较多的是近端PMA回环,有光纤时,可以使用远端PCS进行测试。

表1 回环模式
LOOPBACK取值回环模式
3’b000正常工作模式
3’b001近端PCS回环
3’b010近端PMA回环
3’b100远端PMA回环
3’b110远端PCS回环
其余取值保留

2、IBERT IP配置

  GTX IP自身也支持眼图测试功能,但是在实际使用时,更多会通过IBERT IP来测试信道的眼图。眼图测试的数据也是通过GTX内部的PRBS发生器生成,在接收端通过PRBS检查器接收数据。

  关于IBERT IP生成如下图所示,在vivado的IP catalog中搜索ibert即可。

在这里插入图片描述

图4 生成IBERT IP

  对IBERT IP的Protocol Definition进行配置,本文对万兆网口进行测试,因此协议可以直接选择”tenGBASE-R”,然后线速率固定为10.3125Gbps。

在这里插入图片描述

图5 Protocol Definition参数配置

  上图中3处是设置GT参考时钟的频率,根据开发板提供给GT bank的时钟频率进行设置,我板卡的GT参考时钟是使用一个可编程晶振实现的,原理图如下所示。

在这里插入图片描述

图6 可编程晶振

  可编程时钟信号通过左侧的SW6拨码开关调节输出差分时钟的频率,开发板默认使用的是156.25MHz时钟,因此图5的参考时钟选择156.25MHz。

在这里插入图片描述

图7 可编程芯片的调节

  因为线速率大于6.5Gbps,必须使用QPLL,因此图5中的4处勾选QPLL。

  然后设置的Protocol Selection界面参数,如下图所示,Protocol Selected选择前面设置的tenGBASE-R/10.3125Gbps。

在这里插入图片描述

图8 Protocol Selection参数配置

  参考时钟的来源需要根据开发板上的差分时钟输入位置确定,我使用开发板上述可编程晶振接在REFCLK0引脚上,因此选择CLK0时钟引脚。

  3是选择发送端用户时钟源,选择需要测试的通道即可。

在这里插入图片描述

图9 GT bank原理图

  之后配置Clock Settings界面,这是用于配置IP的系统时钟信号,该时钟信号可以来源于任何bank,为了方便,可以直接使用GTX的时钟通过BUFG输出作为IP的系统时钟。

  如下图所示,系统时钟来源直接选择QUAD112 0,表示将高速收发器时钟作为IP系统时钟,2、3、4处就不需要用户配置时钟输入引脚和时钟频率了。

  如果时钟其余时钟,需要配置时钟管脚以及时钟频率。

在这里插入图片描述

图10 Clock Settings参数配置

  最后IP的参数汇总如下图所示,点击OK生成IP。

在这里插入图片描述

图11 参数汇总

  生成IP之后,在Hierarchy中选中生成的IP,然后鼠标右键点击Open Example Design…,打开示例工程,用户可以直接使用示例工程完成眼图测试。

  注意如果发现Open Example Design…是灰色的,可能是因为vivado还在生成IP,右上角的圆圈还在旋转,等待IP生成之后再进行操作即可。

在这里插入图片描述

图12 生成示例工程

  选择示例工程存放路径,如下图所示。

在这里插入图片描述

图13 选择示例工程存放路径

  下图是光纤的原理图,需要注意该模块有一个失能引脚SFPB_TX_DIS,该引脚为高电平时,光纤模块无法工作,又由于该引脚通过4.7K电阻上拉到VCC,默认为高电平。因此在使用时,需要给该引脚提供低电平,才能正常工作。

在这里插入图片描述

图14 光纤转换模块

  打开示例工程的顶层文件,添加一个2位的失能信号,输出低电平,分别接到两个光模块的失能引脚。

在这里插入图片描述

图15 添加失能信号

  之后综合示例工程,然后分配顶层模块信号的各个管脚,如下图所示,默认会使用一个bank的所有高速收发器,实际测试时,只有正常工作的才会显示眼图。

在这里插入图片描述

图16 引脚配置

  引脚信息保存后,直接生成bit流文件。

3、眼图扫描

  当bit流生成完成后,通过光纤连接两个光纤,如下图所示。

在这里插入图片描述

图17 开发板光纤短接

  将生成的bit流下载到FPGA中,然后再Hardware下可以查看QPLL的状态,如下图所示,1处显示QPLL已经锁定,如果显示没有锁定,请检查输入GT的参考时钟的频率与IP设置的频率是否一致,另外差分参考时钟信号的引脚是否分配正确。

  2处显示两个高速收发器通道正在运行,而另外两个通道没有连接,这是因为板卡上另外两个通道用于PCIE,本次并没有使用这两个通道。

在这里插入图片描述

图18 查看通道状态

  在Serial I/O Links选项卡下面可以查看正常收发数据各个通道的状态,如果想要查看其余通道,也可以点击+号添加没有连接的通道状态。

  在1处可以查看两个通道的误码率,2处可以复位IP。

在这里插入图片描述

图19 查看连接通道状态

  后续的参数和状态设置如下所示,1处可以设置发送通道和接收通道的伪随机序列。2处可以设置加重、幅值门限、DFE使能。3处可以复位发送、接收的通道,4处显示各个通道锁相环的状态,5处可以设置回环模式。

在这里插入图片描述

图20 通道参数设置

  选中需要查看眼图的通道,然后鼠标右击,选择Create Scan…,如下图所示。

在这里插入图片描述

图21 创建眼图

  之后会弹出如下界面,可以对一些参数进行修改,一般保持默认即可。

在这里插入图片描述

图22 眼图参数设置

  扫描得到的眼图如下所示,眼睛张开的区域占33.33%,K7芯片线速率10.3125Gbps,能够达到这个效果也可以了。

在这里插入图片描述

图23 眼图扫描结果

  综上所述,查看了一组加重、均衡参数对应的眼图结果,如果要得到眼图张开最大,误码率最低的参数该如何做呢,可以手动修改参数,然后复位,重复获取每组数据的眼图,软件还给用户提供了眼图扫描功能,如下所示。

  选中需要扫描的通道,然后鼠标右键,点击Create Sweep…,如下图所示。

在这里插入图片描述

图23 眼图扫描

  会弹出如下选项框,勾选每次扫描之后复位接收端,其余设置保持不变,如下图所示。

在这里插入图片描述

图24 参数设置

  由于参数比较多,扫描的时间会比较久,在Serial I/O Scans选项卡中可以看到一些扫描完成的参数。

  下图中每一项代表一组参数对应的眼图扫描结果,左侧红框中的参数就是加重和接收端幅值参数,右侧框中表示对应参数眼图扫描结果眼睛睁开区域的占比,该值越大,表示眼睛睁开越大,采集数据越准确。

在这里插入图片描述

图25 部分扫描结果

  双击上图中扫描的结果,便可以打开对应参数对应的眼图。双击UI占比为22.22%的一次扫描结果,得到如下所示眼图。

在这里插入图片描述

图26 打开一组参数对应眼图

4、回环测试

  如果用户没有光纤,可以使用回环模式,进行测试。前文讲到,我开发板有两个高速收发器通道用于PCIE通信,并没有接光纤,因此不能使用光纤连接,眼图扫描时显示的未连接,本文使用这两个通道来说明回环的使用吧。

  首先需要将这两个通道加入Serial I/O Links界面,如下图所示,点击+号,然后点击Create Links…

在这里插入图片描述

图27 添加没有连接的通道

  如下图所示,首先选中需要添加的通道,然后点击+号即可。

在这里插入图片描述

图28 添加对应通道

  下图将两个未连接的通道添加成功的截图,然后点击OK。

在这里插入图片描述

图29 添加两个通道信号

  如下图所示,下面框中添加的两个通道没有建立连接,因为没有通道接收数据、也没有通道向他们发送数据。

在这里插入图片描述

图30 添加未连接通道

  然后将这两个通道回环模式分别设置为近端PCS回环和近端PMA回环,如下图所示,设置成功之后复位两个收发器的接收和发送通道。

在这里插入图片描述

图31 设置回环模式及复位

  之后再查看两个通道的状态,他们各自已经能够自己回环收发数据了,这种方式可以用来测试自己的代码是否正确。

在这里插入图片描述

图32 通道状态

  之后选中近端PCS回环的通道,然后查看其眼图,结果如下所示,眼睛张开区域达到100%。这是因为PCS只是数字信号处理,GTX内部直接回环,并没有经过外部电路的损耗传输,因此可以达到100%。

在这里插入图片描述

图33 近端PCS回环测试眼图

  下图是近端PMA回环的测试结果,因为再GTX中已经转换成串行的物理信号后进行的回环,接收端接收的数据有部分衰减,眼睛睁开达到77.78%。

在这里插入图片描述

图34 近端PMA回环测试眼图

  有兴趣的可是试试远端回环,本文远端的回环与真实情况差不多,因为都经过了光纤和PCB的传输,本文不再赘述。

  本文主要讲解眼图扫描IP的使用方式,以及回环模式的含义及作用。需要本文工程的可以在公众号后台回复“眼图扫描”(不包括引号)即可。


  如果对文章内容理解有疑惑或者对代码不理解,可以在评论区或者后台留言,看到后均会回复!

  如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!您的支持是我更新的最大动力!将持续更新工程!

  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电路_fpga

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值