Skill 依赖关系与数据流向
Forenyx 平台的各个 Skill 遵循明确的输入输出契约。上游 Skill 产生的配置文件或代码产物,为下游 Skill 的执行提供数据输入。
1. 全局依赖拓扑
下图描述了芯片验证全流程中,各个 Skill 的数据流动与依赖拓扑:
2. Skill 输入输出契约
| Skill 名称 | 前置依赖 Skill | 输入文件 / 数据 | 输出产物 |
|---|---|---|---|
ic-docx2md | 无 | .docx 文档 | spec.md, 图片目录 |
ic-audit-spec | ic-docx2md | spec.md | spec_audit_report.md |
ic-audit-prd-spec | ic-docx2md | prd.md, spec.md | prd_consistency_matrix.md |
ic-gen-hal | ic-docx2md | spec.md, 寄存器 .xml | hal_csr_map.h 说明文档 |
uvm-testplan-gen-feature | ic-docx2md | spec.md, 寄存器 .xml | 功能点报告 .md |
uvm-testplan-gen-testplan | uvm-testplan-gen-feature | 已审核功能点 .md | uvm_testplan.md |
uvm-env-create | 无 | IP 名称、接口类型 | UVM 骨架与冒烟测试 |
uvm-env-cfg | uvm-env-create | 接口与配置参数 | *_config_db.sv |
uvm-env-inf-connect | uvm-env-create | RTL 端口列表 | {ip}_inf_connect.sv |
uvm-env-impl | uvm-env-create | RTL, Spec, VIP | Driver/Monitor/Scoreboard |
uvm-env-sva | uvm-testplan-gen-testplan | testplan.md, RTL | sva_checker.sv, sva_bind.sv |
uvm-env-base-seq-gen | uvm-env-create | Sequencer, Item 定义 | base_sequence.sv, smoke_sequence.sv |
uvm-testcase-gen-testcase | uvm-testplan-gen-testplan | testplan.md, [TC_NAME] | TC 类, Virtual Sequence |
uvm-testcase-compile-sim | uvm-testcase-gen-testcase | WORK_DIR, [TC_NAME] | sim.log, wave.fsdb |
uvm-testcase-debug-failure | uvm-testcase-compile-sim | com.log / run.log | 代码修复或 RCA 报告 |
uvm-testcase-wave-rca | uvm-testcase-compile-sim | wave.fsdb, run.log | 波形 RCA 根因报告 |
uvm-fsdb-wave-extract | uvm-testcase-compile-sim | wave.fsdb, 信号名 | 信号跳变 JSON |
uvm-coverage-closure | uvm-testcase-compile-sim | VCS 覆盖率报告 | 缺口分析与 testplan 补充 |
uvm-progress-tracker | uvm-testplan-gen-testplan | 回归测试日志 | verification_status.json |
uvm-progress-chart | uvm-progress-tracker | 进度 JSON | 趋势折线图 (.drawio + .png) |
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。
