UVM(一)

在这里插入图片描述
在这里插入图片描述
UVM = universal verification methodology(通用验证方法学,基于sv)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • encapsulation(封装)
  • inheritance(继承)
  • polymorphism(多态)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
基于verilog的验证语言:

  • verilog(功能模块化、随机化验证的不足)
  • systemC(基于C++,需要用户自己管理内存)
  • systemverilog(兼容verilog)

基于systemverilog的验证方法学:

  • VMM
  • OVM
  • UVM(三大EDA厂商均支持)

在这里插入图片描述
在这里插入图片描述
driver:将获取的事务转化为pin级信号驱动DUT
sequencer:启动sequence产生事务,并将事务发送给driver
monitor:检测接口上的有效信号,并转化为事务,再发送到reference model 进行分析
agent:将sequencer、driver和monitor封装起来,连接sequencer和driver
reference model:模拟DUT的行为,根据激励来产生结果,该结果会送入scoreboard中比对
slave agent中的monitor往往是捕获DUT的输出信号并转化为事务的功能组件
scoreboard:比较预期的结果与DUT的输出结果是否一致
env:可包含多个agent、reference model、scoreboard以及其他连接组件和配置组件
testcase:测试案例,实例化env,配置env,启动测试平台

需要从UVM的基类扩展:
在这里插入图片描述
在这里插入图片描述
一个只有driver的UVM验证平台:
在这里插入图片描述
1、创建用户所需的transaction
在这里插入图片描述
2、创建sequence(产生并控制sequence)
在这里插入图片描述
在这里插入图片描述
//req是指向产生事务对象的指针,repeat 10 ->产生10个事务对象

3、创建sequencer
由于sequence不能启动body中的事务对象,需要由sequencer启动
在这里插入图片描述
在这里插入图片描述
4、创建driver
在这里插入图片描述
在这里插入图片描述
5、创建monitor
在这里插入图片描述
在这里插入图片描述
6、创建agent
在这里插入图片描述
在这里插入图片描述
7、创建env
在这里插入图片描述
在这里插入图片描述
8、创建testcase
在这里插入图片描述
在这里插入图片描述
//config 1、 调用set的位置(mytest所调用)2、调用的路径 3、目标变量的标识符 4、启动sequence的类型(default_sequence指向my_sequence)

9、运行测试平台
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于之前在testcase中加入了打印平台结构的函数
在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章