UVM 中三个重要的类
时间:2021-11-12 14:14:55
手机看文章
扫描二维码
随时随地手机看文章
[导读]UVM中所有的类都有一个共同的基类:uvm_void类。它没有数据成员,也没有成员函数。由uvm_void类扩展得到了两个子类,分别为uvm_object类和uvm_port_base类。其中uvm_object类是UVM中所有的实体(包括component和transactio...
UVM中所有的类都有一个共同的基类:uvm_void 类。它没有数据成员,也没有成员函数。由uvm_void 类扩展得到了两个子类,分别为uvm_object类和uvm_port_base类。
其中uvm_object类是UVM中所有的实体(包括 component和 transaction)的基类。uvm_port_base 是 UVM 中各种通信端口的基类。
a. uvm_object
uvm_object 是 UVM 中所有实体的基类。uvm_object 扩展得到很多子类, 其中比较重要的有uvm_reg、uvm_report_object 、uvm_transaction、uvm_phase。
在上面重要的子类中,我们接触最多的还是uvm_report_object和 uvm_transaction。
driver、monitor等component都是继承自uvm_component,而uvm_component 又继承自 uvm_report_object。
transaction、sequence 继承自 uvm_sequence_item,而 uvm_sequence_item 又继承自 uvm_transaction。
因此说 uvm_object 是 UVM 中比较基础的一个类。对验证人员来说只需要掌握到 uvm_component和 uvm_sequence_item 就行,再往上的类基本上不需要掌握太多。
b. uvm_component
uvm_component是 UVM中比较关键的一个类,在 UVM框架中的 uvm_agent、
uvm_driver、 uvm_monitor、 uvm_scoreboard 等比较重要的组件都继承自该类。uvm_component最终还是扩展自 uvm_object类,因而比 uvm_object类有更多的特性。
其中uvm_object类是UVM中所有的实体(包括 component和 transaction)的基类。uvm_port_base 是 UVM 中各种通信端口的基类。
a. uvm_object
uvm_object 是 UVM 中所有实体的基类。uvm_object 扩展得到很多子类, 其中比较重要的有uvm_reg、uvm_report_object 、uvm_transaction、uvm_phase。
在上面重要的子类中,我们接触最多的还是uvm_report_object和 uvm_transaction。
driver、monitor等component都是继承自uvm_component,而uvm_component 又继承自 uvm_report_object。
transaction、sequence 继承自 uvm_sequence_item,而 uvm_sequence_item 又继承自 uvm_transaction。
因此说 uvm_object 是 UVM 中比较基础的一个类。对验证人员来说只需要掌握到 uvm_component和 uvm_sequence_item 就行,再往上的类基本上不需要掌握太多。
b. uvm_component
uvm_component是 UVM中比较关键的一个类,在 UVM框架中的 uvm_agent、
uvm_driver、 uvm_monitor、 uvm_scoreboard 等比较重要的组件都继承自该类。uvm_component最终还是扩展自 uvm_object类,因而比 uvm_object类有更多的特性。