Generic components UVM

Hello,

I want to know if it’s possible to make some components of UVM generics, in order to diminue time of verification ? if you have any ideas, or any example that will be capable to help me ?

the main of this is to have some blocs generics of UVM that can verify a part of any design (in my case the design = bridge, so i try to develop generic environment which can be capable to verify any bridge integrated in this environment ) .

Thanks in advance,

In reply to uvm_share:

I’m not sure are if your approach has any benefit. The transactors (driver, monitor)are always application specific. They are depending on the interfae/bus protocol. And there is no generic protocol available.
If you want to save time you shoule use a UVM Framework Generator, like this one:
https://www.doulos.com/knowhow/systemverilog/uvm/
After setting-up a few things this generaor is generating the whole UVM environment. In average you are saving about 6 weeks of time.

Hi chr_sue,

Yes, for agents blocs , i have developed reusables components as packages. My objectif now is to generic some blocs or some parts of blocs in order to have some genericity in my verification environment.

This environment will be reserved for verification of bridges.

Thanks,

In reply to uvm_share:

The agent is only a container having the same components inside. There is nothing specific.
Even for bridges you will have different fuctional interfaces with different protocols. This makes the difference.

I agree, it is possible to develop code to manage the slave and master interfaces ?

In reply to uvm_share:

Siemen’s UVM Framework has a library of reusable components such as scoreboards, agents, and more. These classes are highly parameterized. For example, every agent needs to create a driver, monitor, and sequencer, so uvmf_agent has parameters for these types. You can learn more at the course UVM Framework One Bite at a Time.

manage the slave and master interfaces
Base classes contain common code and variables that are needed by the derived classes. What do you mean by “manage” and what is common in these interfaces?