ibert测试说明

2024-06-05 07:48
文章标签 说明 测试 ibert

本文主要是介绍ibert测试说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  xilinx对于高速收发接口gth有专门的验证方案ibert,FPGA的引脚按bank划分,gth类似不过是按Quad来算,每个Quad的结构如下:

一共有4组收发对。每个Qual和管脚的位置都是绑定的,所以在例化ip核时只要指定Quad的位置即可,不需要再对管脚做约束了。

以UV440为例:可以整理出对应的位置表格

BANKlane0lane1lane2lane3
Bank229X0Y40X0Y41X0Y42X0Y43
Bank230X0Y44X0Y45X0Y46X0Y47
Bank231X0Y48X0Y49X0Y50X0Y51
Bank232X0Y52X0Y53X0Y54X0Y55
Bank219X0Y0X0Y1X0Y2X0Y3
Bank220X0Y4X0Y5X0Y6X0Y7
Bank221X0Y8X0Y9X0Y10X0Y11
Bank224X0Y20X0Y21X0Y22X0Y23
Bank225X0Y24X0Y25X0Y26X0Y27
Bank226X0Y28X0Y29X0Y30X0Y31
Bank227X0Y32X0Y33X0Y34X0Y35

Ibert配置介绍:

新建一个临时Temp工程:芯片选择

在ip Catalog搜索ibert:

根据连接进行配置GTH的选项:

选择一个系统使用,一般选择板卡上的一个全局时钟即可:

生成Example:

会在指定目录生成一个新的示例工程:

直接点生成bit即可:

  板卡上电,设置对应的时钟频率,(此例中:参考时钟及系统时钟)下载bit到FPGA,

使用FPGA vivado扫描Hardware,

set xil_newLinks [list]
set xil_newLink [create_hw_sio_link -description {Link 1} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y32/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y20/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                                
set xil_newLink [create_hw_sio_link -description {Link 2} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y33/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y21/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                                             
set xil_newLink [create_hw_sio_link -description {Link 3} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y34/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y22/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                               
set xil_newLink [create_hw_sio_link -description {Link 4} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y35/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y23/RX] 0] ]
lappend xil_newLinks $xil_newLinkset xil_newLink [create_hw_sio_link -description {Link 5} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y20/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y32/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                                
set xil_newLink [create_hw_sio_link -description {Link 6} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y21/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y33/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                                             
set xil_newLink [create_hw_sio_link -description {Link 7} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y22/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y34/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                               
set xil_newLink [create_hw_sio_link -description {Link 8} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y23/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y35/RX] 0] ]
lappend xil_newLinks $xil_newLinkset xil_newLinkGroup [create_hw_sio_linkgroup -description {Link Group 0} [get_hw_sio_links $xil_newLinks]]
unset xil_newLinks
……

再手动添加link,link有时需要刷新(先切换到近端或远端,这些是自环选项,就是tx和rx在FPGA内部已经连接在一起了,再切换到none:外部连接的方式)才能正确显示成绿色(添加及刷新link可以在Tcl Console看到对应的脚本,这个脚本可以保存成文件,方便下次操作)。

看link时首先看PLL,PLL若没有锁住一般是频率设置不对,需要检查频率设置,PLL锁住后一般link都没有问题,只要link的rx能收到数据,不管是哪个quad的哪路tx lane发送的,都会正常显示绿色(应该是因为每个lane的伪随机数序列都是一样的),serdes的收发两端是不一定需要同源时钟的(只要数据lane对接上即可),非同源时钟只要收发两端的频率精度控制在一定范围即可,时钟是通过CDR电路从数据中恢复出来的。

双击ip核,点击Documentation->Product Guide可以看到ibert的使用说明文档。

这篇关于ibert测试说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032490

相关文章

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Redis分布式锁使用及说明

《Redis分布式锁使用及说明》本文总结了Redis和Zookeeper在高可用性和高一致性场景下的应用,并详细介绍了Redis的分布式锁实现方式,包括使用Lua脚本和续期机制,最后,提到了RedLo... 目录Redis分布式锁加锁方式怎么会解错锁?举个小案例吧解锁方式续期总结Redis分布式锁如果追求

结构体和联合体的区别及说明

《结构体和联合体的区别及说明》文章主要介绍了C语言中的结构体和联合体,结构体是一种自定义的复合数据类型,可以包含多个成员,每个成员可以是不同的数据类型,联合体是一种特殊的数据结构,可以在内存中共享同一... 目录结构体和联合体的区别1. 结构体(Struct)2. 联合体(Union)3. 联合体与结构体的

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

关于SpringBoot的spring.factories文件详细说明

《关于SpringBoot的spring.factories文件详细说明》spring.factories文件是SpringBoot自动配置机制的核心部分之一,它位于每个SpringBoot自动配置模... 目录前言一、基本结构二、常见的键EnableAutoConfigurationAutoConfigu

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在