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

OpenClaw:一只“小龙虾”如何用三个月掀翻AI圈,让黄仁勋惊呼“超越Linux”?

OpenClaw:一只“小龙虾”如何用三个月掀翻AI圈,让黄仁勋惊呼“超越Linux”?

目录 一、发展历史:一个“退休”程序员的10天“玩票”,如何引爆全球? 1. 故事的起点:奥地利“闲人”的10天代码狂欢 2. 改名风波:被Anthropic“追杀”的龙虾 3. 封神时刻:25万星标,超越Linux 4. 大佬“接盘”:OpenAI的橄榄枝 二、OpenClaw是什么?——给AI装上“手”和“眼睛” 核心定义:从“嘴”到“手”的进化 四层架构:一只龙虾的解剖图 它能做什么?——那些让人惊叹的实战案例 三、竞品分析:当“龙虾”火了,模仿者们来了 1. OpenClaw:

By Ne0inhk
AI入门系列:AI入门者的困惑:常见术语解释与误区澄清

AI入门系列:AI入门者的困惑:常见术语解释与误区澄清

引言 人工智能领域充满了令人困惑的专业术语和概念误区。对于刚接触AI的新手而言,机器学习、深度学习、神经网络这些名词常常让人一头雾水。很多初学者会将AI简单地等同于机器人,或者误以为AI已经具备人类水平的思维能力。实际上,AI是一个包含多个子领域的广阔学科,每个术语都有其特定的含义和应用范围。理解这些基础概念的区别,避免常见的认知误区,是踏入AI世界的第一步。本文将系统梳理AI领域的核心术语,澄清普遍存在的误解,帮助初学者建立正确的认知框架,为后续的深入学习打下坚实基础。 AI到底是什么?从科幻到现实的转变 很多人一听到AI,就想到《终结者》里的天网或者《黑客帝国》里的矩阵。但实际上,AI远比这些科幻场景要"接地气"得多。 想象一下,当你对手机说"嘿,Siri,明天天气怎么样?",手机能够理解你的话,查找天气信息,并用语音回答你。这就是AI在工作,它包含了语音识别、自然语言处理、信息检索等多个技术。 AI的本质是让机器完成那些过去只有人类才能完成的任务。但这并不意味着机器要变得像人一样思考,而是让机器在特定任务上表现得像人一样聪明。 误区澄清:

By Ne0inhk

最新龙虾AI(OpenClaw v2026.3.8)全平台部署教程|零报错、高安全,新手也能10分钟上手

最近OpenClaw龙虾AI爆火,作为开源可私有化部署的AI智能体,它区别于普通聊天AI,能“动手”完成跨应用自动化任务——整理微信消息、定时提醒、浏览器自动化等,实用性拉满。但不少开发者反馈,网上教程多为旧版本,且忽略了工信部最新安全预警,部署时频繁出现权限报错、闪退、盗版捆绑等问题。 本文基于2026年3月10日官方最新稳定版(v2026.3.8),结合Windows、macOS、Linux、手机端(安卓/鸿蒙)四大平台,详细拆解“新手一键部署”“进阶自定义部署”“Ollama本地模型对接”全流程,同步规避工信部预警提到的安全风险,全程复制命令即可操作,新手也能零失败完成部署。 一、部署前必看:核心认知+环境准备(避坑第一步) 1.1 龙虾AI核心定位(必懂) OpenClaw龙虾AI是开源免费的本地AI执行网关,核心优势是“数据本地存储、全平台兼容、自动化执行”,无需上传数据到第三方平台,

By Ne0inhk
别让 AI 越权!OpenClaw 权限配置完全指南

别让 AI 越权!OpenClaw 权限配置完全指南

一、限制只能聊天(纯对话模式) 适用场景:只想让 AI 帮你思考、写文案、做分析,不需要它执行任何文件操作或命令。 从 2026.3.2 版本开始,OpenClaw 默认已经收紧了权限,但如果你想确保它彻底无法调用工具,可以这样配置: 核心配置命令: bash openclaw config set tools.profile messaging tools.profile 的四种模式对比: 表格 模式能力范围适用场景messaging纯对话,禁用所有工具(文件读写、命令执行、技能调用等)只想聊天、咨询的场景minimal极简工具集(如只允许网页搜索)需要查信息但不执行操作default基础工具集(文件读写、部分命令)日常轻度使用full完整工具集(包括高风险操作)开发、自动化等场景 验证配置: bash openclaw config

By Ne0inhk