培训对象: 数字IC验证工程师、SoC验证人员、ASIC验证工程师、硬件验证初学者。
培训目标:
掌握SystemVerilog语言的高级验证特性。
理解UVM方法学的架构和核心组件。
能够搭建基于UVM的验证平台。
具备随机激励生成和功能覆盖率收集能力。
培训内容介绍:
一、SystemVerilog验证特性概述: 了解SV相比Verilog新增的验证特性(接口、类、随机化、断言、覆盖率)。
二、面向对象编程基础: 掌握类、对象、继承、多态等OOP概念,应用于验证组件开发。
三、接口(Interface)与时钟块: 使用接口封装信号连接,使用时钟块(Clocking Block)处理时序和同步。
四、随机化与约束: 使用rand/randc变量生成随机激励,编写约束(Constraint)控制随机分布。
五、功能覆盖率: 定义覆盖组(Covergroup)、覆盖点(Coverpoint)、交叉覆盖(Cross),收集验证进度。
六、UVM架构概述: 了解UVM的层次结构(test、env、agent、sequencer、driver、monitor),掌握UVM类库。
七、UVM组件创建: 派生自定义类继承UVM组件,注册到UVM工厂,构建验证环境层次。
八、UVM序列(Sequence)机制: 创建sequence生成事务级激励,使用sequencer发送到driver。
九、UVM配置机制: 使用uvm_config_db传递配置参数,实现验证环境的灵活配置。
十、UVM寄存器模型: 集成寄存器模型(RAL)访问DUT寄存器,进行寄存器验证和覆盖率收集。
十一、UVM仿真流程: 掌握UVM的phase机制(build、connect、run、extract、check),控制仿真执行顺序。
十二、实战项目:UVM验证平台搭建: 为简单DUT搭建完整的UVM验证平台,包含sequence、driver、monitor、scoreboard。