芯片的验证周期大致可以分为RTL0、RTL1、RTL2、RTL3、GLS和TO,下面详细阐述各时间节点veriifier所需要做的具体内容。
节点 | 内容 |
---|
RTL0 | 芯片框架和模式功能定义完成,指定验证的策略 |
RTL1 | 模块和子系统的功能信号定义完成,定制需要的存储模型 |
RTL2 | 完成所有模块的设计,以及80%以上的模块和子系统的验证,核心功能全部完成验证 |
RTL3 | 完成芯片系统的连线集成和验证,覆盖所有的功能验证点 |
GLS | 完成门级网表的验证 |
TO | 回顾验证的各项检查清单,最终流片 |
RTL0 —— 任务 | 内容 |
---|
团队验证环境准备 | 项目的工作目录、采取的验证进度跟踪方法 |
验证人力和进度安排 | 模块、子系统和芯片需要的人力和进度安排 |
验证工具和方法选择 | 仿真工具和形式验证工具的版本、验证方法学 |
验证文档 | 记录验证策略、验证平台环境、方法学 |
RTL1 —— 任务 | 内容 |
---|
搭建模块验证环境 | 按照设计接口搭建模块验证环境 |
生成寄存器模型 | 由设计XML文件生成UVM寄存器模型 |
验证文档 | 模块验证环境、寄存器模型、环境编译 |
验证计划回顾 | 模块级验证计划回顾 |
RTL2 —— 任务 | 内容 |
---|
语义检查 | 检查常见的设计规范问题 |
跨时钟域检查(CDC) | 模块、子系统的CDC检查 |
仿真验证、形式验证 | 选择合适的验证方法学完成80%以上的模块和子系统的验证 |
创建测试用例 | 将测试用例同功能验证点完成匹配 |
验证环境和用例回顾 | 验证环境、用例和功能覆盖点回收 |
递归测试 | 创建和更新模块/子系统的递归测试表 |
漏洞修正和跟踪 | 记录发现的漏洞、完成修复后的递归测试 |
RTL3 —— 任务 | 内容 |
---|
跨时钟域检查(CDC) | 芯片级的CDC检查 |
能效仿真(PA) | 芯片级的PA |
仿真验证、形式验证 | 芯片级的的验证 |
创建测试用例 | 芯片级的测试用例 |
创建芯片验证环境 | 完成整体的芯片级环境设计、搭建、集成测试 |
测试用例回顾 | 芯片级用例和功能覆盖点回收 |
漏洞修正和跟踪 | 修复芯片级测试发现的漏洞、将漏洞提交到跟踪系统 |
递归测试 | 集中提交所有模块的芯片测试用例、评估整体进度 |
代码/功能覆盖率收集 | 合并模块/芯片覆盖率,创建新的用例完备覆盖率 |
GLS —— 任务 | 内容 |
---|
门级验证环境准备 | 需要从RTL芯片验证环境做更新从而适应门级仿真 |
网表仿真验证 | |
网表+SDF仿真验证 | 伴随门级延时仿真,完成时序验证 |
漏洞修正和验证 | |
TO —— 任务 | 内容 |
---|
验证功能点回顾 | 确保所有待验功能点全被测试用例覆盖 |
测试用例回顾 | 检查最终递归测试表结果,检查用例是否全部通过 |
覆盖率回收 | 检查最终合并的覆盖率,保证覆盖率在90%以上 |
门级仿真用例回顾 | 所有的时序违例均被修正或者过滤,功能全部通过 |