- uvm_object是UVM中最基本的类,uvm_component也派生自uvm_object。
- 验证平台中常用派生自uvm_object的类有:
a) uvm_sequence_item,trasaction就是从uvm_sequence_item派生的封装了一定信息的类;
b) uvm_sequence,就是sequence_item的组合,sequence会直接与sequencer打交道,当driver向sequencer索要数据时,sequencer会检查是否有sequence要发送数据,当有sequence_item待发送时,会将此sequence_item交给driver;
c) config,主要功能是规范验证平台的行为方式,如driver读取总校要持续几个时钟
d) uvm_reg_item;uvm_reg_map;uvm_mem等用于register model
e) uvm_phase,主要作用为控制uvm_component的行为方式,使得uvm_component平滑地在各个phase之间依次运转 - uvm_component比uvm_object多的两大特性为:通过new的时候制定parent参数来形成一种树形的组织结构;phase自动执行的特点。常用派生自uvm_component的类:
a) Uvm_driver:driver的功能是向sequencer索要sequence_item(trasaction),并将sequence_item中的信息驱动到DUT上;
b) Uvm_monitor:monitor做的事情与driver相反,从DUT的pin上接收数据,并转换成transaction级别的sequence_item,在把转换之后的数据发给scoreboard,供其比较
c) Uvm_sequencer:sequencer的功能是组织管理sequence
d) Uvm_scoreboard:比较reference model和monitor分别送来的数据
e) Reference model:派生自component,可以用高级语言实现
f) Uvm_agent:只是把driver和m