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

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

3天内不再提示

浅谈PCIe包分析解扰器模块的输出数据

电子设计 来源:赛灵思中文社区 作者:赛灵思中文社区 2020-11-29 10:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

PIPE 接口上的数据在 Gen3 的速度下被加密。当调试 PCIe 问题时,能在 PCIe 链接上查看各个包会很有帮助。

若要实现此目的,用户需拥有协议链接分析器。由于其成本较高,能接触到此等设备的用户不多。随协议链接分析器提供的包分析工具很广泛,可对链接流量进行深入分析。

赛灵思 UltraScale+ 器件的 PCIe® Express Gen3 IP 集成块有一个功能,可让您集成一个解扰器模块,以便解密在 PIPE 接口上被加密的数据。尽管它不能提供与协议链接分析器相同数量的分析数据,但它可以在识别潜在问题方面提供帮助,而且在大部分情况下可帮助追踪问题的根本原因。

本文将详细介绍如何通过识别来自链路并进入 PCIe IP 的不同类型的 PCIe 包来分析解扰器模块的输出数据。

解扰器模块在 PCIe IP 配置 GUI 中被使能,具体如下:


解扰器模块只在 Gen3 模式中被支持。

如果复选框变成灰色,要确保配置 GUI 的“Basic标签中的链接速度被设为 8.0 GT/s。如果该选项不可用,请将“Basic”标签中的“Mode”设为“Advanced”。

为了追踪 PIPE 接口上有效 PCIe 包的起始点,该接口提供了两种信号:*_sync_header 和 *_start_block。


为了确认 rx_data 上的数据是否为有效包,请检查以下各项:

  • *_data_valid 已被有效
  • *_start_block 已被有效
  • *_sync_header 为“1”或“2”。
    - 如果该值是“1”,则表示是“Ordered Set”的起始点。
    - 如果该值是“2”,则表示是 TLP 或 DLLP 包的起始点。

被解扰的数据分析也可在仿真中进行。

以下的波形图来自与 IP 一起生成的 Gen3 示例设计的仿真。


退出“Recovery.Speed”LTSSM 状态后的第一个包是 EIEOS(电气空闲退出有序集)。


上文波形图中所示的 FF00FF00 就是 EIEOS。

被解扰信号上的第一个包将是 EIEOS。

如前文所述,*_start_block 必须有效,而且下文波形图中所示的 *_sync_header 信号应为“1”。


一旦所有均衡状态都已完成,在进入 L0 状态之前,您应该看到 555555E1。

这就是 SDS(数据流起始点)。一旦您看到了 SDS,则意味着有序集交互已完成。接口上的下一个包类型将是初始流量控制信用,即,我们应在接口上看到 DLLP 包。


下面的波形图即显示了 DLLP 包。DLLP 包以 SDP(DLLP 包起始点 - ACF0)开始。在多通道设计时,数据将被跨通道分布。


InitFC1-P(Posted Data 的初始流量控制)以“40”开始。下文来自 Lecory 分析器的捕获显示 InitiFC1-P 标识符。


在下文的波形图中,DLLP 包为 InitFC1-P。


DLLP 包格式共有四种:

  • ACK 或 Nak DLLP 包格式
  • 功耗管理 DLLP 包格式
  • 流量控制 DLLP 包格式
  • 供应商特定 DLLP 包格式

每一种 DLLP 包的长度都是 6 个符号。 有关解码 DLLP 包内容的信息,请参阅 PCI Express 规范。在下文的波形图中,“60”是 InitFC-Cpl(Cpl 代表 completion)。“50”是 InitFC-NP(NP 代表 Non-Posted)。


UpdateFC-P 以“80”开始。被解扰数据中的更新值为十六进制,因此需要将其转化为十进制,以便获得可用信用的准确数字。


有序集总是按通道来的。每条通道都有其自己的有序集。 DLLP 和 TLP 被跨通道分配;每条通道一个字节。

DLLP 只在 lane-0、lane-4 或 lane-8 中开始,即,F0 只能在 lane 0、4 或 8 上。TLP 可在任何通道上开始。

TXRATE 表示链路运行的速度。向 Gen3 速度的过渡在“Recovery.Speed”(0C)LTSSM 状态中发生,如以下波形图所示。


在 L0 状态之前以 Gen1/Gen2 速度运行的包未被加扰,它仅在 Gen3 速度下被加扰。在 PIPE 接口上以 Gen1/Gen2 速度运行的有序集可被直接读取。但是,所有速度的所有内容在 L0 状态中都会被扰码。下面的波形图显示了在 Gen1 速度时的捕获。


