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 执行编译与无头仿真,解析日志并输出结构化的
PASS或FAIL结果。 - 用法:
/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>
