1 如何使用Python脚本调试赛灵思PCIe设计?-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Python脚本调试赛灵思PCIe设计?

FPGA技术江湖 来源:XILINX开发者社区 2023-06-26 09:20 次阅读

获取 CSV:

现在,您不仅可以使用 Python 脚本执行调试分析,更重要的是,借由 Vivado ILA 所生成的 ILA 文件可以进一步简化此操作。通过将 *.ila 扩展名重命名为 *.zip 然后将生成的文件解压,即可将其转换为 CSV 文件。

解压后的文件夹将包含以下列表中的文件:

f6b4bffa-13aa-11ee-962d-dac502259ad0.png

Python 可提供相应的库,用于 CSV 文件分析,以便对 Vivado ILA 所生成的调试信号数据执行详尽的分析。调试信号还可在 Vivado 硬件管理器中以波形形式来查看。对于计算某些接口中的数据包数量、解读数据包内的字段值等分析操作,使用 Python 脚本方法更便于进行定制调试。

Python 脚本用例示例

此处提供的 Python 脚本会对 ILA 数据执行分析,这些数据包含下图所示的 RQ/RC/CQ/CC 接口信号。此模块框图源自 (PG213),该文档适用于 UltraScale+ 器件 Integrated Block for PCI Express IP。

PG213:

f6d927a0-13aa-11ee-962d-dac502259ad0.png

此脚本可识别每个接口上有效的数据包、提取每个数据包中的描述符文件,并报告输出每个字段的值。

适用于 PCIe 调试的 Python 代码示例:

该脚本执行的步骤如下所述:

打开 CSV 文件。

从所选 CSV 文件中提取数据。

提取包含目标数据的特定列/报头。

使用“tready”、“tvalid”和“tlast”作为限定符来识别有效的数据包。

提取有效的 tdata 值,并使用函数执行十六进制到二进制转换。

二进制转换是从“tdata”提取比特级数据所必需的操作。

打印含十六进制数据的描述符字段。

以下 func_rq_pkt_analysis() 函数会导入 CSV 文件并基于提供的 tready 值来判定要对哪个接口运行分析。

f74b5ba4-13aa-11ee-962d-dac502259ad0.png

以下代码可识别 .csv 文件中相应字段的列编号,如下所示:

f760002c-13aa-11ee-962d-dac502259ad0.png

仅提取 tready 值、tdata 值、tvalid 值和 tlast 值,并将其存储在词典中,作为对应索引的值,该索引将用作为词典的键。

f787cac6-13aa-11ee-962d-dac502259ad0.png

下一步是对词典中存储的数据执行分析。词典包含 tdata、tready、tvalid 和 tlast。

for 循环会遍历词典中的每一行,如果发现 tready 和 tvalid 均为“1”,那么它会将对应数据复制到变量中。tdata 作为十六进制数值存储在 CSV 文件中。为了对描述符字段标识执行比特级提取,需将十六进制值转换为二进制。

描述符字段的提取是基于 (PG213) 中提供的描述符格式来执行的。以下示例显示了完成方完成 (CC) 接口的描述符。

f7b0e2c6-13aa-11ee-962d-dac502259ad0.png

f7d141f6-13aa-11ee-962d-dac502259ad0.png

为打印描述符字段值,需使用 bin_to_hex_print( ) 函数将此二进制值再次转换为十六进制。

该函数定义如下:

f844e4b2-13aa-11ee-962d-dac502259ad0.png

以下是本篇博文随附的 waveform.csv 文件的输出示例:

f860580a-13aa-11ee-962d-dac502259ad0.png

代码限制示例

提供的代码示例仅作为概念证明。提供的脚本则可在以下情况下“按现状”直接使用:

1.数据包包含 1 个数据节拍,即 tready/tvalid 和 tlast 全都在同一个时钟周期内断言有效。
2.不使用跨接。
3.对应接口的 tdata、tready、tvalid 和 tlast 的信号命名方式与本文随附的 .csv 文件中的命名相同。

