数字IC验证学习笔记
1. 验证介绍
1.1 验证介绍
1.2 System verilog介绍
1.3 UVM介绍
1.1 验证介绍
(1). 验证概念
主要用来证明设计功能正确,并且符合设计功能描述的流程
(2). 验证平台
- 激励发生器:对DUT创建测试序列,先易后难激励
- 检测器:观察DUT输入输出
- 比较器:对DUT输出与预期数据相比对
- 时钟/重置:提供时钟和复位信号
- 检查结果报告
(3). 验证工作内容
- 设计文件是否正确的按照功能描述文档去实施
- 硬件设计人员是否有漏掉的边界的情况(corner case)
- 检查设计是否能处理错误的情况(error response)
(4). 验证任务:
模块级(module level),子系统级(sub-system level),系统级(chip level)
(5).验证目标:
按时,保质,保耗
- 按时:按照项目计划,考虑验证各个节点(milestone)
- 保质:流片前,尽可能发现所有的缺陷
- 性能,低耗:更短的时间,更少的人力完成工作
(6).验证周期:
- 验证计划:针对设计的测试功能点,映射的覆盖率,验证环境结构,回归测试列表
- 验证环境:激励发生器,检测器,比较器
- 验证代码检查:遗漏的测试激励;不恰当的随机约束;代码结构缺陷,提升覆盖率
- 回归测试:将所有的测试序列都重复执行,随机测试可利用其来检查测试所覆盖的激励场景,提高覆盖率
- 流片前验证完备性检查:回归测试报告;覆盖率数据;验证流程检查清单
- 硅后测试:与测试人员一起测试流片,确认缺陷原因,补救方法
- 逃逸分析:总结错误和原因,经验积累
1.2 System Verilog介绍
(1).背景
2002年Accelera标准的组织牵头发展,是Verilog的扩展的硬件描述语言和验证语言。
(2). 核心特性
- 接口(interface)
- 面向对象特性(class & package)
- 随机约束(constrained random)
- 线程控制和通信(process control and communication)
- 外部语言编程接口(direct programming interface)
- 断言(assertion)
1.3 UVM介绍
(1). 概念
基于SV的验证方法学库,是其抽象出来,构建验证环境的通用手段,并利用标准接口,使得验证环境更利于构建和复用。实用性广泛。
(2).目的
提供一些可以重用的类,来减轻项目之间水平复用和垂直复用的工作量
(3). UVM的学习结构:
- UVM的版图(类库),核心机制
- 核心的UVM组件和构建方法
- UVM组件间的通信方式
- UVM测试场景的构成
- UVM的寄存器模型应用
(4). 验证平台:
- SV
- SV/C++/Verilog
- C++/Verilog
(5). 验证工具:
- Questa modelsim(mentor)
- NC-sim(cadence)
- VCS(synopsys)
(6). 验证工作:
12. 灌激励
13. 集响应
3. 做比较(actual data & expected data(c++))
(7). 验证脚本
per/shell/python/makefile(用于设置环境变量)
(8). 学习方法
UVM类库在线查找手册,DVT SV/UVM集成开发环境(win/linux)
【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~