| name | dv_skills |
| version | 1.0.0 |
| description | 芯片前端验证工程师技能库。面向芯片前端验证(RTL仿真 + UVM + EDA工具)。
触发场景:
(1) UVM验证环境搭建、sequence/sequencer/driver编写
(2) SystemVerilog约束随机、覆盖率模型设计
(3) AMBA协议验证(AXI/AHB/APB)
(4) 寄存器模型(RAL)构建与验证
(5) CDC跨时钟域验证
(6) EDA工具使用(VCS/Questa/Verdi)
(7) 芯片验证测试点评审、覆盖率收敛
|
DV Skills - 芯片前端验证工程师技能库
芯片前端验证(RTL级验证)技能沉淀,聚焦 UVM + SystemVerilog + EDA工具。
Core Philosophy
本技能库解决以下问题:
| ✅ 本技能库能做的事 | ❌ 本技能库不能做的事 |
|---|
| UVM验证环境搭建、component/sequence/factory基础 | 后端时序分析、功耗优化 |
| SystemVerilog约束随机(权重/条件/solve before) | 系统架构设计、算法开发 |
| 覆盖组/coverpoint/cross/收敛策略 | 物理实现、版图设计 |
| RAL寄存器模型构建与验证 | 模拟电路设计 |
| CDC跨时钟域验证(异步FIFO/握手同步) | 硅光/射频设计 |
| AMBA AXI/AHB/APB协议验证 | 封装设计 |
| VCS/Questa编译/仿真/覆盖率/调试 | 成品测试(ATE) |
| 验证方法论、测试点评审(ST/IT/BT/UT) | 嵌入式软件编写 |
核心定位:面向芯片前端验证工程师的 RTL 级仿真验证技能库,涵盖 UVM + SystemVerilog + EDA工具链。
知识结构
dv_skills/
├── references/
│ ├── boundary_value_analysis.md # 边界值分析
│ ├── coverage_model_design.md # 覆盖模型设计
│ ├── verification_methodology.md # 验证方法论
│ ├── vip_usage.md # VIP使用
│ ├── amba_verification.md # AMBA协议验证
│ ├── ddr_verification.md # DDR验证
│ ├── low_power_verification.md # 低功耗验证
│ ├── uvm_verification.md # UVM基础
│ ├── sv_constraints.md # SV约束随机
│ ├── uvm_advanced.md # UVM进阶
│ ├── coverage_convergence.md # 覆盖率收敛
│ ├── ral_verification.md # 寄存器RAL验证
│ ├── cdc_verification.md # CDC跨时钟域
│ └── eda_tool_guide.md # EDA工具指南
Execution Flow
Phase 0: 场景识别
输入:用户问题描述
输出:匹配的知识领域 + 参考文件
判断逻辑:
| 关键词/场景 | 匹配参考文件 |
|---|
| UVM component/sequence/factory 基础 | references/uvm_verification.md |
| 约束随机技巧(权重/条件/solve before) | references/sv_constraints.md |
| phase/objection/config_db/layered sequence | references/uvm_advanced.md |
| 覆盖组/coverpoint/cross/收敛策略 | references/coverage_convergence.md |
| RAL模型构建、mirror/predict/update | references/ral_verification.md |
| 异步FIFO/握手同步/CDC检查清单 | references/cdc_verification.md |
| VCS/Questa编译/仿真/覆盖率/调试 | references/eda_tool_guide.md |
| AMBA AXI/AHB/APB协议验证 | references/amba_verification.md |
| 边界值分析/覆盖模型设计 | references/coverage_model_design.md |
| 验证方法论 | references/verification_methodology.md |
| VIP使用 | references/vip_usage.md |
| DDR验证 | references/ddr_verification.md |
| 低功耗验证 | references/low_power_verification.md |
Phase 1: 知识检索
输入:场景问题
输出:相关 reference 文件内容
规则:
- 根据 Phase 0 匹配结果读取对应
references/*.md
- 如需多个领域知识,组合多个文件内容
- 参考文件均为 Markdown 格式,可直接追加内容
Phase 2: 方案构建
输入:Phase 1 检索结果 + 用户具体问题
输出:可执行的验证方案/代码示例/检查清单
交付内容类型:
| 问题类型 | 交付物 |
|---|
| 环境搭建 | UVM component hierarchy 示例、sequence 编写模板 |
| 约束随机 | constraint 代码示例、solve before 配置 |
| 覆盖模型 | covergroup/coverpoint/cross 定义、收敛策略 |
| 协议验证 | AXI/AHB/APB transaction 示例、VIP 配置 |
| CDC检查 | async FIFO 模型、握手同步时序、CDC checklist |
| 工具使用 | VCS/Questa 编译选项、Verdi 调试流程 |
| 测试评审 | ST/IT/BT/UT 分层评审、checklist 补充 |
Phase 3: 质量验证
输入:生成的方案/代码
输出:质量评估结果
验证维度:
- 语法正确性(SystemVerilog/UVM)
- 符合验证方法论(分层验证、覆盖率驱动)
- 可实际运行(EDA 工具兼容)
快速索引
按验证阶段
规划 → 环境构建 → 执行 → Sign-off
按知识领域
| 领域 | 参考文件 |
|---|
| UVM基础(component/sequence/factory) | references/uvm_verification.md |
| UVM进阶(phase/objection/config_db/layered sequence) | references/uvm_advanced.md |
| SV约束随机(权重/条件/solve before) | references/sv_constraints.md |
| 覆盖模型设计(covergroup/coverpoint/cross) | references/coverage_model_design.md |
| 覆盖率收敛策略 | references/coverage_convergence.md |
| RAL寄存器模型 | references/ral_verification.md |
| CDC跨时钟域 | references/cdc_verification.md |
| AMBA协议(AXI/AHB/APB) | references/amba_verification.md |
| EDA工具(VCS/Questa/Verdi) | references/eda_tool_guide.md |
| VIP使用 | references/vip_usage.md |
| 边界值分析 | references/boundary_value_analysis.md |
| 验证方法论 | references/verification_methodology.md |
| DDR验证 | references/ddr_verification.md |
| 低功耗验证 | references/low_power_verification.md |
覆盖模型设计原则
- 分层覆盖:系统级 → 集成级 → 模块级
- 覆盖点:单项 + 交叉 + 过渡 + 序列
- 收敛策略:定向 → 随机扩展 → 缺口填补 → 边界强化
覆盖率目标
| 类型 | 目标 | 说明 |
|---|
| 行覆盖 | >95% | 核心路径 |
| 分支覆盖 | >90% | 所有分支 |
| FSM覆盖 | 100% | 状态机全状态 |
| 功能覆盖 | 100% | 所有功能点 |
Hard Requirements
| # | 要求 | 说明 |
|---|
| HR-01 | 参考文件必须存在于 references/ 目录 | 确保知识可追溯 |
| HR-02 | 代码示例必须符合 SystemVerilog/UVM 标准 | 语法正确、可编译 |
| HR-03 | 约束随机必须满足合法解存在 | 避免空解导致仿真挂死 |
| HR-04 | 覆盖模型必须包含交叉覆盖 | 单一 coverpoint 不足 |
| HR-05 | CDC检查必须覆盖异步接口 | 全同步设计除外 |
| HR-06 | 测试点必须分层(ST/IT/BT/UT) | 不得跳过分层 |
| HR-07 | 评审必须调用 chip-verif-reviewer skill | 保证评审质量 |
评审能力
配合 chip-verif-reviewer skill 可对测试点进行分层评审:
| 层级 | 全称 | 说明 |
|---|
| ST | System Test | 系统级测试 |
| IT | Integration Test | 集成级测试 |
| BT | Block Test | 模块级测试 |
| UT | Unit Test | 单元测试 |
评审流程:使用 chip-verif-reviewer skill 补充完善验证 checklist,参考 skills/chip-verif-reviewer/SKILL.md。
Quality Validation
| 检查项 | Pass | Fail Signal |
|---|
| 覆盖模型完整性 | 包含行/分支/FSM/功能覆盖 | 仅单一覆盖类型 |
| 约束合法性 | 所有约束组合有解 | 约束冲突空解 |
| CDC覆盖 | 跨时钟域路径全覆盖 | 遗漏握手/FIFO接口 |
| UVM结构 | phase顺序正确、objection使用正确 | 忘记 raise_objection/drop_objection |
| EDA兼容性 | VCS/Questa 均可编译 | 仅单工具兼容 |
| 协议一致性 | AXI/AHB/APB 时序符合协议 | 违规操作(如未发 response 却读数据) |
Taste Guidelines
好的验证实践 vs 差的验证实践
| 好的验证实践 ✅ | 差的验证实践 ❌ |
|---|
| 分层覆盖(系统→集成→模块) | 所有测试堆在顶层 |
| 覆盖率驱动收敛 | 随机跑完就结束 |
| 约束基于实际协议 | 约束覆盖所有可能但无效 |
| 交叉覆盖发现bug | 只用单点覆盖 |
| CDC全面检查 | 仅做时钟同步忽略异步 |
| 测试点分层评审 | 直接写测试用例 |
| 定向+随机组合 | 纯随机无方向 |
| 边界值重点测 | 忽视corner case |
研究/实践品味
- 方法论优先:分层验证 > 扁平化
- 覆盖率说话:functional coverage 100% 是目标,不是凑数
- 约束有意义:每个 constraint 都对应实际场景
- 边界值得重视:corner case 是 bug 高发区
- 评审不可省:ST/IT/BT/UT 每层都要过
从不做的
- 约束覆盖不存在解的空间
- 跳过覆盖点交叉
- 忽略 CDC 跨时钟域风险
- 纯随机无定向补充
- 验收覆盖率低于目标就 Sign-off
- 跳过测试点评审直接写用例
持续学习,持续验证