The Whys of UVM

In reply to scott_barvian:

The Separation of Concerns principle I gave in my answer to “why use drivers” question is a language agnostic and a contemporary principle.

It’s unfortunate that DVCon just went through a catastrophic loss of proceedings. They’ve recovered most of the papers and posters, but many of the tutorials and workshops that addressed the “why” are gone.

A few papers that might be worth reading are “First Reports from the UVM Trenches: User-friendly, Versatile and Malleable, or just the Emperor’s New Methodology?” and “UVM Rapid Adoption: A Practical Subset of UVM

However, “Because that’s how we do it, now go away.” could be the best answer for certain practices. Sometimes it’s more important to focus on the final decision rather than getting caught up in the argument or discussion that led to it. Take naming conventions like camelCase versus snake_case and other. It’s important to be consistent with the chosen convention making code easier to read and understand amongst a wider group. The same can be said about testbench architecture.