UVM库定义了一组基类(base classes),这些基类有助于搭建模块化/可扩展/可重用的验证环境。
在基于UVM的验证环境中,所有的组件就尽量使用UVM定义的基类,然后使用这些基类中预先提供的方法。
要造特定样式的房子,就选择特定的砖头。免得牛头不对马嘴,能用但是不好用。
virtual class uvm_void;
endclass
如上图所示,uvm_void是uvm所有class的基类(一个没有任何属性成员和方法(function、task)的抽象类),类似于C++中的空指针。简单来说就是:
零生一,一生二,二生万物。
但是在uvm_port_base和uvm_object继承uvm_void的时候,并未继承任何的内容。
直到看到一篇博客,我慌了,还是境界不够啊
由两行代码牵扯到了宇宙、永恒、道和美。。。
示例上uvm_void的存在可能仅仅是个历史问题,从URM/eRM到OVM,再到UVM。所以,uvm_void就是什么都不是,连空都不是。