KC705开发板——MGT IBERT测试记录
本文介绍使用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收发器分别是
- Eight of the GTX transceivers are wired to the PCI Express® x8 endpoint edge connector (P1) fingers
- Four of the GTX transceivers are wired to the FMC HPC connector (J22)
- One GTX is wired to the FMC LPC connector (J2)
- One GTX is wired to SMA connectors (RX: J17, J18 TX: J19, J20)
- One GTX is wired to the SFP/SFP+ Module connector (P5)
- 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 Bank | Associated Net Name | Connections |
|---|---|---|
| MGT_BANK_115 | GTXE2_CHANNEL_X0Y0 | PCIe7 |
| GTXE2_CHANNEL_X0Y1 | PCIe6 | |
| GTXE2_CHANNEL_X0Y2 | PCIe5 | |
| GTXE2_CHANNEL_X0Y3 | PCIe4 | |
| MGTREFCLK0 | N/C | |
| MGTREFCLK1 | PCIe_CLK | |
| MGT_BANK_116 | GTXE2_CHANNEL_X0Y4 | PCIe3 |
| GTXE2_CHANNEL_X0Y5 | PCIe2 | |
| GTXE2_CHANNEL_X0Y6 | PCIe1 | |
| GTXE2_CHANNEL_X0Y7 | PCIe0 | |
| MGTREFCLK0 | Si5326 | |
| MGTREFCLK1 | FMC LPC GBT_CLK0 | |
| MGT_BANK_117 | GTXE2_CHANNEL_X0Y8 | SMA |
| GTXE2_CHANNEL_X0Y9 | SGMII | |
| GTXE2_CHANNEL_X0Y10 | SFP/SFP+ | |
| GTXE2_CHANNEL_X0Y11 | FMC LPC DP0 | |
| MGTREFCLK0 | SGMII_CLK | |
| MGTREFCLK1 | SMA_CLK | |
| MGT_BANK_118 | GTXE2_CHANNEL_X0Y12 | FMC HPC DP0 |
| GTXE2_CHANNEL_X0Y13 | FMC HPC DP1 | |
| GTXE2_CHANNEL_X0Y14 | FMC HPC DP2 | |
| GTXE2_CHANNEL_X0Y15 | FMC HPC DP3 | |
| MGTREFCLK0 | FMC HPC GBT_CLK0 | |
| MGTREFCLK1 | FMC 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+连接器上。

注意到SPF/SFP+所连接的GT收发器是X0Y10。
| Transceiver Bank | Associated Net Name | Connections |
|---|---|---|
| MGT_BANK_117 | GTXE2_CHANNEL_X0Y8 | SMA |
| GTXE2_CHANNEL_X0Y9 | SGMII | |
| GTXE2_CHANNEL_X0Y10 | SFP/SFP+ | |
| GTXE2_CHANNEL_X0Y11 | FMC LPC DP0 | |
| MGTREFCLK0 | SGMII_CLK | |
| MGTREFCLK1 | SMA_CLK |
再做一个MGT参考时钟的实验。方法是从其他博主那里学到的。
即是将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,链路正常锁定,得到链路测试结果如下。

眼图扫描结果如下。

