1 出了派生自uvm_component 类之外的类,几乎所有的类都派生自uvm_object。
2.uvm_sequence_item:user 定义的所有的transaction 要从uvm_sequence_item 派生。transaction 是封装了一定信息的一个类。虽然UVM有uvm_transaction 类,但在UVM中,不能从uvm_transaction 派生transaction,而要从uvm_sequence_item派生。uvm_sequence_item也是从uvm_transaction派生来的,比它多一些变量和函数/任务,从uvm_sequence_item 派生,可以使用这些变量和函数/任务。
3.uvm_sequence:所有的sequence要从uvm_sequence#()派生。sequence 是sequence_item 的组合。直接与sequencer打交道。
4 config:所有config 都从uvm_object 派生。和config_db有区别。这里的config 是把所有的参数放在一个object中,通过config_db 设置给需要这些参数的components。synopsys 的VIP就是这样的。
5.uvm_reg_item派生自uvm_sequence_item。还有uvm_reg_map, uvm_mem, uvm_reg_field, uvm_reg, uvm_reg_file, uvm_reg_block 等与寄存器相关的类都是派生自uvm_object ,都是register model。
6.uvm_phase:派生自uvm_object。