在这里,“4A”系指其 TS1 有序集。只有在速度如 TXRATE 所示变化至 Gen3 时才需要解扰器模块。

下列波形图中的 AAAAAAAA 表示一个 SKP 有序集。


E1 表示 SKP_END 符号的定义详见如下所示的 PCIe 规范。


下面的波形图显示了在 Gen3 链接上的一个 TS1 有序集。所示的“1E”表示在 Gen3 速度时的一个 TS1 有序集。



下面的波形图显示了每条通道中的一个 TS1 有序集。它不会跨越多条通道。它在所有通道上都相同,只是通道号不同。在下面的波形图中,通道号分别为 00 和 01。


这里的“0E”是 Symbol-4。Symbol-4 在规范中的定义如下:


0E= 0000_1110。当我们将这些位映射到规范中的 Symbol-4 描述上时,它表示 Gen3 速度得到了支持。

Symbol-6 在 LTSSM 所处的不同状态中具有不同含义。在如下所示的波形图中,LTSSM 为“28”,则意味着它位于 phase-0 中。



Symbol-6 为 20,即 001_0000。由于它在 phase-0 中,则位 1:0 被设为“00”。

下面的波形图显示了一个完整的 TS1 有序集。


下面的波形图显示了设置为 Gen3 速度的一个 TS2 有序集。“2D”表示它是一个 TS2 有序集



至此,我们已讨论了有关有序集和 DLLP 的内容,那么现在我们来看一下如何在 PIPE 接口上识别 TLP。

每个 TLP 都以 STP(TLP 包起始点)标识开始。因此,在解扰器中查找具有 *_start_block = 1 和 *_sync_header= 2 的任何“nF”。

每个 STP 标识都是 4 个符号并表示 TLP 的开始。

STP 字段的定义详见下图所示:


以下是 MemWr(存储器写入 TLP)的示例。请注意,这是一个 x4 链接,因此所有内容都被跨越分配。下面的波形图取自示例设计仿真。


该波形图显示了来自主机测试平台而通过 PCIe 硬块的 CQ 接口进入用户逻辑的存储器写入传输事务。该传输事务在 PIPE 接口上具体理解如下:

开始从 LSB 读取:

DW0 = ClkCycle0-Byte0 (Lane-0 to Lane-3) 
-> “6F-80-20-1D” 
-> STP token

DW1 = Header starts here -> ClkCycle0-Byte1 (Lane-0 to Lane-3) 
-> “40-00-00-01”
-> Indicates Fmt/Type = 0x40 which is a 3DW MemWr request, Length = 1
DW2 = ClkCycle0-Byte2 (Lane-0 to Lane-3)
-> "00-00-00-0F” 
-> "0000- ReqID, Tag – 00, 1st DW Byte Enable = "F"

DW3 = ClkCycle0-Byte3 (Lane-0 to Lane-3)
-> “00-00-00-10” -> Address = 'h10

DW4 = ClkCycle1-Byte0 (Lane-0 to Lane-3)
-> “04-03-02-01” -> Payload (Byte0 to Byte3, 01-> MSB, 04-> LSB)

