30 lines
1.1 KiB
ReStructuredText
30 lines
1.1 KiB
ReStructuredText
VVP as a library
|
|
================
|
|
|
|
If configured with ::
|
|
|
|
--enable-libvvp
|
|
|
|
the vvp program will be built as a small stub that
|
|
depends on a shared library, libvvp.so.
|
|
The library may also be used to include a vvp simulation
|
|
in a larger program. Typically, the simulation communicates
|
|
with its host program using VPI, but since
|
|
almost all the functions of vvp are included in the library
|
|
it may be possible to use text output and interactive mode.
|
|
|
|
The accessible functions of the library are defined and documented
|
|
in the header file, vvp/libvvp.h. Although vvp is a C++ program, the
|
|
header file presents a C interface.
|
|
|
|
Note that the vvp software was not designed to be used this way
|
|
and the library is a straightforward recompilation of the program code.
|
|
That imposes some restrictions, mostly arising from the use
|
|
of static variables: only a single run of a single simulation instance
|
|
can be expected to work without special actions.
|
|
To mitigate these restrictions, the library may by loaded dynamically
|
|
and unloaded at the end of each simulation run.
|
|
Parallel simulation should be possible by making multiple copies
|
|
of the library with different names.
|
|
|