I was reading about UVM field macro flags and came across the following statement:
Specifying
UVM_COPYwith no other flags actually turns on all of the other operations (copy(),compare(),print(),pack(),unpack(),record()).
My question is: if specifying UVM_COPY alone effectively enables all operations, then what is the purpose of defining positive flags such as UVM_COPY, UVM_COMPARE, UVM_PRINT, etc.?
In what situations are these positive flags intended to be used? Are they mainly meant to be combined with other flags (e.g., UVM_ALL_ON | UVM_NOCOPY), or is there a practical use case where a positive flag by itself changes the behavior as expected?
I would appreciate any clarification on the design intent behind these flags.