在 Lattice 的 Reveal Inserter 中Add Controller添加控制器和逻辑分析仪是两个功能完全不同的调试核心Debug Core用于解决不同类型的问题-10。简单来说逻辑分析仪是“看”信号的而控制器是“控”模块的。 逻辑分析仪 (Logic Analyzer)捕捉波形它就是我们通常理解的“逻辑分析仪”功能主要用来捕捉和观察 FPGA 内部的信号波形-9-10。它的核心能力是信号追踪 (Trace)你可以指定要观察的内部信号比如一个计数器或状态机的输出-1-9。触发设置 (Trigger)可以设置复杂的触发条件如信号A 5且信号B 翻转3次。当满足条件时Reveal 会捕获触发时刻前后的数据并在 Reveal Analyzer 中显示为波形方便你分析问题-1-2-9。️ 控制器 (Controller)操控和监控模块控制器主要针对更复杂的调试场景它允许你主动与FPGA内部进行交互-10。它的核心能力包括-1-9虚拟开关与LED (Virtual Switches LEDs)你可以在 Reveal Controller 的图形界面中用虚拟开关来驱动设计中的信号比如模拟按键输入或用虚拟LED来显示内部信号状态无需改动代码或外接物理设备-9-11。用户寄存器/内存访问可以通过界面直接读写FPGA内部的用户寄存器或存储器如EBR用来注入测试数据或读取中间结果-11-12。硬核IP控制可以访问和调试一些硬核IP如PLL、PCIe的内部状态寄存器-1-7-9。 核心区别一览特性逻辑分析仪 (Analyzer)控制器 (Controller)主要目的被动观测捕捉和观察信号波形主动交互控制和监控内部模块典型用途检查时序问题、分析信号变化、验证逻辑功能模拟外部输入、读写内部状态、调试复杂IP工作方式设置触发条件等待事件发生捕获数据通过图形界面直接读写寄存器或信号输出结果波形图 (Waveform)界面上的开关/指示灯状态或寄存器数据在 Reveal Inserter 中添加核心时你可以根据需求选择Add Logic Analyzer或Add Controller-10。它们通常会同时使用例如用控制器来强制触发一个条件再用逻辑分析仪去捕获相关的波形。这两个核心Logic Analyzer 和 Controller可以结合着一起调用这也是 Reveal 工具一个很实用的特性。 怎么在项目里一起使用操作上很直接。在 Reveal Inserter 中你可以在同一个调试工程里通过菜单栏的Debug Add New Core然后从子菜单中选择添加Logic Analyzer或Controller模块-12-3。每个工程最多可以添加15个这样的调试模块它们可以按需组合-4-6-12。 结合使用的典型场景把它们结合起来能发挥“112”的效果。一个典型的调试场景是先用 Controller 模块“制造”条件比如你想调试某个只有在特定寄存器写入特定值后才会出现的逻辑错误。你可以用 Controller 模块的虚拟开关或寄存器读写功能通过图形界面直接向 FPGA 内部的该寄存器写入特定值强制进入调试状态-3-4。再用 Logic Analyzer 模块“捕捉”波形在触发条件达成后用 Logic Analyzer 模块去精确地捕获相关信号的波形观察在特定输入下设计内部各节点的行为是否符合预期-3-4。这样Controller 提供了主动操控的能力Logic Analyzer 则提供了被动观测的手段两者配合可以大大提升调试效率。 调试时如何使用在工程中同时添加这两种核心并重新生成比特流文件下载到 FPGA 后就可以启动Reveal Analyzer/Controller工具了-1-2。这个统一的图形界面会列出你添加的所有调试核心可能显示为多个 Core你可以选择同时运行它们也可以单独控制其中一个-9实现组合调试。