Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] how to create an instance/object for SystemC model in SystemVerilog Class

Status
Not open for further replies.

prashantsid

Newbie level 5
Joined
Apr 8, 2012
Messages
10
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Faridabad, INDIA
Activity points
1,365
I am trying to use a SystemC reference model in a UVM based test-bench.
what can be the possible way for creating an instance of SystemC module (class) in a SystemVerilog class.
I have tried using SC_MODULE_EXPORT but it allows me to create an instance in Verilog/SystemVerilog module as design entities, not as class objects.
I prefer not to use predefined libraries from Cadence/Mentor (UVM ML or UVMC)
Also if there is any tool dependent function, please let me know.
Tools used - ModelSim 10.1c

Thanks
 

There is no way to instantiate a SC_Module inside a SV class because there is no way to instantiate any kind of module; Verilog, SC, SV, VHDL entity inside an SV class. An SV class is a dynamic object. A module in any language is a static object

You should review UVM Connect from Mentor. https://verificationacademy.com/topics/verification-methodology/uvm-connect. This library is open-source and not dependent on any tool.

You could type wrapping a driver/monitor around your SC module, just as if it were a SV module.
 
You could type wrapping a driver/monitor around your SC module, just as if it were a SV module.

Can you please explain it in detail.
And does this 'wrapping a driver/monitor around SC module' needs UVM Connect library.

P.S. - I am using a UVM based testbench, I know that UVMC fits the bill but somehow I choose not to use the predefined library if there is an other way around.

- - - Updated - - -

You should review UVM Connect from Mentor. https://verificationacademy.com/topics/verification-methodology/uvm-connect. This library is open-source and not dependent on any tool.

While using UVM Connect library I am facing an issue. Please refer to another post https://www.edaboard.com/threads/278814/
 

If your SC module has compatible ports that could be instantiated into a pure Verilog/SystemVerilog design, then you don't need UVMC. Assuming you can make your SC module pin-compatible with your RTL DUT module, then you can set up your UVM stimulus to drive both modules, then have two monitors on the modules which send transactions to compare in your scoreboard.

If your module has TLM port and you don't to use the UVMC library, then you will have to re-invent what it does yourself.

Hope that helps; I don't have time to explain in any more detail.
 
If your SC module has compatible ports that could be instantiated into a pure Verilog/SystemVerilog design, then you don't need UVMC. Assuming you can make your SC module pin-compatible with your RTL DUT module, then you can set up your UVM stimulus to drive both modules, then have two monitors on the modules which send transactions to compare in your scoreboard.

If your module has TLM port and you don't to use the UVMC library, then you will have to re-invent what it does yourself.

Hope that helps; I don't have time to explain in any more detail.

Hi,

What do you mean by SC module having compatible ports that could be instantiated in Verilog/SystemVerilog? Is there any way to interface UVM and SC at signal level?
 

You can mix SystemC, Verilog, SystemVerilog, VHDL design units all in the same simulation if you follow your tools rules for compatible ports. See your tools documentation for mixed language simulation. Once you do that, your SC Module will appear to be no different than a Verilog module, then you can use similar UVM drivers/monitors to communicate with your SC module in the same way that you communicate with your Verilog module. There is nothing special you have to do with the UVM to accomplish this. You just need a simulator, like Questa, that supports mixed language SC/SV module instantiation.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top