<< All versions
Skill v1.0.1
currentAutomated scan100/100xs-mlvp/ucagent/sva-opt
+2 new
──Details
PublishedJuly 23, 2026 at 04:08 PM
Content Hashsha256:76501f063771e4cd...
Git SHA0c4bca366387
Bump Typepatch
──Files
Files (1 file, 2.5 KB)
SKILL.md2.5 KBactive
SKILL.md · 65 lines · 2.5 KB
version: "1.0.1" name: sva-opt description: 指导解释覆盖率报告并优化未覆盖死角的技能
形式化覆盖率优化工作流 (Coverage Optimization)
本技能指导如何根据覆盖率检查结果对断言集合进行增补,实现 COI 覆盖闭环。
本阶段的主要写入口是 .formal_records.yaml.spec 与对应的 sva_body 字段。
COI 概念、fanin.rep 格式、信号映射表参见 `Guide_Doc/coi_coverage.md`SVA 编码规范参见 `Guide_Doc/sva_property.md`
执行说明:
- 在本工作流中,请优先通过
RunSkillScript调用技能脚本 - 不要假设宿主
python3环境具备所有依赖 checker.sv是派生产物,新增断言后应以 full refresh 生成结果为准
步骤
1. 读取 Checker 反馈
调用 Check → 读取 Checker 返回的 COI 覆盖率数据和未覆盖信号列表。 Formal 工具的执行时间可能很长,尤其在多时钟域和大状态空间设计上,这是正常现象。不要因为短时间没有输出就频繁中断或重试,优先等待更长时间的结果再做判断。
2. 分析每个未覆盖信号
对照 Guide_Doc/coi_coverage.md 中的信号→断言映射表,判断每个未覆盖信号:
- 是有效业务逻辑 → 需要补断言
- 是不可达死逻辑 → 标记 UNREACHABLE
3. 补充断言(先更新 YAML,再自动同步)
- 使用
update_spec.py在.formal_records.yaml中新增CK-XXX检测点条目。 - 使用
update_sva_body.py为新检测点编写 SVA 代码实现:
bash
python3 .ucagent/skills/formal/sva-gen/scripts/update_sva_body.py <CK-ID> "<SVA_CODE_BODY>"
- 调用
ucagent.checkers.formal.PropertyStructureChecker。系统会自动根据最新的 YAML 渲染并覆盖checker.sv,确保新断言生效。
⚠️ 必须用 assert 验证行为正确性,不能仅靠 cover 刷 COI
4. 重跑验证
使用 RunSkillScript 工具执行以下命令重跑验证,并查看新的 COI:
bash
python3 .ucagent/skills/formal/sva-opt/scripts/run_formal_verification.py -timeout 3600
如果设计状态空间明显较大,可以将 -timeout 继续提高到 7200 或更长。
5. 完成后调用 Complete
核心规则
- 每个未覆盖信号至少需要一个 assert,仅 cover 引用不够
- 补断言时必须先更新
.formal_records.yaml,不要直接编辑 checker.sv - UNREACHABLE 必须满足严格条件才能标记(参见
Guide_Doc/coi_coverage.md)