编辑:hfy

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

    关注

    39

    文章

    7715

    浏览量

    170870
  • 赛灵思
    +关注

    关注

    33

    文章

    1797

    浏览量

    133155
  • PCIe
    +关注

    关注

    16

    文章

    1423

    浏览量

    87560
  • GUI
    GUI
    +关注

    关注

    3

    文章

    693

    浏览量

    42861
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Xgig CEM 8通道内插模块JDSU

    Xgig CEM 8通道内插模块是JDSU的一款专为 PCI Express 5.0(PCIe 5.0)设计的测试接口模块,用于连接被测系统与 VIAVI 的 Xgig
    发表于 11-03 09:06

    Texas Instruments CDCDB803用于PCIe®第1代至第5代的8输出时钟缓冲数据手册

    Texas Instruments用于PCIe^®^ Gen 1至Gen 5的CDCDB803 8输出时钟缓冲是符合DB800ZL标准的时钟缓冲,用来为
    的头像 发表于 09-26 15:14 525次阅读
    Texas Instruments CDCDB803用于<b class='flag-5'>PCIe</b>®第1代至第5代的8<b class='flag-5'>输出</b>时钟缓冲<b class='flag-5'>器</b><b class='flag-5'>数据</b>手册

    NVMe高速传输之摆脱XDMA设计20: PCIe应答模块设计

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储
    的头像 发表于 08-13 10:43 646次阅读
    NVMe高速传输之摆脱XDMA设计20: <b class='flag-5'>PCIe</b>应答<b class='flag-5'>模块</b>设计

    NVMe高速传输之摆脱XDMA设计20: PCIe应答模块设计

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储
    发表于 08-12 16:04

    NVMe高速传输之摆脱XDMA设计17:PCIe加速模块设计

    PCIe加速模块负责实现PCIe传输层任务的处理,同时与NVMe层进行任务交互。PCIe加速模块按照请求发起方分为请求
    的头像 发表于 08-09 14:38 4587次阅读
    NVMe高速传输之摆脱XDMA设计17:<b class='flag-5'>PCIe</b>加速<b class='flag-5'>模块</b>设计

    NVMe高速传输之摆脱XDMA设计17:PCIe加速模块设计

    内部信号做进一步处理,如果需要应答,将应答事务通过axis完成方完成接口(axis_cc)发送给PCIE硬核。图1 PCIe加速模块系统框图 PCIe加速
    发表于 08-07 18:57

    NVMe高速传输之摆脱XDMA设计14: PCIe应答模块设计

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储
    的头像 发表于 08-04 16:47 691次阅读
    NVMe高速传输之摆脱XDMA设计14: <b class='flag-5'>PCIe</b>应答<b class='flag-5'>模块</b>设计

    NVMe高速传输之摆脱XDMA设计14: PCIe应答模块设计

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储
    发表于 08-04 16:44

    NVMe高速传输之摆脱XDMA设计之12:PCIe请求模块设计(上)

    发送给下游设备,下游设备的反馈通过axis_rc接口以CPL或CPLD的形式传回。门铃写请求由NVMe控制模块发起,请求以PCIe存储写请求TLP的格式从axis_rq接口交由PCIE
    发表于 08-03 22:00

    PCIe协议分析仪在数据中心中有何作用?

    与软件问题 链路层错误检测与修复 场景:PCIe链路因信号完整性问题(如插损、串)导致误码率(BER)升高,引发链路训练失败或数据重传。 作用: 捕获DLLP中的ACK/NAK
    发表于 07-29 15:02

    PCIe协议分析仪能测试哪些设备?

    PCIe协议分析仪能测试多种依赖PCIe总线进行高速数据传输的设备,其测试范围覆盖计算、存储、网络及异构计算等多个领域,具体设备类型及测试场景如下:一、核心计算设备 GPU(图形处理
    发表于 07-25 14:09

    MAX9278/MAX9282用于同轴电缆或STP输入和LVDS输出的3.12Gbps GMSL技术手册

    MAX9278/MAX9282千兆位多媒体串行链路(GMSL)通过50Ω同轴电缆或100Ω屏蔽双绞线(STP)电缆从GMSL串行接收数据,并在3个(共4个)
    的头像 发表于 05-28 14:28 889次阅读
    MAX9278/MAX9282用于同轴电缆或STP输入和LVDS<b class='flag-5'>输出</b>的3.12Gbps GMSL<b class='flag-5'>解</b>串<b class='flag-5'>器</b>技术手册

    nvme IP开发之PCIe

    数据,Posted类型的事务请求不需要使用 完成报文。 PCIe总线协议定义了基于地址的路由、基于ID的路由和隐式路由三种TLP路由 方式。其中,存储读写和I/O读写TLP采用基于地址的路由,该类
    发表于 05-18 00:48

    nvme IP开发之PCIe

    体系架构 RC是PCIe体系树形结构中的根节点。RC主要负责配置PCIe总线上的所有设备,分配资源、处理传输请求,并管理数据流动。在处理系统中,RC是负责连接CPU与
    发表于 05-17 14:54

    VIAVI Xgig4K-PCIe-X4-FL飞行引导插入适用于PCIE4.0在被测设备和VIAVI协议分析仪机箱箱之间提供数据信号连接

    VIAVI 16GTps PCIe 4.0 多模块分析器PCIE4-X4-FL)适用于PCI Express 4.0在被测设备和VIAVI协议分析
    的头像 发表于 03-19 16:22 749次阅读
    VIAVI Xgig4K-<b class='flag-5'>PCIe</b>-X4-FL飞行引导插入<b class='flag-5'>器</b>适用于<b class='flag-5'>PCIE</b>4.0在被测设备和VIAVI协议<b class='flag-5'>分析</b>仪机箱箱之间提供<b class='flag-5'>数据</b>信号连接