验证环境搭建与UVM框架应用

📚 共计 30 章节
01
验证概述
什么是芯片验证?验证在芯片设计流程中的位置,验证的挑战与目标。
基础概念
02
验证方法论演进
从定向测试到随机测试,从Verilog Testbench到SystemVerilog再到UVM。
历史方法论
03
SystemVerilog基础回顾(一)
数据类型、数组、结构体、枚举、字符串。
SV语法
04
SystemVerilog基础回顾(二)
过程块、任务与函数、事件、断言基础。
SV过程
05
SystemVerilog面向对象编程(一)
类与对象、封装、继承、多态。
OOPSV
06
SystemVerilog面向对象编程(二)
参数化类、虚方法、类型转换、回调机制。
OOP高级
07
SystemVerilog随机化
随机变量、约束、随机化方法、随机序列。
随机约束
08
SystemVerilog功能覆盖率
覆盖组、覆盖点、交叉覆盖、覆盖率选项。
覆盖率验证
09
UVM世界观
UVM是什么?UVM的哲学,UVM的树形结构,UVM的核心组件。
UVM架构
10
UVM基础组件(一)
uvm_component与uvm_object,它们的区别与联系。
组件核心
11
UVM基础组件(二)
uvm_driver、uvm_monitor、uvm_agent,搭建第一个组件。
drivermonitor
12
UVM基础组件(三)
uvm_sequencer、uvm_sequence、uvm_sequence_item,事务级建模。
sequence事务
13
UVM基础组件(四)
uvm_env、uvm_test,构建完整的验证环境。
环境test
14
UVM工厂模式
工厂机制、类型覆盖、重载规则,为什么UVM需要工厂?
工厂重载
15
UVM配置机制
uvm_config_db,配置数据库的使用,层次化配置。
配置层次
16
UVM TLM通信(一)
TLM基础,put/get/peek端口,单向通信。
TLM通信
17
UVM TLM通信(二)
Analysis端口与Analysis Export,广播通信。
广播analysis
18
UVM TLM通信(三)
FIFO与管道,阻塞与非阻塞传输。
FIFO阻塞
19
UVM Sequence进阶
Sequence的启动方式,Sequence的仲裁,Sequence的嵌套。
sequence仲裁
20
UVM寄存器模型(一)
寄存器模型的概念,uvm_reg、uvm_reg_block,构建寄存器模型。
寄存器reg
21
UVM寄存器模型(二)
前门访问与后门访问,寄存器预测与镜像。
前门后门
22
UVM寄存器模型(三)
寄存器序列,内置寄存器测试序列。
序列测试
23
UVM验证环境实战(一)
搭建一个简单的ALU验证环境,从零开始。
实战ALU
24
UVM验证环境实战(二)
编写测试用例,随机激励生成,功能覆盖率收集。
用例覆盖率
25
UVM验证环境实战(三)
调试与波形分析,常见UVM错误排查。
调试波形
26
UVM高级话题:phase与objection
uvm_phase机制,domain与同步,objection机制。
phaseobjection
27
UVM高级话题:回调与事件
回调(callback)机制,uvm_event,uvm_barrier。
callbackevent
28
UVM与脚本化
Makefile管理UVM编译,VCS/Questa/Xcelium的UVM编译选项。
脚本编译
29
UVM代码规范与重用
验证IP(VIP)的设计原则,代码风格,文档化。
规范VIP
30
UVM项目实战:I2C控制器
一个完整的I2C控制器验证环境,从规划到交付。
I2C项目