0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

PCIe可以添加哪些定位手段?PCIe需要的debug设计

ruikundianzi 来源:IC的世界 2024-02-26 18:19 次阅读

1、PCIe debug环境说明

526d6b5c-d48b-11ee-a297-92fbcf53809c.png

本文将以PCIe EP用户逻辑举例,描述PCIe可以添加哪些定位手段。

如图所示,PCIe IP作为endpoint与RC对接,用户实现了应用逻辑,与PCIe IP进行交互,交互信号中data格式为TLP报文格式,且交互信号包含相应的控制信号,例如PCIe配置空间和IP相干的配置信号。

常见的Debug设计可以通常有:中断、锁存状态、统计计数和实时状态。

添加Debug设计的目的通常是定位功能故障和性能故障。

功能故障通常有链路不通,出现错包,PCIe部分 function无法访问等等。

性能故障通常速率协商未到最高速率、传输速率不及预期等等。

添加debug手段可以在芯片调试时有效提高定位效率,快速发现并解决问题。

2.用户需要添加的debug手段

2.1.最常见的统计计数

常见的统计技术有,发起的请求数量和收到的请求响应数量、正确的数量和错误的数量、单个function的统计以及所有function的统计。

已发起的dma read请求、已返回的dma read 响应。

已发起的dma write请求、已返回的dma write 响应。

已收到的memory space 访问以及返回的memory space 响应。

2.2.ltssm 状态机

记录ltssm 协商过程,锁存ltssm最近的若干次数值,便于分析ltssm协商过程。

ltssm 实时状态可读 统计ltssm进入L0状态的次数和退出L0状态的次数

2.3.PCIe 关键使能信号

PCIe IP关键信号包含vf/pf_bus_master_en、vf/pf_function_level_reset、hot reset、金手指复位perst,如下表格才采用英文简写描述。

如上的关键信号只有0和1两种状态,都需要记录实时状态、统计0-->1跳变次数、统计1-->0跳变次数

2.4.异常完成报文锁存若干cpld/cpld 报文头信息

采用ram或者寄存器锁存收到的cpl/cpld报文头信息,可以根据需要选择锁存的字段,如下所示,强烈推荐锁存Completion Status 、EP、Completer ID、Requester ID等信息方便问题定位。

527d11d8-d48b-11ee-a297-92fbcf53809c.png5290c41c-d48b-11ee-a297-92fbcf53809c.png

2.5.异常请求debug

发现异常请求时记录异常信息。 场景1:无效function的请求,例如当前PCIe只有128个VF,即VF0~VF127,结果收到了VF128的请求。此时需要锁存请求类型、VF number以及产生错误中断,方便问题定位。

2.6.记录cpld时延信息

52a21f00-d48b-11ee-a297-92fbcf53809c.png

为了便于计算性能,EP发起的memory 读请求(俗称dma read),需要统计时延,即从发起dma read请求开始到收到最后一个CPLD/CPL时消耗的时间,并且期望debug设计能够记录不同时延段位的dma read请求数量。debug设计可配置延时上限,一旦超时延时上限,则锁存dma read请求信息,方便调试者定位。

2.7.统计流控信号

52b635da-d48b-11ee-a297-92fbcf53809c.png

当应用逻辑写数据速率过大或者RC端数据处理能力较弱时,RC反馈给EP的credit更新跟不上应用逻辑写数据的速率,会导致EP对应用逻辑产生反压,即credit_fc置1。此时将影响应用逻辑dma write的速率,通过观察credit_fc的统计计数可以初步判断影响性能的因素。

3.结束语

出现问题的原因可能是代码bug,可能是配置的寄存器数值错误,也可能是配置顺序流程不正确,添加debug设计就是为了能够高效定位问题。本文仅仅简单描述了部分需要添加的debug手段,欢迎大家留言补充。




审核编辑:刘清

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

    关注

    31

    文章

    5204

    浏览量

    118743
  • 锁存器
    +关注

    关注

    8

    文章

    875

    浏览量

    41187
  • PCIe
    +关注

    关注

    14

    文章

    1128

    浏览量

    81466
  • TLP
    TLP
    +关注

    关注

    0

    文章

    30

    浏览量

    15550
  • CPLD芯片
    +关注

    关注

    0

    文章

    18

    浏览量

    11586

原文标题:PCIE定位:PCIe需要的debug设计

