Skip to main content
Glama

ILA: 在 Fabric Debugger 的 Tcl Console 里执行 tcl(AI 调试控制台)

fpga_ila_console

Execute Tcl commands in the FPGA debugger console to capture ILA waveforms, read device ID, and program silicon—automating GUI interaction without manual clicks.

Instructions

无头 cdt_dbg 开不了 cable(open_cable 死锁,见 docs/ILA-FINDINGS.md);改为驱动 GUI Fabric Debugger 自带的 Tcl Console——它跑同一个 tcl 引擎且 cable 已由 GUI 打开。本工具在 GUI 所在的交互桌面(session 1)用 UIAutomation 把 tcl 打进 Console 并回读 transcript 增量,纯 AI 驱动、零人工点按。本机/远程皆可:本机(MCP 即跑在用户 session 1)直驱,远程经 SSH host 跳 session 1。可跑任意 dbg_* 命令(读 IDCODE/ADC、抓波 dbg_fla_*、import fic、program 等)。前提:目标桌面上 Fabric Debugger GUI 已打开并连好工程。写器件类命令(dbg_program 等)需 confirm:true + expectIdcode;工具先经同一 Console 只读 dbg_read_device_id 并匹配。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tclYes要在 Tcl Console 里执行的 tcl(可多条语句;工具自动包 catch 让报错回到 transcript)
hostNoGUI host id(省略=本机)。本机时 MCP 已在用户交互会话,直接驱动本地 GUI;远程填 pango-mcp.config.json 的 hosts id
userNo远程 GUI 所属交互桌面用户(默认取 host 配置的 user;本机忽略)
confirmNo含写器件命令(dbg_program 等)时必须显式 true
timeoutSecNo等待 console 执行完成的秒数,默认 60(抓波/慢 JTAG 适当加大)
expectIdcodeNo写器件命令必填:期望 IDCODE 或别名;执行前经 GUI Console 只读并匹配
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden and meets it thoroughly. It reveals the GUI-automation mechanism (UIAutomation on interactive session 1, zero human clicks, auto-catch so errors return to the transcript), the performance profile (1-2 minutes per simple command due to tab switching and segmented transcript reads), the local/remote execution paths, and the safety behavior for write-device commands (confirm=true plus a pre-execution read-only IDCODE match via expectIdcode). No annotation contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a long single paragraph, but it is dense and every sentence earns its place: motivation, mechanism, local/remote variants, command scope, prerequisites, write-command safety gating, and performance warning follow in a logical order. It is front-loaded with the most decision-relevant facts (what it is, why GUI is required, safety gating) and contains no redundant filler, though light segmentation would improve scannability for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 6-parameter tool with no annotations and no output schema, the description covers preconditions, mechanism, scope, safety gating, error behavior (catch), and performance expectations comprehensively. The main gaps are that the return value is only implied (reads back transcript increments) rather than stated as a concrete output an agent can rely on, and failure behavior when the GUI is absent is not described. These are minor relative to the overall coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the per-parameter schema already documents tcl catch-wrapping, host/user routing for local vs. remote, confirm gating, timeoutSec defaults, and the expectIdcode read-only matching step. The description adds some meaningful context beyond the schema, mainly the concrete 1-2 minute latency estimate that explains the timeoutSec rationale, but it largely restates the schema's safety rules rather than adding new parameter-level semantics, so it does not exceed the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb-resource-mechanism: it type Tcl commands into the GUI Fabric Debugger's Tcl Console via UIAutomation, running arbitrary dbg_* commands (IDCODE/ADC, dbg_fla_* capture, import fic, program). It also distinguishes itself by explaining why the headless cdt_dbg path deadlocks (open_cable) and by routing long captures to fpga_ila_capture. An agent can identify exactly what this tool does and how it differs from the ILA sibling cluster without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use context: the Fabric Debugger GUI must already be open and connected to the project on the target desktop, since the cable is held by the GUI. It gives a concrete when-not-to-use rule (long captures / slow JTAG → use fpga_ila_capture or the low-level driver), explains why the headless alternative is not viable, and documents local vs. remote host determination. This is complete routing guidance, not a vague hint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Renkos1/pango-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server