get_critical_warnings
Extracts and categorizes CRITICAL WARNING and ERROR entries from Vivado run logs, providing diagnostic reports with fix suggestions and snapshot comparisons.
Instructions
提取并分类 CRITICAL WARNING / ERROR / 非标错误,统一失败诊断入口。
解析指定 run 的 runme.log,按 warning ID 聚合分类,返回中文诊断报告。 包含已知 warning 的分类标签和修复建议。
三种诊断模式根据 run_name 自动选择:
synth_*/impl_*等综合实现 run:走原流程(runme.log解析 ERROR/CRITICAL WARNING)。额外:errors=0 且 cw=0 但 STATUS 含 ERROR 时, 自动 tailrunme.log最后 N 行扫非标错误关键词(TclStackFree / segfault / FATAL 等不带 ERROR: 前缀的内部异常),解决"messageDb 显示干净但 run 实际 崩了"的盲区。sim_*simulation fileset:改去 tail<proj>.sim/<sim_fs>/*/xsim/*.log(Vivado launch_simulation 的真错误位置,不在 runme.log),扫非标 关键词,自动暴露 xvlog 未找到等子进程错误。任何 run:无论结果如何,都会静默把本次 CW 列表写快照(存到项目目录
.vmcp/下, 或 fallback 到~/.claude/vivado-mcp/)。启用compare_with_last=True时, 读上次快照与本次对比,报告消除/新增/仍存在的条目。(sim 模式不写快照)
Args:
run_name: run / fileset 名称(如 synth_1 / impl_1 / sim_1),
默认 impl_1。sim_* 走 simulation 日志诊断路径。
compare_with_last: True 时追加一段与上次快照的差分报告(仅对综合/实现有效)。
tail_n: 非标错误扫描时每个日志 tail 的末尾行数,默认 50,范围 1~500。
仿真模式适用于每个 xsim 子日志。
session_id: 目标会话 ID。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tail_n | No | ||
| run_name | No | impl_1 | |
| session_id | No | default | |
| compare_with_last | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |