UVM: Macro Cost Benefit
Macros can be useful to reduce repetitive typing of small pattern-like code segments, to hide implementation differences or limitations among the simulators from different vendors, or to make critical code segments less error-prone for reuse. Many of the macros in UVM meet these criteria, but not all. While the benefits of macros in general may be obvious and immediate, often the costs associated with their usage is not transparent and may well become problematic at a later point when code changes are increasingly obtrusive.