In one of the Advanced UVM session Tom mentioned that don’t use the super.xxx_phase if the class is extended from the uvm_component. Can any one please explain why it is so.
Thanks & Regards,
Shriramvaraprasad B.
In one of the Advanced UVM session Tom mentioned that don’t use the super.xxx_phase if the class is extended from the uvm_component. Can any one please explain why it is so.
Thanks & Regards,
Shriramvaraprasad B.
Below is the information available in uvm_component.svh source code
#203
// Any override should call super.build_phase(phase) to execute the automatic
// configuration of fields registered in the component by calling
// <apply_config_settings>.
// To turn off automatic configuration for a component,
// do not call super.build_phase(phase).
//
// This method should never be called directly.
Basically what I understand from it is ,if you want basic ctionality for all the fields registered using `uvm_*_field then don’t call the super.build_phase(); as it contains some extra functions inside of it.
Yes, that’s what I meant. Since we don’t recommend using that functionality, the way to avoid it is to not call super.build().
In reply to yaswanth021:
Hi Yaswanth,
I got the point what you mentioned. Please let me know what are the extra functions which are build when we call super.build_phase().
What I mean is, there are any basic functionality which we are building and it is used in the next phases without knowing that it is implemented in the build_phse().
Thanks & Regards,
Shriramvaraprasad B.