white paper
Avoiding configuration madness the easy way
A simpler, faster, easier to understand UVM configuration system
The UVM configuration database serves a useful purpose – to share data between the module/instance world and the dynamic class-based world in a UVM testbench. But it should be used sparingly.
If it cannot be used sparingly, then consider something easier to understand and simpler and faster. The package outlined here is about 300 lines and easy to understand. The UVM configuration database files contain about 2,600 lines of code and is not easy to understand.
The real hope for the reader is a realization that this is all “just code” and some things are better modeled other ways. Using bad habits with the UVM configuration database will eventually and naturally lead to changes – either a simple usage or a different implementation.
Three appendices chock full of coding tips are included in the paper.