Skip to content

Skill 依赖关系与数据流向

Forenyx 平台的各个 Skill 遵循明确的输入输出契约。上游 Skill 产生的配置文件或代码产物,为下游 Skill 的执行提供数据输入。


1. 全局依赖拓扑

下图描述了芯片验证全流程中,各个 Skill 的数据流动与依赖拓扑:


2. Skill 输入输出契约

Skill 名称前置依赖 Skill输入文件 / 数据输出产物
ic-docx2md$0 输入 .docx
$1 输出 .md
.md 文档 + 提取的图片目录
ic-audit-specic-docx2md$0 Design Spec .md
$1 寄存器 .xml(IP-XACT)
FSM 逻辑审查报告 .md
Spec 质量审查报告 .md
ic-audit-prd-specic-docx2md$0 寄存器 .xml
$1 Design Spec .md
$2 PRD .yaml
$3 输出路径(选填)
spec_review_result.md
ic-audit-soc-specic-docx2md$0 SoC 规格说明书 .md
$1 芯片寄存器描述 .svd/.xml(选填)
$2 报告输出目录(选填)
IP 级 / 连接级 / 系统级三份 SoC Spec 质量审查报告 .md
ic-audit-soc-prd-specic-docx2md$0 SoC 集成 Spec .md
$1 SoC PRD .yaml
$2 芯片寄存器描述(选填)
$3 输出路径(选填)
soc_review_result.md
ic-audit-design-autoic-docx2md$0 Design Spec .md
$1 寄存器 .xml
$2 PRD .yaml
$3 报告输出路径(选填)
编排 ic-audit-prd-spec + ic-audit-spec
分阶段审查报告(每阶段暂停待确认)
ic-gen-halic-docx2md$0 Design Spec .md
$1 寄存器 .xml(选填)
$2 IP 模块名
$3 输出路径(选填)
{IP}_hal.md
uvm-testplan-gen-featureic-docx2md$0 寄存器 .xml
$1 IP 设计文档 .md
$2 输出路径(选填)
uvm_feature_report.md
uvm-testplan-gen-testplanuvm-testplan-gen-feature$0 功能点报告 .md
$1 设计规格 .md
$2 设计源码 RTL/Chisel(选填)
$3 输出路径(选填)
uvm_testplan.md
uvm-testplan-autoic-docx2md$0 寄存器 .xml
$1 IP 设计文档 .md
$2 设计源码 RTL/Chisel(选填)
$3/$4 功能点/测试计划输出路径(选填)
编排 gen-feature + gen-testplan
uvm_feature_report.md + uvm_testplan.md
uvm-env-create$0 IP_NAME
$1 TC_NAME
$2 WORK_DIR
$3 寄存器 .xml
UVM 骨架目录 + 冒烟测试
uvm-env-cfguvm-env-create无位置参数(编辑 *_env.sv / *_env_cfg.sv 时上下文触发){ip}_env.sv, {ip}_env_cfg.sv
uvm-env-config-dbuvm-env-create无位置参数(编辑 *_config_db.sv 时上下文触发){ip}_config_db.sv(虚接口与配置对象 uvm_config_db::set 注入)
uvm-env-inf-connectuvm-env-create$0 IP_NAME
$1 WORK_DIR
$2 RTL 顶层 .v/.sv
$3 VIP_DIR(选填)
{ip}_inf_connect.sv
uvm-env-impluvm-env-create$0 IP_NAME
$1 WORK_DIR
$2 RTL 顶层 .v/.sv
$3 Spec .md
$4 testplan .md
$5 VIP_DIR(选填)
Driver / Monitor / Scoreboard / Coverage 实现
uvm-env-svauvm-testplan-gen-testplan$0 IP_NAME
$1 WORK_DIR
$2 RTL 顶层 .v/.sv
$3 testplan .md
$4 Spec .md(选填)
$5 FSM 覆盖率目录(选填)
sim/sva/*.sv, sva_bind.sv
sva_index.md, signal_manifest.json
uvm-env-base-seq-genuvm-env-create无位置参数(按 IP 名与协议触发){ip}_base_sequence.sv
{ip}_smoke_sequence.sv
uvm-testcase-gen-testcaseuvm-testplan-gen-testplan$0 WORK_DIR
$1 testplan .md
$2 TC_NAME(选填,缺省交互选择)
TC 类, Virtual Sequence
tbench.v include 注册
uvm-testcase-autouvm-testplan-gen-testplan$0 WORK_DIR
$1 testplan .md
编排 gen-testcase + compile-sim + debug-failure
逐 TC 闭环执行 + 汇总报告
回写 testplan「生成状态」
uvm-testcase-compile-simuvm-testcase-gen-testcase$0 WORK_DIR
$1 TC 名称
com.log / run.log
PASS / FAIL 结论
uvm-testcase-debug-failureuvm-testcase-compile-sim$0 WORK_DIR
$1 TC 名称
编译错自动修复(TC/env,≤3 轮)
仿真错输出 RCA 报告
uvm-testcase-wave-rcauvm-testcase-compile-sim$0 WORK_DIR
$1 TC 名称
$2 RTL 文件或目录
波形 RCA 根因报告
uvm-fsdb-wave-extractuvm-testcase-compile-sim$0 FSDB 路径
$1 顶层 scope(选填)
$2/$3 起止时间(选填)
$4 信号名
$5 跳变上限(选填)
$6 输出路径(选填)
信号跳变历史 JSON
uvm-coverage-closureuvm-testcase-compile-sim$0 WORK_DIR
$1 testplan .md
$2 RTL 目录
--spec / --extra-points / --target-func / --target-code / --exclude-modules(均选填)
覆盖率缺口报告(含两张人工裁决表:疑似 Dead Code、覆盖模型补建)
testplan 追加 [coverage-driven] 条目
覆盖模型补建清单
uvm-env-coverage-adduvm-coverage-closure
uvm-env-impl
$0 WORK_DIR
$1 testplan .md
$2 RTL 目录
--from-report / --categories / --spec / --max-groups(均选填)
增量补建的 covergroup(只改 {IP}_coverage.sv
COV=1 编译通过验证
uvm-progress-trackeruvm-testplan-gen-testplan$0 阶段名称(选填,给了即 append 模式)
$1 覆盖率 0-100(选填)
--file / --start-time / --rpt-dir(选填)
uvm_progress.json(每 stage 含 start_time / finish_time / duration
uvm-progress-chartuvm-progress-tracker$0 阶段数据 JSON
$1 输出目录
$2 文件名前缀(选填)
趋势折线图 .drawio + .png
uvm-report-genuvm-coverage-closure
uvm-testcase-auto
$0 WORK_DIR
$1 输出 .docx
--ledger DUT 缺陷记录(强烈建议)
--rpt-dir / --testplan / --spec / --rtl-dir / --kb / --progress / --outline(选填)
正式验证报告 .docx(截图留占位框)
数据核对说明 + 待确认项清单
uvm-report-gen-qmduvm-report-gen$0 WORK_DIR
$1 输出目录
--formats / --assets-dir / --reference-docx
其余参数与 uvm-report-gen 相同
.qmd 源文件 + .docx + .html(+ .pdf
缺图清单 + 数据核对说明 + 待确认项

3. 核心数据传递机制

3.1 测试计划属性标记

uvm_testplan.md 包含功能点与其校验手段属性:

  • [CSR]:由 UVM RAL 读写测试覆盖;
  • [Scoreboard]:由 Scoreboard 执行期望值与实际值比对;
  • [SVA-cover]:由 SVA Cover 模块进行覆盖率统计;
  • [SVA-off]:供 uvm-testcase-gen-testcase 生成 $assertoff() 抑制控制。

3.2 接口与数据流契约

  • Monitor ➔ Scoreboard:Monitor 采样总线事务通过 Analysis Port 广播至 Scoreboard 比对 FIFO;
  • Sequence ➔ Driver:Sequence 产生 Item 经 Sequencer 传送至 Driver 驱动接口;
  • SVA ➔ DUT:SVA Checker 模块通过 SystemVerilog bind 挂载到 DUT 内部信号。

4. 故障排查

4.1 缺少 uvm_testplan.md

当跳过测试计划直接生成用例时,系统会基于接口定义生成通用基础用例,但无法针对特定功能点进行针对性配置。

4.2 SVA 绑定与层次结构错误

若仿真编译提示断言层次不可用,需确认:

  • 是否已运行 uvm-env-sva 产生 sva_bind.sv
  • sva_bind.sv 是否已正确加入编译 filelist.f

基于 MIT 许可发布