UVM with C++ Reference Model

How do I call/use C++ reference model in UVM environment?
Do I need DPI or SystemC wrapper?
What is the best way to use C++ reference model in UVM ?

In reply to superUVM:

The most efficient way is usually wrapping the C++ in DPI-C calls. However, you need to explain what the architecture of the reference model looks like. Is it just a function call manipulating packets of data? Or is timing involved?

These models are untimed models. Some models will be used in scoreboard/predictor. Some models will be used for stimulus generation and that is where I have not clear on what is the best way to integrate it in UVM environment. Test sequences are used to generate stimulus in UVM but how do I use these c++ stimulus generator models in UVM?

I am trying to find best way to integrate this in UVM.

In reply to superUVM:

Use UVM Connect.

In reply to superUVM:

These models are untimed models. Some models will be used in scoreboard/predictor. Some models will be used for stimulus generation and that is where I have not clear on what is the best way to integrate it in UVM environment. Test sequences are used to generate stimulus in UVM but how do I use these c++ stimulus generator models in UVM?
I am trying to find best way to integrate this in UVM.

Using c++ models in scorboards is quite common. In most of the cases it is quite simple to implement a call of your ref model using the DPI interface.
With respect to the pattern generator it depends for what you are using the c++ genherator. It is necessary to investigate the details. SV/UVM offers you high quality random pattern. Maybe you are using this together with function calls. I’m not sure if UVMConnect is the best solution.

In reply to chr_sue:

UVMConnect will be additional layer just to take care of c++ pattern generator. Can you not incorporate this C++ pattern generator in sequence similar to use of C++ model in scoreboard?

In reply to superUVM:

Yes you can do this, i.e. calling C++ code in your sequence, assebling your data. I said UVMConnect might not be the best solution.

In reply to chr_sue:

Great! Thanks!