使用 Python 执行 PCIe 调试的用例

Python 脚本示例可通过扩展用于调试下列各种场景:

1.计算每个接口上的数据包数量。

2.在启用跨接的用户接口上执行数据包分析。

3.支持分析含多个数据节拍的数据包,例如,跨多个时钟周期的数据包。

4.验证是否接收到拆分完成包。

5.在给定的 ILA 捕获窗口缓冲器大小足够的情况下,验证用户逻辑在 CC 接口上生成的完成包是否正确,并验证在 RC 接口上是否同样接收到完成包(用于 RQ 接口上的对应请求)。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7484

    浏览量

    163759
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84623
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66470
  • PCIe接口
    +关注

    关注

    0

    文章

    120

    浏览量

    9701
  • csv
    csv
    +关注

    关注

    0

    文章

    38

    浏览量

    5819

原文标题:使用 Python 调试 PCIe 问题

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    790.被并入AMD对中国FPGA厂商有什么意义?

    fpga
    小凡
    发布于 :2022年10月05日 02:52:44

    Verilog(FPGACPLD)设计小技巧

    Verilog(FPGACPLD)设计小技巧
    发表于 08-19 22:52

    FPGA是用altera多还是的多呢

    FPGA是用altera多还是的多呢,我买的开发板是altera的,但是很多人推荐说学习
    发表于 01-09 21:27

    XilinxFPGA技术及应用线上公开课

    ` 本帖最后由 MGJOY 于 2017-4-10 15:07 编辑 本周三,4月12日,FPGA技术及应用线上公开课。欢迎大家观看、学习交流~分享主题【
    发表于 04-10 15:06

    【PYNQ-Z2申请】基于PYNQ-Z2平台的图像实时力学测量

    项目名称:基于PYNQ-Z2平台的图像实时力学测量试用计划:申请理由本人在图像辅助力学测量领域有三年的研究经验,曾设计过类似基于光学及图像的微纳力学传感器,想借助发烧友论坛和
    发表于 01-09 14:49

    Xilinx方案

    能做方案的,请联系
    发表于 01-21 19:31

    什么是丰富目标设计平台?

    今年年初,率先在FPGA领域提出目标设计平台概念,旨在通过选用开放的标准、通用的开发流程以及类似的设计环境,减少通用工作对设计人员时间的占用,确保他们能集中精力从事创新性的开发工作。
    发表于 08-13 07:27

    为什么说已经远远领先于Altera?

    Altera和20年来都在FPGA这个窄众市场激烈的竞争者,然而Peter Larson基于对两个公司现金流折现法的研究表明,
    发表于 09-02 06:04

    高价回收系列IC

    高价回收系列IC长期回收系列IC,高价求购
    发表于 04-06 18:07

    如何使用FPGA加速包处理?

    FAST包处理器的核心功能是什么如何使用FPGA加速包处理?
    发表于 04-30 06:32

    这颗是限制料还是翻新料?

    丝印查不到系列型号,引脚数量也对不上所有型号规格,也没有韩国产地
    发表于 02-24 17:01

    收购深鉴科技_收购目的及发展

    本文首先介绍了,其次介绍了收购深鉴科技的过程以及目的,最后介绍了
    的头像 发表于 07-18 11:19 4894次阅读

    的目标和发展

    公司亚太区销售与市场副总裁杨飞表示,的SDx系列仍会持续发展。毫无疑问,这会帮助
    的头像 发表于 07-24 17:58 3323次阅读
    <b class='flag-5'>赛</b><b class='flag-5'>灵</b><b class='flag-5'>思</b>的目标和发展

    Alveo™ U50面世

    支持第四代 PCIe首款轻量级加速卡,
    的头像 发表于 08-13 14:24 3140次阅读

    、Solarflare正式合并!

    今年四月公开宣布的 Solarflare 收购案已经正式完成。
    的头像 发表于 08-13 16:59 3944次阅读