User guide
19-32
Using the VCS / SystemC Cosimulation Interface
the other part at the hardware level and have full control over the level
of detail required for your simulation runs. This integration also helps
you to leverage the powerful features of SystemVerilog for
transaction-level verification and you can use the same testbenches
for hardware verification. TLI enables you to do the following:
• Call interface methods of SystemC interfaces from SystemVerilog
• Call tasks or functions of SystemVerilog interfaces from SystemC.
Methods and tasks can be blocking as well as non-blocking. Blocking
in the context of this document means the call may not return
immediately, but consumes simulation time before it returns.
However, non-blocking calls always return immediately in the same
simulation time.
The caller's execution is resumed exactly at the simulation time when
the callee returns, so a blocking call consumes the same amount of
time in both the language domains – SystemC and SystemVerilog.
Non-blocking calls always return immediately.
The tasks or functions must be reachable through an interface of the
specific language domain. This means that for SystemVerilog calling
SystemC, the TLI can connect to functions that are members of a
SystemC interface class. For SystemC calling SystemVerilog, the TLI
can call functions or tasks that are part of a SystemVerilog interface.
The use model of the transaction level interface consists of defining
the interface by means of an interface definition file, calling a code
generator to create the TLI adapters for each domain, and finally
instantiation and binding of the adapters.