Skip to content

4. 用例生成、仿真与 RCA 调试排查工作流

本工作流涵盖序列与用例代码自动产生、VCS 仿真运行、阻断级 Lint 修复、仿真失败日志诊断(RCA)以及 FSDB 二进制波形的数据抽提与波形根因定位。


编排工作流:uvm-testcase-auto

uvm-testcase-auto 是用例与仿真阶段的完整流程编排技能。该技能禁止同时生成多个测试用例,强制逐个 TC 依次进行:生成测试代码 ➔ 编译仿真 ➔ 自动修复,实时输出每个 TC 的运行状态,并最终汇总生成完整测试报告。


Skill 详解

1. uvm-env-base-seq-gen:Base Sequence 与 Smoke Sequence 生成

  • 功能说明:为指定的 IP 生成 UVM UVC 的 Base Sequence ({ip_name}_base_sequence) 和 Smoke Sequence ({ip_name}_smoke_sequence) 文件。

2. uvm-testcase-gen-testcase:测试用例生成与 SVA 抑制

  • 功能说明:根据测试计划为单个 UVM testcase 生成对应的 TC 类与 Virtual Sequence 文件,自动将头文件注册进 tbench.v`include 中;按检查点要求增量更新 Scoreboard;根据测试点中的 [SVA-cover] / [SVA-off] 标签查询 sva_index.md,在 Virtual Sequence 中决定是否写入 $assertoff / $asserton 控制。
  • 用法/uvm-testcase-gen-testcase <WORK_DIR> <TESTPLAN_MD> [TC_NAME]

3. uvm-testcase-compile-sim:VCS 编译与仿真执行

  • 功能说明:在仿真运行前,自动修复该 TC 自身文件中的阻断级 Lint 错误,随后调用 VCS 执行编译与无头仿真,解析日志并输出结构化的 PASSFAIL 结果。
  • 用法/uvm-testcase-compile-sim <WORK_DIR> <TC>

4. uvm-testcase-debug-failure:仿真失败日志 RCA 诊断

  • 功能说明:诊断 UVM 编译或仿真失败原因,定位层次:编译错误 AI 自动修复(仅限 TC/env 文件,最多 3 轮);仿真错误输出结构化根因分析报告(RCA Report),不修改源文件与 RTL。
  • 用法/uvm-testcase-debug-failure <WORK_DIR> <TC>

5. uvm-testcase-wave-rca:FSDB 波形迭代式根因分析

  • 功能说明:当测试用例仿真失败(如超时挂死、Scoreboard 比较错、Assertion 触发)时,从 FSDB 波形中进行“日志优先 ➔ 波形取证 ➔ RTL 下钻”链式迭代分析,输出结构化根因报告。不修改 RTL、TB 或 VIP。
  • 用法/uvm-testcase-wave-rca <WORK_DIR> <TC> <RTL>

6. uvm-fsdb-wave-extract:FSDB 波形跳变历史提取

  • 功能说明:调用 Verdi Python NPI 接口,从 FSDB 二进制波形中按需提取指定信号在特定时间窗口内的跳变历史数据,输出紧凑的 JSON 数据结构,供 AI 诊断做“波形取证”。
  • 用法/uvm-fsdb-wave-extract <FSDB> <TOP> <START> <END> <SIGNALS> <MAX_CHANGES> <OUTPUT>

基于 MIT 许可发布