数字IC验证学习笔记_1. 验证介绍

数字IC验证学习笔记

1. 验证介绍

1.1 验证介绍
1.2 System verilog介绍
1.3 UVM介绍

1.1 验证介绍

(1). 验证概念
主要用来证明设计功能正确,并且符合设计功能描述的流程
(2). 验证平台
数字IC验证学习笔记_1. 验证介绍_第1张图片

  1. 激励发生器:对DUT创建测试序列,先易后难激励
  2. 检测器:观察DUT输入输出
  3. 比较器:对DUT输出与预期数据相比对
  4. 时钟/重置:提供时钟和复位信号
  5. 检查结果报告

(3). 验证工作内容

  1. 设计文件是否正确的按照功能描述文档去实施
  2. 硬件设计人员是否有漏掉的边界的情况(corner case)
  3. 检查设计是否能处理错误的情况(error response)

(4). 验证任务:
模块级(module level),子系统级(sub-system level),系统级(chip level)

(5).验证目标:
按时,保质,保耗

  1. 按时:按照项目计划,考虑验证各个节点(milestone)
  2. 保质:流片前,尽可能发现所有的缺陷
  3. 性能,低耗:更短的时间,更少的人力完成工作

(6).验证周期:
数字IC验证学习笔记_1. 验证介绍_第2张图片

  1. 验证计划:针对设计的测试功能点,映射的覆盖率,验证环境结构,回归测试列表
  2. 验证环境:激励发生器,检测器,比较器
  3. 验证代码检查:遗漏的测试激励;不恰当的随机约束;代码结构缺陷,提升覆盖率
  4. 回归测试:将所有的测试序列都重复执行,随机测试可利用其来检查测试所覆盖的激励场景,提高覆盖率
  5. 流片前验证完备性检查:回归测试报告;覆盖率数据;验证流程检查清单
  6. 硅后测试:与测试人员一起测试流片,确认缺陷原因,补救方法
  7. 逃逸分析:总结错误和原因,经验积累

1.2 System Verilog介绍

(1).背景
2002年Accelera标准的组织牵头发展,是Verilog的扩展的硬件描述语言和验证语言。
(2). 核心特性

  1. 接口(interface)
  2. 面向对象特性(class & package)
  3. 随机约束(constrained random)
  4. 线程控制和通信(process control and communication)
  5. 外部语言编程接口(direct programming interface)
  6. 断言(assertion)

1.3 UVM介绍

(1). 概念
基于SV的验证方法学库,是其抽象出来,构建验证环境的通用手段,并利用标准接口,使得验证环境更利于构建和复用。实用性广泛。
(2).目的
提供一些可以重用的类,来减轻项目之间水平复用和垂直复用的工作量
(3). UVM的学习结构:

  1. UVM的版图(类库),核心机制
  2. 核心的UVM组件和构建方法
  3. UVM组件间的通信方式
  4. UVM测试场景的构成
  5. UVM的寄存器模型应用

(4). 验证平台:

  1. SV
  2. SV/C++/Verilog
  3. C++/Verilog

(5). 验证工具:

  1. Questa modelsim(mentor)
  2. NC-sim(cadence)
  3. VCS(synopsys)

(6). 验证工作:
12. 灌激励
13. 集响应
3. 做比较(actual data & expected data(c++))

(7). 验证脚本
per/shell/python/makefile(用于设置环境变量)
(8). 学习方法
UVM类库在线查找手册,DVT SV/UVM集成开发环境(win/linux)

【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~

你可能感兴趣的:(数字IC验证学习笔记,芯片,systemverilog)