培训对象: 数字IC验证工程师、UVM进阶学习者、SoC验证人员、复杂芯片验证工程师。
培训目标:
深入理解UVM各组件(monitor、scoreboard、reference model)的实现方法。
能够搭建完整的自检查验证环境。
熟练进行事务级建模和比较。
具备复杂场景的验证调试能力。
培训内容介绍:
一、UVM验证环境架构回顾: 复习UVM验证环境的层次结构,明确各组件(driver、monitor、sequencer、agent、env、test)的职责。
二、Monitor设计与实现: 设计monitor监测DUT接口信号,提取事务级数据(transaction),通过analysis port发送给其他组件。
三、事务级建模(Transaction): 定义事务类封装接口时序和数据,实现compare、print、copy等方法。
四、Reference Model设计: 实现参考模型模拟DUT行为,根据输入transaction计算期望输出。
五、Scoreboard设计: 设计scoreboard接收monitor采集的实际输出和reference model计算的期望输出,进行比较。
六、比较策略实现: 实现in-order比较和out-of-order比较,处理不确定延迟和多流水线场景。
七、Coverage Collector设计: 设计独立的coverage collector收集功能覆盖点,验证测试场景的完备性。
八、虚拟序列(Virtual Sequence): 使用virtual sequence协调多个接口的激励序列,实现复杂场景的验证。
九、UVM回调(Callback)机制: 使用callback在验证流程中注入自定义代码,扩展验证功能。
十、错误注入测试: 设计错误注入场景(总线错误、协议违例),验证DUT的异常处理能力。
十一、仿真调试技巧: 使用UVM的消息机制(uvm_info、uvm_warning、uvm_error)进行调试,分析仿真日志和波形。
十二、实战项目:AXI协议验证: 完成包含monitor、reference model、scoreboard的完整AXI协议验证环境。