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手段,欢迎大家留言补充。




审核编辑:刘清

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

    关注

    30

    文章

    5023

    浏览量

    117638
  • 锁存器
    +关注

    关注

    8

    文章

    742

    浏览量

    41026
  • PCIe
    +关注

    关注

    13

    文章

    1079

    浏览量

    80755
  • TLP
    TLP
    +关注

    关注

    0

    文章

    30

    浏览量

    15513
  • CPLD芯片
    +关注

    关注

    0

    文章

    18

    浏览量

    11579

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    PCIE困惑

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

    PCIE MSI中断的配置

    )-(Uint32)gpPCIE_app_regs);,这个语句的大致意思就是MSI中断配置。那是不是我只要改之前的那个结构体赋值,比如说是PCIE_16_MSI,然后不用管调用的那个函数,就可以触发16号PCIE中断呢?
    发表于 06-21 03:49

    PCIE接口的REFCLK的如何设计?

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

    关于PCIe通信问题

    目录是pdk_C6670_1_0_0_17\packages\ti\drv\exampleProjects\PCIE_exampleProject。我的理解接下来应该通过PC往PCIe口发数据,用windriver可以吗,还是还
    发表于 08-07 08:28

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

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

    是否可以PCIe中的MGT用于RapidIO协议?

    嗨,我有一个ML605板和一块使用RapidIO协议的DSP板。该板有两个FMC连接器(HPC和LPC)和一个PCIe接口,我需要4个万兆收发器(MGT),PCIe和FMC HPC都有8个(LPC
    发表于 08-29 10:33

    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

    我是一名PCIe新手,想了解以下问题: 1、如何测试PCIe? 2、如何读写PCIe(两块开发板通过PCIe线互连,分别配置为RC和EP)? 3.如何支持NTB?
    发表于 06-12 06:05

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

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

    最新PCIe Gen 5 switch芯片已内置SerialTek PCIe抓包分析功能

    等各环节可能遇到的各种疑难问题,工程师只需要免费下载SerialTek PCIe协议分析仪软件BusXpert即可直接配置PCIe Gen 5 switch进行抓包分析,可以分析ups
    的头像 发表于 04-13 15:30 4876次阅读
    最新<b class='flag-5'>PCIe</b> Gen 5 switch芯片已内置SerialTek <b class='flag-5'>PCIe</b>抓包分析功能

    什么是PCIePCIe有什么用途?PCIe 5.0有何不同?

    随着英特尔Alder Lake CPU的发布,以及AMD 7000 Ryzen CPU的即将发布,PCIe 5.0 硬件终于成为现实。但什么是 PCIe 5.0?
    的头像 发表于 11-18 16:48 1584次阅读
    什么是<b class='flag-5'>PCIe</b>?<b class='flag-5'>PCIe</b>有什么用途?<b class='flag-5'>PCIe</b> 5.0有何不同?