Hi All,
Few of the observations made while using the ovm-2.0 and ovm-2.0.1 library, needing explanations on these!! Kindly help out.
Observation1: Pointing to library ovm-2.0.1
- Had used ovm_driver (paramaterized class) and ovm_environment.
- In ovm_driver had declared it as `ovm_component_utils(driver)
- In environment had created the driver in the build function as given below
$cast(driver0,create_component("driver","driver0"));
driver0.build();
- When ran pointing to ovm-2.0.1 library and its working fine.
BUT in observations 2
Observation2: Pointing to library ovm-2.0.1
- Had used ovm_driver(paramaterized class) and ovm_environment.
- In ovm_driver had declared it as `ovm_component_param_utils(driver)
- And in the environment if we had created the component as given in the above observation1, it throws the error the component has to be registered in the factory.
- So i tried registering the component in the environment in build function as given below
driver0 = driver::type_id::create("driver0",this);
- Now since its properly registered its working fine…
BUT the explanations need is :
-
What is the advantage when we use
ovm_component_utils (vs)
ovm_component_param_utils for a paramaterized class?? as both ways are working fine with respect to proper creations of component!!! -
Which way of creation of component has advantage as did in the above two observations??
-
And why there is such sort of differentiation for components creation in many ways when both does the intended operation ???
Kindly need your explanations on these observations,… :o
Thanks in advance…
Desperado… Fun playing with OVM but confusing at time
…>>