I heard that UVM is inherited from both VMM and UVM. When I go through the UVM user guide, I don’t see any difference between OVM and UVM. What are the features inherited from VMM? VMM has very good features like start_xactor() stop_exactor() and channels, RAL etc… Do We expect those features in new versions of UVM?? if not where do we get the interoperability between UVM and VMM? It may be foolish question please any one clarify this.
I would say the key difference between OVM and UVM is what is now called uvm_reg. This was based on the VMM’s RAL model, but did have to be re-worked to utilize the UVM’s sequence and phasing sematics. Another difference between the OVM and UVM (alothough not from the VMM) is the new parametrized resource and configuration mechanism. You can now configure more than just simple integers, strings and objects; and use them in sequences without being tied the component hierarchy.
Accellera did release an OVM 2.0.2 ↔ VMM 1.1 interoperability kit. They do not have and are not working on a UVM<->VMM interoperability kit. I would think activity in UVM development would have to settle down before anyone invest in the time to develop such a kit. Integrating the phasing mechanisms is a key part of making that work, and that’s what they are still working on in the UVM.