技术标签: JTAG fpga VIVADO pci-e IBERT
注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师。
以下为个人译文,仅供个人学习记录参考之用,如有疏漏之处,还请不吝赐教。
赛灵思 PCI Express IP 随附以下集成调试功能。
JTAG 调试器
启用 In-System IBERT
第三代模式解扰器
“JTAG 调试器 (JTAG Debugger)”可提供以下信息来帮助调试 PCI Express 链接训练问题:
LTSSM 状态的图形化视图
基于 GUI 的接收器检测状态(对应已配置的每个通道)
PHY RST 状态机的状态
In-system IBERT 可提供 PCIe 链接眼图。“JTAG Debugger”和“In-system IBERT”功能结合在一起即可提供即时信息,用于判断链接训练问题的可能原因。
“第三代模式解扰器 (Gen3 Mode Descrambler)”选项可提供 PIPE 数据的解码接口。它允许用户查看 PCIe 链接上的数据包。如需了解有关该功能以及数据包解码方法的详细信息,请参阅本篇博文。
赛灵思 PCI Express IP 随附以下集成调试功能。
“JTAG 调试器 (JTAG Debugger)”可提供以下信息来帮助调试 PCI Express 链接训练问题:
In-system IBERT 可提供 PCIe 链接眼图。“JTAG Debugger”和“In-system IBERT”功能结合在一起即可提供即时信息,用于判断链接训练问题的可能原因。在本篇博文中,我们将讲解如何使用这些功能。本篇博文基于赛灵思 VCU118 开发板随附的 UltraScale+ 器件。
“第三代模式解扰器 (Gen3 Mode Descrambler)”选项可提供发生扰码的 PIPE 数据的解码接口。它允许用户查看 PCIe 链接上的数据包。如需了解有关该功能以及数据包解码方法的详细信息,请参阅本篇博文。
IP 配置 GUI 包含“添加调试选项 (Add. Debug Options)”选项卡。请选中“启用 JTAG 调试器 (Enable JTAG Debugger)”。
在 GUI 中配置其它 IP 参数后,生成 IP 并打开示例设计。
请确保在设计示例的“Design Sources”层级中包含调试封装模块,如下所示:
请选择正确的比特文件和 .ltx 文件,以生成比特流并对器件进行编程。
根据所使用的 Vivado 工具版本,您可能会看到如下错误。
如果看到以上错误消息,请在 Vivado Tcl Console 中运行以下命令。
set_param xicom.use_bitstream_version_check false
对器件重新进行编程。
成功完成目标器件编程后,应在硬件窗口中显示 AXI 核“hw_axi_1”。
在工程目录中如下所示位置下,您将找到 4 个 .tcl 文件。
“test_rd.tcl”文件可读取 BRAM 中存储的调试数据,并输出 *.dat 文件,如下所示。其它 Tcl 文件可读取这些 *.dat 文件,以分别绘制 LTSSM、PHY RST 状态机和“接收器检测 (Receiver Detect)”的图形化视图。
draw_ltssm.tcl、draw_reset.tcl 和 draw_rxdet.tcl 脚本将使用 ActiveTcl 来执行。
如果您尝试在 Vivado Tcl Console 中执行这些脚本,那么 Vivado 工具将出错并退出。
下图显示了通过“draw_ltssm.tcl”脚本生成的 LTSSM 图示:
• 绿色 - 采集窗口期间转换的状态
• 橙色 - 最终状态
• 红色箭头 - 最终转换状态
• 箭头旁的数字 - 表示两个状态之间发生的转换次数
上图来自于某个有效的案例场景,其中链接训练正确无误并达成稳定的“L0”状态。当链接训练失败时,“Detect”气泡可能为橙色,表明 IP 无法检测到接收器。同样,您可能看到某一箭头旁的数字较大,表明可能存在不稳定的链接。
下图显示了使用“draw_reset.tcl”脚本生成的 PHY RST 状态机。
下图显示了使用“draw_rxdet.tcl”脚本生成的“Receiver Detect”状态:
如上所示,绿色点表明对应通道内成功完成接收器检测。GUI 还可提供有关协商的链接宽度的信息。
要采集 PCIe 链接眼图,请在 IP 配置 GUI 的“Add. Debug Options”选项卡中选择“启用 In-System IBERT (Enable In-System IBERT)”选项。
与使用“JTAG Debugger”选项时相似,生成 IP 并打开示例设计。
确保在示例设计的“Design Sources”层级中可以看到“System IBERT”模块。
生成比特流并用比特文件和 .ltx 文件进行编程。
请参阅 https://china.xilinx.com/support/answers/72471.html,以获取有关 IBERT 扫描必需配置的详细信息。下图显示了通过“In-System IBERT”功能生成的眼图。
以上扫描中的眼图来自于正常运行的 PCIe 链接。在无效链接中,您可能会看到蓝色区域极小,表明链接中可能存在信号完整性问题。
在以下答复记录中提供了有关按本文所述方式使用赛灵思 IP 中的集成 PCIe 调试功能的详细步骤:
如果您在使用调试功能生成的图示和眼图中看到问题,请参阅以下答复记录,其中提供了有关如何调试 PCIe 链接问题的信息。使用调试功能所获取的结果将有助于缩小问题可能原因的范围,从而简化调试过程。
中国剩余定理,又名孙子定理能求解什么问题呢?问题:一堆物品3个3个分剩2个5个5个分剩3个7个7个分剩2个问这个物品有多少个解这题,我们需要构造一个答案我们需要构造这个答案5*7*inv(5*7, 3) % 3 = 13*7*inv(3*7, 5) % 5 = 13*5*inv(3*5, 7) % 7 = 1inv 表...
vscode latex workshop recipe terminated with fatal error spawn latexmk enoentwindow + telive2020使用清华的在线安装。telive 3.0G 几乎包含所有的包了。比如latexmk搜索了一下,好像是环境变量路径问题。textlive manager 搜索得到latexmkcmd 输得出东西。window的path 也是安装时自动配好的。我尝试更改vscode 中的setting.json 的 w_latex workshop latex fatal error: spawn latexmk enoent, 'latexmk
当我们开发uniapp的时候,会想到全局变量,全端存储到全局中,调用起来非常方便main.js代码import Vue from 'vue'import App from './App'Vue.config.productionTip = falseVue.prototype.globalData = { addressId:'',//默认地址}Vue.prototype.baseUrl= "http://XXX.XXX.XXX/"; // 测试环境// Vue.prototype._uniapp 定义全局方法
想改变eltable的样式,进行到如图时,始终去除不掉fix栏的下边框_el-table fixed边框
1、安装erlang1.wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm2.rpm -Uvh erlang-solutions-1.0-1.noarch.rpm这里会有一个坑,然后复制报错可以解决问题,这个还是好解决注意这一步报错百度就会解决。3.yum install erlang4..._erlang-solutions-1.0-1.noarch
这是我学习Android时做的一个小程序,程序主要功能是实现一个迷你相册的功能,可以在虚拟机上看到很不错的效果。我设置屏幕的大小为800*600 /**ImageSwitcherGallery.java*/ package android.study_layout; import android.app.Activity;import android.conten_android 制作系统相册
起初:docker安装好elasticsearch,正常启动之后,发现通过端口访问被拒绝,但是小编也查看了docker正在运行的容器,发现elasticsearch镜像确实是在运行的配置+解决1.配置工作2.解决方案1.配置工作小编在这里补充一下,下载Elasticsearch镜像的时候不指定版本会超时,所以下载的时候建议指定版本docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name 自定义_elasticsearch拒绝访问
串行口方式0拓展并行输出端口 02 74LS164一、实验目的二、实验内容三、实验步骤四、C代码如下五、实验结果六、实验体会一、实验目的74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在..._串口扩展并口实验
做了一个简单的项目,电路板使用电池供电,需要系统在待机时低功耗。而对外接口只有4个按键,也就是唤醒必须要通过这四个按键。 系统功能就不介绍了,只给出进入低功耗的代码和退出低功耗的代码。 使用芯片为stm8s103 1 /***************************************************************** 2 /...
Python之禅 —— “import this”Python的理念都包含在Tim Peters撰写的 “ Python ” 之禅中,要获悉这些有关编写优秀的Python代码的指导原则,只需要在编译器中执行命令“ import this ”即可,这些指导原则对于我们是很重要的,能给予我们很大的帮助。import thisBeautiful is better than ugly...._import this
先从原理上分析切片运算:list的切片,内部是调用__getitem__,__setitem__,__delitem__和slice函数。而slice函数又是和range()函数相关的。给切片传递的键是一个特殊的slice对象。该对象拥有可描述所请求切片方位的属性,例如:a = [ 1, 2, 3, 4, 5, 6 ]x = a [ 1 : 5 ] # x = a.__getitem__( sl..._python天天向上实验原理
_jvm内存模型分为哪几个区域,分别的作用