KC705开发板——MGT IBERT测试记录

16 篇文章 3 订阅

本文介绍使用KC705开发板进行MGT的IBERT测试。

KC705开发板

KC705开发板的图片如下图所示。FPGA芯片型号为XC7K325T-2FFG900C。
在这里插入图片描述

MGT

MGT是 Multi-Gigabit Transceiver的缩写,是Multi-Gigabit Serializer/Deserializer (SERDES)的别称。MGT包含GTP、GTX、GTH、GTZ、GTY、GTM。在Kintex-7系列FPGA只有GTX。
根据UG810中介绍,KC705上引出的16个GTX收发器分别是

  1. Eight of the GTX transceivers are wired to the PCI Express® x8 endpoint edge connector (P1) fingers
  2. Four of the GTX transceivers are wired to the FMC HPC connector (J22)
  3. One GTX is wired to the FMC LPC connector (J2)
  4. One GTX is wired to SMA connectors (RX: J17, J18 TX: J19, J20)
  5. One GTX is wired to the SFP/SFP+ Module connector (P5)
  6. One GTX is used for the SGMII connection to the Ethernet PHY (U37)

7系列FPGA中的GTX收发器分为四个通道,称为Quad。某Quad的参考时钟可以来源于上一个Quad或下一个Quad。KC705板上有4个GTX Quad,具体连接如下表所示:

Transceiver BankAssociated Net NameConnections
MGT_BANK_115GTXE2_CHANNEL_X0Y0PCIe7
GTXE2_CHANNEL_X0Y1PCIe6
GTXE2_CHANNEL_X0Y2PCIe5
GTXE2_CHANNEL_X0Y3PCIe4
MGTREFCLK0N/C
MGTREFCLK1PCIe_CLK
MGT_BANK_116GTXE2_CHANNEL_X0Y4PCIe3
GTXE2_CHANNEL_X0Y5PCIe2
GTXE2_CHANNEL_X0Y6PCIe1
GTXE2_CHANNEL_X0Y7PCIe0
MGTREFCLK0Si5326
MGTREFCLK1FMC LPC GBT_CLK0
MGT_BANK_117GTXE2_CHANNEL_X0Y8SMA
GTXE2_CHANNEL_X0Y9SGMII
GTXE2_CHANNEL_X0Y10SFP/SFP+
GTXE2_CHANNEL_X0Y11FMC LPC DP0
MGTREFCLK0SGMII_CLK
MGTREFCLK1SMA_CLK
MGT_BANK_118GTXE2_CHANNEL_X0Y12FMC HPC DP0
GTXE2_CHANNEL_X0Y13FMC HPC DP1
GTXE2_CHANNEL_X0Y14FMC HPC DP2
GTXE2_CHANNEL_X0Y15FMC HPC DP3
MGTREFCLK0FMC HPC GBT_CLK0
MGTREFCLK1FMC HPC GBT_CLK1

时钟

KC705板载的时钟源有以下几个

1. System Clock Source

系统时钟源为2.5V LVDS差分200 MHz振荡器,SYSCLK_P——AD12,SYSCLK_N——AD11。
在这里插入图片描述

2. Programmable User Clock Source

可编程用户时钟源为低抖动3.3V差分振荡器Si570,USER_CLOCK_P——K28, USER_CLOCK_N——K29。上电默认输出频率为156.250 MHz,可通过I2C接口在10MHz~810 MHz范围内调整输出频率。
在这里插入图片描述

3. User SMA Clock Input

连接关系:
USER_SMA_CLOCK_P ——L25,USER_SMA_CLOCK_N——K25。
在这里插入图片描述

4. GTX SMA Clock Input

连接关系:
SMA_MGT_REFCLK_P——J8,SMA_REFCLK_N——J7,其连接至Bank 117 MGT参考时钟1。
在这里插入图片描述

5. Jitter Attenuated Clock

连接关系:
REC_CLOCK_C_P——W27,REC_CLOCK_C_N——W28。
SI5326_OUT_C_P——L8,SI5326_OUT_C_N——L7,连接至Bank 116 MGT参考时钟0。
SI5326_RST——SI5326_RST_LS——AE20。
在这里插入图片描述

6. SGMII GTX Transceiver Clock

ICS844021I为一个倍频系数固定为5的芯片,故在此处其输出为125 MHz LVDS差分时钟。
连接关系:SGMIICLK_Q0_P——G8,SGMIICLK_Q0_N——G7,连接至Bank 117 MGT参考时钟0。

在这里插入图片描述

IBERT IP核

Protocol Definition

在这里插入图片描述
在Protocol为Custom1时,线速率LineRate、数据位宽DataWidth、参考时钟频率Refclk可自行指定。Quad Count取决于待测试的GTX是否位于同一个Bank。勾选Quad PLL则该Quad内的GTX共用一个QPLL,不勾选则不同GTX使用不同的CPLL。QPLL和CPLL的关系示意图如下。
在这里插入图片描述

Protocol Selection

