UVM parametrized agent and driver

In reply to sdeaderick:

There is a couple of things I’d like to talk about.
Starting with the simple ones:

  1. The UVM commandline API helps you passing the testname to your environmet without dealing with the $plusargs. Simply write to the simulator call +UVM_TESTNAME=.
  2. I’m not sure if it is useful to code the simulator logfile in your environment. You can use the UVM reporting mechanism to do this in a more easy way.

The more complicated ones:
I guess you are trying to get a generic UVM environment. To make this configurable you are dealing with a mixed approach of parameterized classe and macros. Finally this is causing your problem.
My professional practice in the UVM space shows me dealing with parameterized classes causes quite soon problems. For this reason I’m trying to avoid this in any case. The UVM configuration DB helps you to deal with parameters in your UVM environment.

I’m not sure why you need such an generic agent. But I guess you want to put together a complete UVM environment using such generic elements. This is not a really flexible approach. You may run into trouble quite soon.
In my professional practice I made the experience the only flexible approach for generating a generic UVM environment is the usage of ‘UVM Framework Generators’.
There are some licensed products on the market. But you find also solutions which are free of charge. Look to the ‘EasierUVM Approach’ at Doulos.com or visit my personal webpage christoph-suehnel.de.