uvm_comparer是个基类,提供了对象object比较的策略,比较结果(比较次数、成功与否)保存在comparer object中。uvm_object::compare及uvm_object::do_compare即调用了uvm_comparer对两个uvm_object类型的参数进行比较。uvm_comparer中主要实现了以下几个方法:
uvm_recursion_policy_enum,对对象进行复制的复制策略,有VUM_DEFAULT_POLICY、UVM_DEEP、UVM_SHALLOW、UVM_REFERENCE四种——默认策略就是没有策略;UVM_DEEP指深层复制,调用uvm_object::copy实现复制;
UVM_SHALLOW采用SystemVerilog的copy进行复制;UVM_REFERENCE只复制object handle。