Skill 依赖关系与数据流向
Forenyx 平台的各个 Skill 遵循明确的输入输出契约。上游 Skill 产生的配置文件或代码产物,为下游 Skill 的执行提供数据输入。
1. 全局依赖拓扑
下图描述了芯片验证全流程中,各个 Skill 的数据流动与依赖拓扑:
2. Skill 输入输出契约
| Skill 名称 | 前置依赖 Skill | 输入文件 / 数据 | 输出产物 |
|---|---|---|---|
ic-docx2md | 无 | $0 输入 .docx$1 输出 .md | .md 文档 + 提取的图片目录 |
ic-audit-spec | ic-docx2md | $0 Design Spec .md$1 寄存器 .xml(IP-XACT) | FSM 逻辑审查报告 .mdSpec 质量审查报告 .md |
ic-audit-prd-spec | ic-docx2md | $0 寄存器 .xml$1 Design Spec .md$2 PRD .yaml$3 输出路径(选填) | spec_review_result.md |
ic-audit-soc-spec | ic-docx2md | $0 SoC 规格说明书 .md$1 芯片寄存器描述 .svd/.xml(选填)$2 报告输出目录(选填) | IP 级 / 连接级 / 系统级三份 SoC Spec 质量审查报告 .md |
ic-audit-soc-prd-spec | ic-docx2md | $0 SoC 集成 Spec .md$1 SoC PRD .yaml$2 芯片寄存器描述(选填)$3 输出路径(选填) | soc_review_result.md |
ic-audit-design-auto | ic-docx2md | $0 Design Spec .md$1 寄存器 .xml$2 PRD .yaml$3 报告输出路径(选填) | 编排 ic-audit-prd-spec + ic-audit-spec分阶段审查报告(每阶段暂停待确认) |
ic-gen-hal | ic-docx2md | $0 Design Spec .md$1 寄存器 .xml(选填)$2 IP 模块名$3 输出路径(选填) | {IP}_hal.md |
uvm-testplan-gen-feature | ic-docx2md | $0 寄存器 .xml$1 IP 设计文档 .md$2 输出路径(选填) | uvm_feature_report.md |
uvm-testplan-gen-testplan | uvm-testplan-gen-feature | $0 功能点报告 .md$1 设计规格 .md$2 设计源码 RTL/Chisel(选填)$3 输出路径(选填) | uvm_testplan.md |
uvm-testplan-auto | ic-docx2md | $0 寄存器 .xml$1 IP 设计文档 .md$2 设计源码 RTL/Chisel(选填)$3/$4 功能点/测试计划输出路径(选填) | 编排 gen-feature + gen-testplanuvm_feature_report.md + uvm_testplan.md |
uvm-env-create | 无 | $0 IP_NAME$1 TC_NAME$2 WORK_DIR$3 寄存器 .xml | UVM 骨架目录 + 冒烟测试 |
uvm-env-cfg | uvm-env-create | 无位置参数(编辑 *_env.sv / *_env_cfg.sv 时上下文触发) | {ip}_env.sv, {ip}_env_cfg.sv |
uvm-env-config-db | uvm-env-create | 无位置参数(编辑 *_config_db.sv 时上下文触发) | {ip}_config_db.sv(虚接口与配置对象 uvm_config_db::set 注入) |
uvm-env-inf-connect | uvm-env-create | $0 IP_NAME$1 WORK_DIR$2 RTL 顶层 .v/.sv$3 VIP_DIR(选填) | {ip}_inf_connect.sv |
uvm-env-impl | uvm-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-sva | uvm-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.svsva_index.md, signal_manifest.json |
uvm-env-base-seq-gen | uvm-env-create | 无位置参数(按 IP 名与协议触发) | {ip}_base_sequence.sv{ip}_smoke_sequence.sv |
uvm-testcase-gen-testcase | uvm-testplan-gen-testplan | $0 WORK_DIR$1 testplan .md$2 TC_NAME(选填,缺省交互选择) | TC 类, Virtual Sequencetbench.v include 注册 |
uvm-testcase-auto | uvm-testplan-gen-testplan | $0 WORK_DIR$1 testplan .md | 编排 gen-testcase + compile-sim + debug-failure逐 TC 闭环执行 + 汇总报告 回写 testplan「生成状态」 |
uvm-testcase-compile-sim | uvm-testcase-gen-testcase | $0 WORK_DIR$1 TC 名称 | com.log / run.logPASS / FAIL 结论 |
uvm-testcase-debug-failure | uvm-testcase-compile-sim | $0 WORK_DIR$1 TC 名称 | 编译错自动修复(TC/env,≤3 轮) 仿真错输出 RCA 报告 |
uvm-testcase-wave-rca | uvm-testcase-compile-sim | $0 WORK_DIR$1 TC 名称$2 RTL 文件或目录 | 波形 RCA 根因报告 |
uvm-fsdb-wave-extract | uvm-testcase-compile-sim | $0 FSDB 路径$1 顶层 scope(选填)$2/$3 起止时间(选填)$4 信号名$5 跳变上限(选填)$6 输出路径(选填) | 信号跳变历史 JSON |
uvm-coverage-closure | uvm-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-add | uvm-coverage-closureuvm-env-impl | $0 WORK_DIR$1 testplan .md$2 RTL 目录--from-report / --categories / --spec / --max-groups(均选填) | 增量补建的 covergroup(只改 {IP}_coverage.sv)COV=1 编译通过验证 |
uvm-progress-tracker | uvm-testplan-gen-testplan | $0 阶段名称(选填,给了即 append 模式)$1 覆盖率 0-100(选填)--file / --start-time / --rpt-dir(选填) | uvm_progress.json(每 stage 含 start_time / finish_time / duration) |
uvm-progress-chart | uvm-progress-tracker | $0 阶段数据 JSON$1 输出目录$2 文件名前缀(选填) | 趋势折线图 .drawio + .png |
uvm-report-gen | uvm-coverage-closureuvm-testcase-auto | $0 WORK_DIR$1 输出 .docx--ledger DUT 缺陷记录(强烈建议)--rpt-dir / --testplan / --spec / --rtl-dir / --kb / --progress / --outline(选填) | 正式验证报告 .docx(截图留占位框)数据核对说明 + 待确认项清单 |
uvm-report-gen-qmd | 同 uvm-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。
