Hello Dave,
I want the assigned generic value not to be hard-coded. I want it to be able to configure it with each uvm test.
(I instantiate the VHDL dut in the top module of the verification environment as usual).
That is not possible using generics. Generic values must be fixed at elaboration.
Two methodologies I see frequently are:
Each test has an associated package that supplies the constant values used to configure the DUT. You may have many tests for one package or many packages for one test as well. Your scripts need to match up the test to the proper package.
When you want to randomize the configuration, you need a two-step flow to a) create the randomized package and b) compile and run the DUT with the randomized package.