FPGA Debug:PCIE XDMA没有Link up(驱动检测不到xilinx PCIE设备)使用LTSSM定位问题

FPGA Debug:PCIE XDMA没有Link up(驱动检测不到xilinx PCIE设备)使用LTSSM定位问题

问题现象:

与驱动联调:驱动无法扫描到Xilinx的PCIE设备

通过ila抓取pcie_link_up信号:发现link up一直为低

问题分析:

        出现这种情况,在FPGA中搭建测试环境,使用XDMA+BRAM的形式,减少其它模块的影响,框架如下:

1 检查PCIE的时钟

时钟,必须使用原理图上的GT Ref 差分时钟,通过IBUFDSGTE转为单端时钟

2 检查PCIE 复位

复位:PCIE复位信号有要求--上电后,PCIE_RESTN信号需在电源稳定后延迟一段时间再释放,通常是100ms以上

而这100ms的时间,系统主要做以下的事情:

  • 电源稳定时间
  • 参考时钟稳定时间
  • PCIe IP核的复位和初始化时间
  • 链路训练时间

// 典型的100ms时间分配:
0-10ms   : 电源稳定 (Power Stable)
10-20ms  : 参考时钟稳定 (Refclk Stable)  
20-30ms  : 复位释放和PLL锁定 (Reset Release & PLL Lock)
30-50ms  : 物理层初始化 (PHY Initialization)
50-70ms  : 链路训练 (Link Training)
70-100ms : 设备配置 (Device Configuration)

        所以为了避免这个问题,建议在程序中添加这么一段复位控制,但是有的时候你不添加也没有关系,因为有的时候硬件的复位时序可以满足这个100ms的要求,但是保险起见还是加上

3 LANE检查

      检查你的LANE约束,一般XDMA IP核生成的时候会自带一个约束文件,约束每个LANE的对外接口,但我们也可以自己约束,保证端口与原理图匹配即可。

这些确认无误,还是无法link up的,先将PCIE降速为1.0 X1,看看情况

4 PCIE降速

如果还是不行,那我们需要检测pcie的相关的几个状态。

5 具体问题定位(PCIE LTSSM状态)

这里我们需要查看PCIE的LTSSM状态机,那什么是LTSSM状态机呢?

      是一种常用于PCI Express(PCIe)接口的状态机,它可以控制PCIe总线的传输流程。LTSSM由多个状态组成,每个状态都代表了不同的总线传输阶段。

一般大家会找不到,按照如下的方式

5.1 给LTSSM信号添加debug

首先:勾选配置界面的Use Class Code Lookup Assistant这个选项

此时还是无法在端口显示出LTSSM信号,不要着急,按照你的流程生成IP核,执行完Run Syn操作,然后点击Set up debug

在这里搜索LTSSM的“小写”,就能找到ltssm_state的信号,将其添加到debug里面正常的综合实现就可以了。

5.2 LTSSM状态说明

       LTSSM状态机根据厂商不同会有微小的差异,我们使用的是瑞芯微的,我的状态卡在了08即Lane顺序检测。意味着是lane的问题。


那我们通过这个方式监控的除了LTSSM信号以外,还有几个关键信号

5.3 其余关键信号说明

phy_rdy_n:物理层就绪,一种存在性检查,0:表示物理层就绪  1:表示异常

                     时钟是否存在?

                     复位序列是否正常?

                     PLL是否正常锁定?

                     电源是否power good

cfg_cuurent_speed_o:协商的速率,PCIE1.0/2.0/3.0 分别对应1/2/3 

link_width:协商的宽度

6 故障点说明及解决

我的故障就是:

phy_rdy_n为0,说明物理层就绪,时钟和复位是正常的

LTSSM卡在了0x08,且Link_width为0,说明是LANE的异常导致的。

        重新检查电路,发现主机的TX端,没有放置电容,而使用的是电阻,导致的AC耦合问题,将电阻更换为电容,链路问题解决

可以看到Link up拉起,驱动可以正常检测到PCIE设备。

Read more

2026 年最值得关注的开源低代码 / 零代码平台推荐

