目录
简介:
概要:
详细内容:
总结:
简介:
经常性的用到IBERT,也经常用到眼图,但是如何像示波器一样,能有个模板进行判定呢。本章将研究这一内容。
概要:
标准协议的规范中一般都对眼图模板都有详细的规定,使用IBERT完成眼图扫描后,通过设置一些参数,即可让Vivado自动将模板画到眼图上。
详细内容:
1.新建IBERT工程
在Vivado的IP Catelog中找到IBERT,此处以UltraScale 系列的GT为例,
2.据硬件连接设置IBERT参数
这里详细参考以下博文,有详细的关于IBERT的设置
案例分析-ibert使用介绍及ibert时钟锁不住问题分析_v7 ibert 时钟不lock-CSDN博客
3.下载、建立连接和扫描眼图
IBERT完成设置后,单击Generate Bitstream生成Bit文件,并下载到器件。在Serial IO links单击Create Links建立连接,为了便于测试此处将Loopback Mode设置为Near End PMA,IBERT众多参数用户可根据需要设置,如下图所示:
对任意一个Link右击选择Create Scan即可完成眼图扫描。
4. 添加眼图模板
a. 打开眼图模板属性
set scan [lindex [get_hw_sio_scans] 0]
set_param labtools.serial.enable_mask 1
set_property MASK.DISPLAY 1 [get_hw_sio_scans $scan]
b. 并设置眼图模板区域
set_property MASK.BOTTOM -30.500 [get_hw_sio_scans $scan]
set_property MASK.LEFT_INNER -0.10 [get_hw_sio_scans $scan]
set_property MASK.LEFT_OUTER -0.15 [get_hw_sio_scans $scan]
set_property MASK.MIDDLE 0.000 [get_hw_sio_scans $scan]
set_property MASK.RIGHT_INNER 0.100 [get_hw_sio_scans $scan]
set_property MASK.RIGHT_OUTER 0.15 [get_hw_sio_scans $scan]
set_property MASK.TOP 30.500 [get_hw_sio_scans $scan]
set_property MASK.HORIZONTAL_OFFSET 0.0 [get_hw_sio_scans $scan]
set_property MASK.VERTICAL_OFFSET 0 [get_hw_sio_scans $scan]
c. 设置眼图模板的色彩和线宽
set_property MASK.COLOR black [get_hw_sio_scans $scan]
set_property MASK.LINE_WIDTH 2 [get_hw_sio_scans $scan]
某协议规范中对眼图模板的定义如下图所示:
总结:
在高速串行系统中,主要通过眼图测试。评估一个眼图的好和坏,通常利用一些常见的指标来衡量,比如眼高,眼宽,抖动,占空比等。为了简单而又直观地判断眼图的指标是否符合规范的要求,将规范指标的要求编写成一个眼图模板,然后利用示波器来调用这个模板,这样就可以直观看到眼图是否有碰到模版。评估一个眼图的好和坏,通常利用一些常见的指标来衡量,比如眼高,眼宽,抖动,占空比等。为了简单而又直观地判断眼图的指标是否符合规范的要求,将规范指标的要求编写成一个眼图模板,然后利用示波器来调用这个模板,这样就可以直观看到眼图是否有碰到模板。如果眼图没有碰到模板区域,表示眼图符合规范要求,结果是Pass;同样如果有碰到模板区域,结果是Fail,需要工程师对电路进行整改,改进信号质量到Pass。
本文主要通过ibert测试中,手动添加眼图的方式来进行测试。