UVM config for driver, monitor

In my environment, I have kept config class for components upto agent. I am a bit confused whether I need to have a configuration class for driver and monitor also. At present, I would only be passing virtual interface to driver and monitor.

In reply to verif_learner:

Your agent’s configuration class should also be used by the driver and monitor. The agent’s configuration class should also contain the virtual interface handle.

In reply to verif_learner:

I am hesitant to agent configuration class directly to driver/monitor as it contains more info than what they would need. I am also hesitant to create separate configuration classes for driver/monitor as I am ending with way too many classes in the environment. Probably, I will just create additional driver/monitor config classes or just pass virtual interfaces.

Thanks for the input.

In reply to verif_learner:

Why does it matter if it contains more information than they need? They will only use what they need out of it (the virtual I/F handle). Creating additional configuration classes just adds more complexity to your environment.

In reply to verif_learner:

In reply to verif_learner:
I am hesitant to agent configuration class directly to driver/monitor as it contains more info than what they would need. I am also hesitant to create separate configuration classes for driver/monitor as I am ending with way too many classes in the environment. Probably, I will just create additional driver/monitor config classes or just pass virtual interfaces.
Thanks for the input.

I#d not recommedn to have seperate configuration objects for driver/monitor/sequencer. It is sufficient to have such an object for the agent. From the agent you can make the direct assignments to the variables in driver/monitor.

In reply to cgales:

In reply to verif_learner:
Why does it matter if it contains more information than they need? They will only use what they need out of it (the virtual I/F handle). Creating additional configuration classes just adds more complexity to your environment.

To avoid any unintended side effects. I come from an old school of verification :-)

In reply to verif_learner:

My practice is to include configure object in the agent only. The driver, monitor and sequencer define only the configure variables they need. sing UVM configuration database sets those variables(wildcard used).

We are currently moving towards agent config objects-- and it contains information that the drivers and monitors need as well for a particular test (ex. apply back pressure).

I am keeping the config object in the agent-- and then copying the variables from the config to the driver and monitor in the connect phase.

I have also toyed with just handing a handle to the config object to the driver and monitor from the agent-- and then having them use the config object directly. Seems a little cleaner to me.