This example demonstrates a simple OVM-on-top environment, where OVM controls the phasing of OVM and any integrated VMM envs. Unlike the VMM-on-top use model, VMM envs integrated in an OVM environment do not require modification, i.e. do not require a change to its inheritance and the addition of a call to <ovm_build> in the build phase.
`define OVM_ON_TOP `include "ovm_vmm_pkg.sv" `include "ovm_other.sv" `include "vmm_other.sv" class wrapped_vmm_env extends avt_ovm_vmm_env #(vmm_env_ext); `ovm_component_utils(wrapped_vmm_env) function new (string name, ovm_component parent=null); super.new(name,parent); endfunction endclass class my_ovm_env extends ovm_comp_ext; wrapped_vmm_env subenv; `ovm_component_utils(my_ovm_env) function new (string name, ovm_component parent=null); super.new(name,parent); endfunction virtual function void build(); subenv = new("vmm_env",this); subenv.auto_stop_request = 1; endfunction endclass program example_02_ovm_on_top; initial run_test("my_ovm_env"); endprogram