工程中使用高速接口GTX,如果GTX建链建不起来,Vivado自带的调试工具误码率测试(Integrated Bit Error Ratio Tester,IBERT)核可以帮助分析建链失败原因。本片文章是IBERT IP核的使用说明,下面对IBERT详细论述。
1 IBERT IP核资源介绍
IBERT核对任一GTX收发器都设计有模式发生器核模式检查器。模式发生器发送数据,模式及检查器接收数据,根据内部生成的模式对接收数据检查,从而判断GTX的建链情况。
IBERT使用伪随机二进制序列(Pseudo-random Binary Sequence, PRBS)生成数据,PRBS的模式有PRBS 7位、PRBS 15位、PRBS 23位、PRBS 31位、Clk 2x (101010…),以及Clk 10x(111111111000000000…)模式。
模式检查器检查到连续的5个周期的正确信号,LINK信号拉高,表示建链成功,检查到5个周期的错误信号,LINK信号拉低,建链失败。
2 IBERT IP核接口资源
IBERT IP核接口如下图所示:
下面详细说明各接口含义
信号名称 | 方向 | 描述 |
---|---|---|
SYSCLK_I | 输入 | 所有通信逻辑的时钟。只有在选择外部时钟时,端口有效 |
TXP_O[n - 1:0] TXN_O[n - 1:0] |
输出 | GTX收发器的发送差分时间对 |
RXN_I[n - 1:0] RXP_I[n - 1:0] |
输入 | GTX收发器的接收差分时间对 |
GTREFCLK0_I[n - 1:0] GTREFCLK1_I[n - 1:0] |
输入 | GTX收发器参考时钟。MGTREFCLK端口的数量等于或小于TX和RX端口的数量,因为GTX收发器可以共享时钟 |
RXOUTCLK_O | 输出 | Quad RX输出时钟 |
时钟
系统时钟
IBERT工作时,通信以及其他逻辑资源需要一个系统时钟,这个系统时钟可以是外部引脚输入,也可以是GTX收发器的某个参考时钟;
Receiver Output Clock 接收器输出时钟
作为监测接收器的时钟,调试分析使用。
Reference Clock 参考时钟
GTX的参考时钟,可以选择为同一个Quad的相邻上下时钟的任一个。
Resets 复位
运行时复位BERT的计算,以及GT的所有复位。
3 IBERT的配置说明
IBERT IP核是不能够综合的,所以,在block design界面搜索不到,只能在 IP Catalog中找到IBERT IP核,如下图所示:
双击IP核,即可打开IBERT的配置界面。
Protocal Definitions
首先是协议定义配置,协议是lane rate、数据宽度、参考时钟的组合。最多可以为一个IBERT内核定义三个协议,并且可以将任意数量的可用Quads指定为任何已定义的协议。,如下图所示:
Silicon Version:选择器件属性的,只有一种可选,默认即可。
number of protocols:选择协议的数量,根据需要选择;
LineRate:速率,根据工程选择;
DataWidth:数据宽度,根据工程选择;
Refclk:参考钟,根据工程选择;
Quad count:选择Quad,最大的可选值由器件的Quad定义;
Quad PLL:Quad PLL选择,尽可能不使用。
Protocol Selection
第二页的配置是协议选项,如下图所示:
此配置界面选择器件可用的Quad,每个协议定义对应一个Quad,选择QUAD对应的协议即可。
Refclk Selection:每一个Quad需要一个参考时钟,该选项选择参考时钟源;
TXUSRCLK sources:用户时钟源选择,由一个Quad中的四个通道共享,选择一个通道用作用户时钟来源。
Clock Settings配置
Clock Settings时钟设置,如下图所示:
在“Clock Settings”选项卡中,单击“Add RXOUTCLK Probes ”,用四通道0的RXOUTCLK驱动一个输出引脚或引脚对。从列表中选择I/O标准,并指定有效的管脚位置。
Add RXOUTCLK Probes 添加接收时钟监测,用Quad中的lane0驱动输出引脚,引脚的电平约束在 I/O Standard 配置中,除此之外,还需要进行位置约束,如下图所示:
选择时钟源,时钟位置,IO标准以及时钟频率完成时钟的配置。
4 IBERT IP核调试使用
生成IBERT实例后,接下来进行调试应用。首先找到生成的IP核,**右键->Open IP Example Design **,Vivado会另外打开一个工程,这个工程就是调试使用,如下图所示:
重新打开一个工程,是用于生成基于PRBS生成器和检查器的链路状态指示器,在IBERT生成器件,自动生成一个参考时钟和系统级约束。
新打开的工程如图所示:
连上仿真器后,对硬件中的设计进行调试的步骤如下:
- 连接到硬件目标并烧写bit文件和ltx文件;
- 创建链路;
- 修改链路设置并检验状态;
- 根据需要运行扫描。
说明:因为手边没有现成的开发板用于调试演示,所以后续文章的图使用ug908中图
1 连接仿真器
连接好仿真器后,窗口就会显示 IBERT 核的组件,并显示扫描器件时检测到的 RTL 实例名称如下图所示:
2 创建链路和链路组
要创建 1 条或多条链路,选中 Vivado 中的“Links”(链路)选项,并单击“Create Links”(创建链路)按钮,显
示“Create Links”对话框,如下图所示。
从列表中选择 TX 和/或 RX。然后单击“+”(添加)按钮,以将链路添加到列表中。
3 状态查看
创建链路后,就会添加到“Links”视图,该视图是更改链路设置和查看状态的主要方法,如下图所示:
“Links”窗口中的每一行都对应 1 条链路。默认情况下,常用的实用状态和控制均处于启用状态,下表显示了“Links”窗口的表格列中可查看的各项设置。文章来源:https://www.toymoban.com/news/detail-471453.html
链路视图列名 | 描述 |
---|---|
TX | 发射器的 GT 位置 |
RX | 接收器的 GT 位置 |
“Status”(状态) | 是否已链接(表示 RX 数据是否按期望方式传入)。“Status”可显示测量所得线速率。如果未链接,则显示“No Link”(无链路)。 |
“Bits”(位数) | 测量所得接收到的位数。 |
“Errors”(错误) | 接收器测量所得的位错误数量。 |
BER | 误码率 (BER) = (1 + 错误数) / (位数)。 |
“BERT Reset”(BERT 复位) | 将收到的比特数和误码计数器复位。 |
“RX Pattern”(RX 模式) | 选择接收器接收的模式。 |
“TX Pattern”(TX 模式) | 选择发射器发送的模式。 |
“TX Pre-Cursor”(TX 前标) | 选择发射器上的前标加重。 |
TX Post-Cursor”(TX 后标) | 选择发射器上的后标加重。 |
TX Diff Swing(TX 差分摆幅) | 选择发射器的差分摆幅值。 |
DFE Enabled(DFE 已启用) | 选择是否在接收器上启用“Decision Feedback Equalizer”(判反馈均衡器),它并非对所有架构都可用。 |
“Inject Error”(插入误码) | 在发射路径中插入单位错误。 |
“TX Reset”(TX 复位) | 将发射器复位。 |
“RX Reset”(RX 复位) | 将接收器和 BERT 计数器复位。 |
Loopback Mode(环回模式) | 选择接收器 GT 上的环回模式。。 |
Termination Voltage(终端电压) | 选择接收器的终端电压。 |
“RX Common Mode”(RX 共模) | 选择接收器的 RX 共模设置。 |
TXUSERCLK Freq | 显示测量所得 TXUSERCLK 频率(以 MHz 为单位)。 |
TXUSERCLK2 Freq | 显示测量所得 TXUSERCLK2 频率(以 MHz 为单位)。 |
RXUSERCLK Freq | 显示测量所得 RXUSERCLK 频率(以 MHz 为单位)。 |
RXUSERCLK2 Freq | 显示测量所得 RXUSERCLK2 频率(以 MHz 为单位)。 |
“TX Polarity Invert”(TX 极性反相) | 将发射的数据的极性反相。 |
“RX Polarity Invert”(RX 极性反相) | 将接收的数据的极性反相。 |
可通过更改链路组行中的设置来更改链路组中所有链路的任一给定属性的值。文章来源地址https://www.toymoban.com/news/detail-471453.html
到了这里,关于IBERT IP核使用说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!