参考资料
- kc705_Schematic_xtp132_rev1_1.pdf
- xtp200-kc705-ibert-c-2014-3.pdf
- ug810_KC705_Eval_Bd.pdf
- ug811_ChipScopeUsingIBERTwithAnalyzer.pdf
相关文章:
KC705开发板——MGT IBERT测试记录
本文介绍使用KC705开发板进行MGT的IBERT测试。 KC705开发板 KC705开发板的图片如下图所示。FPGA芯片型号为XC7K325T-2FFG900C。 MGT MGT是 Multi-Gigabit Transceiver的缩写,是Multi-Gigabit Serializer/Deserializer (SERDES)的别称。MGT包含GTP、GTX、GTH、G…...
前端代码优化散记
把import Button from xxx 的引入方式,变成import {Button} from xxx 的方式引入,以利于按需打包。原生监听事件、定时器等,必须在componentWillUnmount中清除,大型项目会发生内存泄露,极度影响性能。使用PureComponen…...
HTML <map> 标签的使用
map标签的用途:是与img标签绑定使用的,常被用来赋予给客户端图像某处区域特殊的含义,点击该区域可跳转到新的文档。 编写格式: <img src"图片" border"0" usemap"#planetmap" alt"Planets…...
stable diffusion实践操作-大模型介绍
本文专门开一节写大模型相关的内容,在看之前,可以同步关注: stable diffusion实践操作 模型下载网站 国内的是:https://www.liblibai.com 国外的是:https://civitai.com(科学上网) 一、发展历…...
W5500-EVB-PICO进行MQTT连接订阅发布教程(十二)
前言 上一章我们用开发板通过SNTP协议获取网络协议,本章我们介绍一下开发板通过配置MQTT连接到服务器上,并且订阅和发布消息。 什么是MQTT? MQTT是一种轻量级的消息传输协议,旨在物联网(IoT)应用中实现设备…...
90、00后严选出的数据可视化工具:奥威BI工具
90、00后主打一个巧用工具,绝不低效率上班,因此当擅长大数据智能可视化分析的BI数据可视化工具出现后,自然而然地就成了90、00后职场人常用的数据可视化工具。 奥威BI工具三大特点,让职场人眼前一亮! 1、零编程&…...
删除maven中出现.lastUpdate结尾的文件
出现 .lastupdate 结尾的文件的原因:由于网络原因没有将maven的依赖下载完整. 解决方案: 1) 删除所有以 .lastupdate 结尾的文件 A) 1.切换到maven本地仓库 B)2.在当前目录打开cmd命令行(shift右键-->在此处打开命令窗口 或 直接在当前文件路径上敲cmd 或 右键-->…...
Cannot assign to read only property ‘exports‘ of object ‘#<Object>‘
webpack打包js文件中不允许混用import和module.exports。 方式①:babel.config.js添加sourceType: {"presets": [...],"sourceType": "unambiguous" }方式②:安装babel-plugin-transform-es2015-modules-commonjs npm …...
Dockerfile中编译、打包、部署spring boot项目
1、Dockerfile 1.1、什么是Dockerfile Dockerfile是自动构建docker镜像的配置文件,将镜像构建过程通过指令的方式定义在Dockerfile中。配合docker build命令行可以实现自动化的Docker镜像的构建。 1.2、Dockerfile语法解析 我们在学习一门语言或文档语法的时候&am…...
微型计算机原理知识点总结(一)
目录 一.微型计算机 二.微型计算机系统 1.微型计算机硬件系统 冯诺依曼体系结构 总线 (1)微处理器(CPU) 运算器 控制器 内部寄存器 (2)存储器 1.基本概念 2.内存的操作 3.内存的分类 (3)I/O接口与输入/输出设备 2.微型计算机软件系统 (1)系统软件 操作系统 …...
【postgresql 基础入门】psql客户端的使用方法
psql 客户端使用 专栏内容: postgresql内核源码分析手写数据库toadb并发编程 开源贡献: toadb开源库 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤…...
QTcpSocket发送数据方法
文章目录 一、简介二、write(const char *, qint64)三、isValid() 一、简介 本文主要记录QTcpSocket的write(const char *, qint64)和isValid()。 二、write(const char *, qint64) 概念:在QTcpSocket中,使用write(char* data, int size)函数将指定长…...
select 语句执行顺序
sql 样例 select t_students.name as 姓名, sum(case when b.cname语文 then c.sc_val else 0 end) As 语文 ,sum(case when b.cname数学 then c.sc_val else 0 end) As 数学,sum(case when b.cname英语 then c.sc_val else 0 end) As 英语, From t_students a, t_corses b, t…...
PMD 检查java代码:避免将内部数组直接返回给调用者(MethodReturnsInternalArray)
https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_bestpractices.html#methodreturnsinternalarray 直接将内部数组暴露给调用者破坏了封装性,因为调用者可能在拥有内部数组的对象外部更改或者删除数组的元素。返回内部数组的拷贝会更加安全。 例如&…...
ActiveMQ配置初探
文章目录 配置wrapper相关配置wrapper是干什么用的MQ的运行内存修改【需修改】修改内容题外话 wrapper.log配置【需修改】引起的问题优化方式 activemq.xml相关配置官网介绍配置管理后台的认证授权【建议修改】配置broker【根据自己需求更改】配置允许jmx监控关闭消息通知持久化…...
【官方中文文档】Mybatis-Spring #示例代码
示例代码 提示 查看 JPetstore 6 demo 了解如何在完整的 Web 应用服务器上使用 Spring。 您可以在 MyBatis-Spring 的 代码仓库 中查看示例代码: 所有示例都能在 JUnit 5 下运行。 示例代码演示了事务服务从数据访问层获取域对象的典型设计。 FooService.java …...
python二级例题
请编写程序,生成随机密码。具体要求如下: (1)使用 rand…...
【java】【项目实战】[外卖九]项目优化(缓存)
目录 一、问题说明 二、环境搭建 2.1 Git管理代码 2.1.1 创建本地仓库 2.1.2 创建远程仓库 2.1.3 创建分支--》推送到远程仓库 2.2 maven坐标 2.3 配置文件application.yml 2.4 配置类RedisConfig 三、缓存短信验证码 3.1 实现思路 3.2 代码改造 3.2.1 UserContro…...
Scala集合常用函数与集合计算简单函数,高级计算函数Map和Reduce等
Scala集合常用函数与集合计算简单函数 1.Scala集合常用函数 基本属性和常用操作 1.常用函数: (1) 获取集合长度(2) 获取集合大小(3) 循环遍历(4) 迭代器(…...
You must install at least one postgresql-client-<version> package
使用主机上的映射端口来连接到 PostgreSQL 数据库。例如,使用以下命令连接到数据库: psql -h localhost -p 5432 -U postgres出现下面的问题: 分析: 如果您在运行 psql 命令时遇到错误消息 You must install at least one pos…...
CANN/hccl参数面建链阶段故障诊断
参数面建链阶段 【免费下载链接】hccl 集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/cann/hcc…...
dialoqbase入门指南:如何在5分钟内创建你的第一个AI聊天机器人
dialoqbase入门指南:如何在5分钟内创建你的第一个AI聊天机器人 【免费下载链接】dialoqbase Create chatbots with ease 项目地址: https://gitcode.com/gh_mirrors/di/dialoqbase dialoqbase是一款强大的开源工具,让你能够轻松创建AI聊天机器人。…...
Cursor Pro免费激活终极指南:简单快速解锁AI编程高级功能
Cursor Pro免费激活终极指南:简单快速解锁AI编程高级功能 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your …...
保姆级教程:用STM32F103C8T6和MAX485芯片实现稳定的一主多从RS485通讯(附完整代码)
STM32F103C8T6与MAX485构建工业级RS485总线系统实战指南 在工业自动化领域,稳定可靠的通信系统如同神经脉络般重要。想象一下,当您需要在一个大型温室中部署数十个温湿度传感器,或者在一个工厂车间监控多台设备的运行状态时,点对点…...
Java 面试高频题:通知平台整体架构一般怎么拆?
消息实时通知平台架构总览怎么搭?一次讲清渠道、模板、推送、回执、偏好与治理闭环 大家好,我是一名有 4 年工作经验的 Java 后端开发。 从第129天开始,我连续围绕消息实时通知系统写了整体设计、渠道抽象、模板中心、实时推送、异步投递、偏…...
TrollInstallerX终极指南:iOS 14-16.6.1设备一键安装TrollStore
TrollInstallerX终极指南:iOS 14-16.6.1设备一键安装TrollStore 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX TrollInstallerX是一款专为iOS 14.0到16.6.1…...
推理服务为什么一上自动 Prompt 优化就开始成本失控:从 Prompt 版本爆炸到在线 A/B 收敛的工程实战
一、自动 Prompt 优化的成本幻觉 不少团队上线推理服务后,发现同一任务换句 Prompt 输出质量可提升 20%。🚀 自动 Prompt 优化因此成了香饽饽——系统同时维护几十个版本在线分流。但两周后账单涨了 40%。⚡️ 问题不在 Prompt,而是版本爆炸把…...
专业休闲卤味零食包装设计公司排名榜单盘点-哲仕设计上榜
专业休闲卤味零食包装设计公司排名榜单盘点-哲仕设计上榜休闲卤味零食属于大众刚需休闲食品,涵盖肉类卤制熟食、素菜卤味小吃、真空独立卤包、常温即食卤品、麻辣风干肉干、组合卤味礼盒等品类,广泛适用于居家休闲解馋、办公下午茶加餐、追剧娱乐食用、出…...
MC/DC覆盖率:从原理到实战,破解100%覆盖率的迷思与挑战
1. 项目概述:当“完美”成为负担在软件测试领域,尤其是对安全关键系统(比如航空航天、汽车电子、医疗设备)的验证,我们常常听到一个词:100%覆盖率。这听起来像是一个终极目标,一个完美的终点。但…...
百度千帆平台文心4.0 API开通与计费避坑指南:个人开发者如何低成本尝鲜?
百度千帆文心4.0 API低成本接入实战:个人开发者的精打细算指南 当大模型API成为个人开发者的"新基建",如何用最低成本体验最前沿的ERNIE-Bot-4能力?作为经历过完整踩坑流程的实践者,我将分享从申请到调用的全流程避坑策…...
