IC验证学霸笔记4——UVM--组件家族

1 组件家族

SV环境中的验证组件按照功能需要,被称之为激励器(stimulator)、监测器(monitor)和检查器(checker)。

这三个核心组件与验证环境的三个关键特性对应, 即激励、 监测和检查。 在过往那么多验证方法学中, 都有与其对应的组件(component)。

UVM组件家族是从UVM基类继承的一个核心分支即uvm_component类。
发送激励部分:uvm_driver,uvm_sequencer,uvm_sequencer_base,uvm_random_stimulus

监测激励部分:uvm_monitor

检查激励部分:uvm_scorebord,uvm_in_order_comparator,uvm_algorithm_comparator

环境的层次结构:uvm_agent,uvm_env,uvm_test

寄存器包:uvm_reg_predictor

从uvm_component类继承的类均可以构成验证环境, 这是因为它们都从uvm_component类继承了phase机制, 也都会经历各个phase阶段。

在UVM入门的模块中, 主要介绍构成环境的常见组件类:
•    uvm_driver
•    uvm_monitor
•    uvm_sequencer
•    uvm_agent
•    uvm_scoreboard
•    uvm_env
•    uvm_test

其中,uvm_driver和uvm_sequencer会单独整理。

2 uvm_monitor

从名字来看, 这个类是为了监测接口数据, 而任何需要用户自定义数据监测行为的monitor都应当继承于该类。
•   虽然uvm_monitor与它的父类相比, 并没有增添新的成员和方法,但将新定义的monitor类继承于uvm_monitor类会有助于实现父类uvm_monitor的方法和特性。
通常所执行的功能包括:
1. 观测DUT的interface, 并收集总线信息;

2. 永远保持PASSIVE模式, 即永远不会驱动DUT;

3. 在总线协议或者内部信号协议观察时, 可以做一些功能和时序的检查;

4. 对于更加复杂的检查要求, 它们可以将数据发送至其它验证组件, 例如scoreboard、 reference model或者coverage collector。

3 uvm_agent

uvm_agent 本身不具备什么神技, 但它是一个标准的验证环境 “单位 ”。这样的标准单位通常包含一个 driver 、 一个 monitor 和一个 sequencer。这三个小伙伴经常聚在一起, 组成一 个小团伙 agent。 同时为了复用, 有时 uvm_agent 中只需包含一个 monitor, 而不需 driver 和 sequencer, 这就需要通过一个变量来进行有条件的例化。

uvm_active_passive_enum is_active = UVM_ACTIVE;

is_active 是 agent 的一个成员,默认值是UVM_ACTIVE, 这表示处在 active 模式的 agent 需要例化 driver、 monitor 和 sequencer; 而如果 is_active 的值是UVM_PASSIVE 则表示 agent 是 passive 模式, 只可以例化 monitor。 active 模式的 agent 既有激励功能也有监测功能, passive 模式的 agent 只具有监测功能。 active 模式对应着 DUT 的接口暴露给 agent 且需要激励的场景, 而 passive 模式对应着 DUT 的接口已经与其他设计连接而只需要监测的场景。 通过 is_active 变量, agent 需要在 build_phase()和 coonect_pbase()等函数中通过选择语句来对driver和 sequencer 进行有条件的例化和连接。 下面这段例码即作为如何对 agent 内三个组件进行有条件例化参考。

Agent的存在是为了验证环境的复用。

按照总线的传输方向划分, 可以分为master和slave。

Master agent是用来向DUT发起transaction。

Slave agent是用来响应DUT的events。

对于UVM初学者,按照“套路”,只需要考虑在agent中创建所列出的常见组件。


注:优秀验证学员随堂笔记,已经征求到学生的同意,会持续给牛友们分享!
大家看完记得 一键三连!多多支持

#深度学习##做项目##芯片IC验证工程师##你为什么选择硬件行业##你的秋招进展怎么样了#
全部评论
学霸真是牛掰啦
点赞 回复 分享
发布于 2022-09-29 16:42 河南

相关推荐

09-21 23:16
门头沟学院 Java
传奇逃兵王:招不起就别招,叽里咕噜说啥呢
点赞 评论 收藏
分享
评论
2
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务