文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PCIe引脚定义和PCIe协议层介绍

    本文我们将向大家介绍PCIe引脚定义以及PCIe协议层。
    发表于 09-26 11:39 1.1w次阅读
    <b class='flag-5'>PCIe</b>引脚定义和<b class='flag-5'>PCIe</b>协议层介绍

    FPGA的PCIE接口应用需要注意哪些问题

    并进行相应的优化。 综上所述,FPGA的PCIe接口应用需要综合考虑硬件资源、PCIe版本、时钟同步、信号完整性、设计优化、软件和驱动程序、主机系统性能、热设计和电源管理等多个方面的问题。通过详细规划、设计和测试,
    发表于 05-27 16:17

    #硬声创作季 PCIe-QuickLearn-PCIe-Overview-Data

    PCIPCIe
    Mr_haohao
    发布于 :2022年10月20日 23:00:07

    PCIe插槽竟然能玩出花样?多个最新PCIe扩展硬盘方式!#PCIe扩展 #PCIe #硬盘盒

    硬盘PCIe
    ICY DOCK硬盘盒
    发布于 :2024年07月11日 17:21:28

    PCIE困惑

    主动发起DMA传输没有问题。但问题是工控机需要知道什么时候发起DMA,发起DMA传输的条件是FPGA已经采集并缓存了一定的数据,然后需要通知工控机现在可以发起DMA传输了。我现在不知道如何通知,请教大家!
    发表于 11-13 14:26

    PCIE接口的REFCLK的如何设计?

    我想用C6657的PCIE接口扩展一个WIFI. C6657的PCIE需要一个LVDS的参考时钟(PCIECLKP, PCIECLKN),  WIFI芯片的PCIE
    发表于 06-21 18:45

    如何使用xapp1052设计PCIe BMD示例?

    我试图从xapp1052识别PCIe BMD示例中的主要数据端口,以便我可以在其中添加我的设计。我试图为PCIe接收数据[63:0] trn_rd
    发表于 03-20 15:09

    pcie

    pcie虚拟化技术中,一端pcie的虚拟通道又睡指定,是通过软件配置吗
    发表于 11-11 10:34

    PCIe资源Kintex7可以只使用一个PCIe Gen 2吗?

    亲爱的,我需要使用2-3个PCIe(x2)和一个Kintex 7 FPGA。实际上我正在查看系列7发现的数据表(在集成的IP资源下),可以只使用一个PCIe Gen 2。我是否正确理解
    发表于 08-27 16:42

    可以将多个PCIe设备连接到一般的单个PCIe控制器吗?

    我们可以将多个 PCIe 设备 (IC) 连接到一般的单个 PCIe 控制器(在我们的案例中更具体地说是 NXP LS20xxA 处理器)吗? 例如,将四个不同的 PCIe x1 设备
    发表于 05-05 07:35

    体验紫光PCIE之使用WinDriver驱动紫光PCIE

    主板的PCIE插槽中,此过程在关机状态下完成。 (2)如果硬件PCIE链路设计并没有使用PCIE插槽电源供电开发板,那么开发板需要使用外部电源供电,反之
    发表于 11-17 14:35

    基于VIVADO的PCIE IP的使用

    定的。因为Xilinx官方给我们提供了完善的PCIE IP,基于这些IP我们设置不需要知道TLP包的组包原理我们便可以PCIE使用起来。 这篇博客我们主要把FPGA作为endpoin
    的头像 发表于 08-09 16:22 1.1w次阅读
    基于VIVADO的<b class='flag-5'>PCIE</b> IP的使用

    什么是PCIe

    PCIe是一种高速串行计算机扩展总线标准,自2003年推出以来,已经成为服务器(Server)和PC上的重要接口。今天为大家简单介绍一下PCIe的发展历史以及它的工作原理。 一、PCIe的由来
    的头像 发表于 07-04 18:15 1.7w次阅读

    pcie3.0和4.0差距大吗 怎么看pcie3.0还是4.0

    要充分发挥PCIe 4.0的优势,需要具备兼容PCIe 4.0的主板和设备。如果你的设备只支持PCIe 3.0,那么你将无法享受到PCIe
    发表于 07-18 15:10 2.6w次阅读

    pcie接口可以插什么

    PCIE接口可以插入的设备非常多,涵盖了各种不同的硬件设备和扩展卡。下面将详细介绍几种常见的PCIE接口设备。 显卡(Graphice Card):显卡是最常见的PCIE接口设备之一。
    的头像 发表于 12-28 16:20 1.1w次阅读