In reply to hcglu:
I made some more detailed invetsigations. Something goes wrong with the object naming of the dam_agent.
When you are set is_active like this (in test):
uvm_config_int::set(this, “dma_env.dma_agent”, “is_active”, UVM_PASSIVE);
Anything is fine and the dam_agwewnt is set to UVM_PASSIVE.
If you are using
uvm_config_int::set(this, “dma_env.dma_agnt”, “is_active”, UVM_PASSIVE);
it fails. And the agent is still UVM_ACTIVE.
See my code here
When you are stting the agent ACTIVE you can also see the topology. In the topology the agent object is also named dma_agent instead of dma_agnt.