2026 年最值得关注的开源低代码 / 零代码平台推荐

无论是零代码小白还是资深开发者,都能在这些平台上找到适合自己的解决方案。今天,我们就来盘点一下 2026 年最值得关注的开源低代码 / 零代码平台,帮助您找到最适合的工具。 一、敲敲云 - 永久免费开源零代码平台 2026 年 1 月 12 日,敲敲云全新版本 v2.3.0 正式发布! 这一版本最大的亮点是正式宣布永久免费开放,彻底打破了传统零代码平台的用户数、应用数、表单数等多重限制,实现真正的零门槛、零成本使用。 敲敲云专注于为企业快速构建应用和工作流,是一款强大且易用的零代码平台。用户无需编写任何代码,即可通过丰富的组件库轻松创建各类应用,真正做到了 "人人都是开发者"。 产品特点: * 免费零代码使用,快速上手,无需开发背景 * 丰富的组件库和模板,满足多样化应用需求 * 可视化流程设计器,支持拖放式工作流设计 * 强大的工作流引擎,支持复杂流程逻辑与条件判断 * 优秀的团队协作功能,支持资源共享和协同开发 * 数据收集能力强,

OpenClaw 机器人抓取平台搭建全流程详解(万字长文解析)

OpenClaw 机器人抓取平台搭建全流程详解(万字长文解析)

前言 OpenClaw 是一个开源的机器人抓取仿真平台,基于 ROS (Robot Operating System) 和 Gazebo 仿真环境。本文将详细讲解如何在 Ubuntu 系统上完整搭建 OpenClaw 开发环境,并进行基础的抓取仿真测试。 一、环境准备与系统配置 1.1 硬件和软件要求 在开始搭建之前,需要确保您的系统满足以下要求: 硬件配置: * CPU:Intel i5 或同等性能以上 * 内存:至少 8GB(推荐 16GB) * 硬盘:至少 50GB 可用空间 * 显卡:支持 OpenGL 3.3+ 的独立显卡(推荐) 软件环境: * 操作系统:Ubuntu 20.04

华为人工智能HCIP-AI Solution Architect H13-323题库(26年最新,带解析知识点)

华为人工智能HCIP-AI Solution Architect H13-323题库(26年最新,带解析知识点)

刚考完HCIP-AI Solution Architect H13-323,整理的题库给大家参考学习。完整版题库已经发在题主小程序上了,需要的同学可以去绿泡泡上找“题主”小程序。 以下哪个不是MindSpore核心架构的特点? A、自动微分 B、自动调优 C、自动编码 D、自动并行 答案:C 解析:MindSpore核心架构以自动微分、自动并行和自动调优为主要特点,支持端边云全场景的AI开发。“自动编码”并非其核心架构的特点。 标签:MindSpore,自动微分,自动并行,自动调优 如果你想使用 Hugging Face Transformers 库中的预训练模型进行 DeepSpeed 训练,请对以下步骤进行排序,正确的是哪一项? 步骤: 1. 创建一个TrainingArguments对象,并在其中指定包括DeepSpeed配置在内的训练参数。 2. 创建Trainer对象。 3. 加载预训练模型。 4. 传递模型和训练参数,

从零开始“养龙虾”:OpenClaw 本地极简部署与 QQ 机器人接入全保姆级教程

从零开始“养龙虾”:OpenClaw 本地极简部署与 QQ 机器人接入全保姆级教程

文章目录 * 引言 * 什么是 OpenClaw? * 为什么选择 OpenClaw? * 一、基础环境准备 * 1. 安装 Node.js (v22及以上) * 2.安装 Git * 3. 解决 npm 被拦截(没报错跳过) * 二、一键部署与唤醒“龙虾” * 1.全自动拉取与组装 * 2.醒龙虾与配置“大脑” * 三、接入官方 QQ 机器人(可选) * 1. 领取官方机器人的“身份证” * 2. 本地安装专属通信插件 * 3. 结果展示 * 总结 引言 什么是 OpenClaw? 最近开源界有一只“红皮小龙虾”非常火,它就是 OpenClaw。