如何在XDMA中查看LTSSM状态机

简介

经常会遇到PCIe不能识别的问题,到底怎么去定位。本文以XDMA 为例,一方面复习下LTSSM状态机,一方面描述下如何通过FPGA的XDMA查看这个状态机

技术名词

LTSSM是一种常用于PCI Express(PCIe)接口的状态机,它可以控制PCIe总线的传输流程。LTSSM由多个状态组成,每个状态都代表了不同的总线传输阶段。在PCIe通信中,通过状态转移来实现数据的传输和接收。具体来说,LTSSM可以控制PCIe设备之间的握手、数据传输、错误处理等操作,保证数据在传输过程中的稳定性和完整性。

XDMA指的是跨领域内存访问(Cross Domain Memory Access),它是一种基于硬件实现的内存共享技术,可以在不同的设备之间实现高速、低延迟的数据传输。相比于传统的数据传输方式,XDMA可以大大减少数据传输的时间和成本,并且可以支持多种不同的设备之间的数据传输,包括FPGA、GPU、CPU等。

通过使用XDMA,可以将不同设备之间的数据传输延迟降至最低,同时也可以实现高速数据传输,提高系统性能和响应速度。此外,由于XDMA是一种硬件实现的技术,因此它可以保证数据传输的稳定性和安全性,本文特质xilinx的IP核。、

如何查看

首先打开vavodo,选择XDMA 的IP核。点击

需要勾选PCIe ID标签页中的Use Class Code Lookup Assistant之后才能搜索到相关itssm信号。

在编译之后。搜索LTSSM,添加debug信号。

LTSSM-Detect

Detect:检测远端阻抗以确定是否有设备

a) Detect.Quiet时,Tx处于Electrical Idle状态,LinkUp清0,以及其他复位动作

b) 只要有lane退出Electrical Idle,就进入Detect.Active,此时双方检测对端阻抗,确定对端是否有设备

c) 只要有某条/几条lane的双方均检测到对端有Rx,则进入Polling,其他没有检测成功的lane进入Electrical Idle,一条lane也没有则回到Quiet

LTSSM-Polling

Polling:发送和回复TS,bit lock,symbol lock,lane 极性在此阶段确定

TS(Training Sequences)用于初始化bit align,symbol align,交换参数。TS1主要检测PCIe链路配置信息,TS2确认TS1的检测结果

a)Polling.Active,Tx向对端发送TS1,对端Rx接收到TS1后通过其Loopback发送回来

b)当Rx收到8个连续的TS1或者收到8个TS2,这种情况下进入Polling.Configuration

c)Polling.Configuration:此时TX发送TS2(lane/link number为PAD,linkup为0)

d)当在Polling.Configuration时收到8个连续的TS2,并且在收到一个TS2之后再发出去16个TS2之后进入Configuration状态

LTSSM-Configuration

Configuration:Rx/Tx协商link number,lane number,(这步骤可以确定link width)当recovery出现错误没有进入L0也可能先进Configuration

首次从Polling进入Configuration时LinkUp=0,从recovery进入该状态是LinkUp=1

Configuration.Idle时,PCIe链路设置完毕,当收到对端8个Idle序列并且向对端发送16个Idle序列之后将LinkUp值1,数据链路层从DL_Inactive进入DL_Init,物理层进入L0

LTSSM-Recovery

Recovery:用于切换data rate,或者从L0经过Recovery.Rcvrlock再到Configuration去切换link width,此时bit lock(位锁),symbol lock(符号锁) 会重新建立

当PCIe链路需要重新训练时,进入Recovery状态。主要有以下几种情况:

(1) PCIe链路信号发现error,需要调整Bit Lock和Symbol Lock;

(2) 从L0s或者L1低功耗电源状态退出;

(3) Speed Change。因为第一次进入L0状态时,速率是2.5GT/s. 当需要进行速率调整5.0GT/s或者8.0GT/s时,需要进入Recovery状态进行Speed Change. 这个阶段,Bit Lock、Symbol Lock等都需要重新获取;

(4) 需要重新调整PCIe链路的Width;

(5) 软件触发retrain操作;

相关推荐
周湘zx5 小时前
项目三:信号源的FPGA实现
fpga开发
9527华安6 小时前
FPGA多路MIPI转FPD-Link视频缩放拼接显示,基于IMX327+FPD953架构,提供2套工程源码和技术支持
fpga开发·架构·音视频
上理考研周导师6 小时前
【FPGA】ISE13.4操作手册,新建工程示例
fpga开发
技术小白爱FPGA9 小时前
Xilinx 平台 drp 动态调节 mmcm
fpga开发
北京太速科技股份有限公司12 小时前
太速科技-889-基于RFSOC XCZU49DR的 16T16R的软件无线电硬件
fpga开发
stm 学习ing13 小时前
HDLBits训练5
c语言·fpga开发·fpga·eda·hdlbits·pld·hdl语言
超能力MAX13 小时前
IIC驱动EEPROM
单片机·嵌入式硬件·fpga开发
吉大一菜鸡1 天前
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
笔记·学习·fpga开发
9527华安1 天前
FPGA实现MIPI转FPD-Link车载同轴视频传输方案,基于IMX327+FPD953架构,提供工程源码和技术支持
fpga开发·架构·mipi·imx327·fpd-link·fpd953