在这里插入图片描述

根据待测试的GT所位于的Bank号设置Protocol Selected。参考时钟Refclk可以来自于本Quad或上一个Quad或下一个Quad的参考时钟输入。在前面勾选Quad PLL的情况下,TXUSERCLK Source可以任意设置。

Clock Settings

在这里插入图片描述
系统时钟System Clock可以选择前面所设置的GT参考时钟,也可以选择外部参考时钟。

生成IP核示例工程

在这里插入图片描述
右击IP核后,点击Open IP Example Design生成工程。

注意事项

生成IP核示例工程后,查看综合后的Schematic和I/O Ports确认。
在这里插入图片描述
此时修改该工程中的IBERT IP核的GT参考时钟和系统时钟时,引脚分配是不会发生改变的。

SMA回环测试

根据前面的介绍,接下来进行KC705的GT测试。KC705上的J17和J66、J19和J20分别连接了Quad 117的GT的接收通道和发送通道。使用SMA连接线将J17与J19相连,J66与J20相连。
在这里插入图片描述
生成并下载Bitstream,点击Auto-detect links,即可看到测试结果。
在这里插入图片描述
链路测试所用的回环方式一共有4种,分别是
在这里插入图片描述
该4种方式在通信链路中对应的位置示意图如下。
在这里插入图片描述
点击Serial I/O Scans中的Create Scan创建扫描。
在这里插入图片描述
扫描后得到如下结果。
在这里插入图片描述

SFP+回环测试

使用如图所示的回环器,插到KC705开发板上的SFP/SFP+连接器上。
在这里插入图片描述
Bank 117上GT收发器的连接关系如下表。

Transceiver BankAssociated Net NameConnections
MGT_BANK_117GTXE2_CHANNEL_X0Y8SMA
GTXE2_CHANNEL_X0Y9SGMII
GTXE2_CHANNEL_X0Y10SFP/SFP+
GTXE2_CHANNEL_X0Y11FMC LPC DP0
MGTREFCLK0SGMII_CLK
MGTREFCLK1SMA_CLK

注意到SPF/SFP+所连接的GT收发器是X0Y10,参考时钟输入1来自于外部时钟输入。
此时IBERT IP核参考时钟,仍可选择SMA回环测试中的MGTREFCLK0 117。为了再做一个MGT参考时钟的实验,将参考时钟设为MGTREFCLK1 117。时钟产生方法是从其他博主那里学到的。
即是将SI570默认输出的156.250MHz的差分时钟输入(引脚为K28和K29);
通过USER_SMA_CLOCK(引脚为L25和K25,SMA头为J11和J12)输出;
然后通过SMA连接线接到SMA_MGT_REFCLK(Bank 117的参考时钟1,引脚为J8和J7,SMA头为J16和J15)。
最后的硬件连接关系如下图所示。
在这里插入图片描述

此时需要更改IBERT IP核中GTX的参考时钟频率和来源,同时该SFP+回环器最高支持10 Gbps,于是我们也将线速率设置为10 Gbps。具体设置如下图所示。
在这里插入图片描述
在这里插入图片描述
接下来,重新生成IBERT IP核示例工程。
在示例工程的顶层文件中,添加如下代码。

input USER_CLOCK_P;
input USER_CLOCK_N;
output USER_SMA_CLOCK_P;
output USER_SMA_CLOCK_N;

wire user_clock;
IBUFGDS u_user_clock
  (
    .I(USER_CLOCK_P),
    .IB(USER_CLOCK_N),
    .O(user_clock)
  );

wire user_clock_bufg;
BUFG u_BUFG_sysclk (
     .O(user_clock_bufg),
     .I(user_clock)
);

OBUFDS u_OBUFDS_sysclk (
  .O (USER_SMA_CLOCK_P),      
  .OB(USER_SMA_CLOCK_N), 
  .I (user_clock_bufg)  
);
  

同时在xdc文件中,添加时钟约束和引脚约束。

create_clock -name user_clock -period 6.4 [get_ports USER_CLOCK_P]
create_clock -name user_sma_clock -period 6.4 [get_ports USER_SMA_CLOCK_P]
set_property PACKAGE_PIN K28 [get_ports USER_CLOCK_P]
set_property IOSTANDARD LVDS_25 [get_ports USER_CLOCK_P]
set_property PACKAGE_PIN L25 [get_ports USER_SMA_CLOCK_P]
set_property IOSTANDARD LVDS_25 [get_ports USER_SMA_CLOCK_P]

综合后得到额外的RTL电路为。
在这里插入图片描述

生成并下载Bitstream,链路正常锁定,得到链路测试结果如下。
在这里插入图片描述
眼图扫描结果如下。
在这里插入图片描述

参考资料

  1. kc705_Schematic_xtp132_rev1_1.pdf
  2. xtp200-kc705-ibert-c-2014-3.pdf
  3. ug810_KC705_Eval_Bd.pdf
  4. ug811_ChipScopeUsingIBERTwithAnalyzer.pdf
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值