Build systems

PyStim can be used with any HDL simulator which supports shared library loading with global symbol visibility.

PyStim calls internal Python method therefore PyStim shared library should be loaded with global symbol visibility to resolve Python symbols at runtime. In addition PyStim version should match the Python version installed on the system.

Note

Note that the Python installation on the target OS must include Python shared libraries. PyStim utilizes these shared libraries to embed the Python interpreter.

PyStim SystemVerilog package should be compiled as part of the project.

Questa sim

To run PyStim under questa simulator, the following arguments are required:

vlog ... -f $PY_STIM_INSTALL_DIR/system_verilog/list/py_stim.f
vsim ... -gblso ${PY_STIM_INSTALL_DIR}/lib/libpystim.so -sv_lib ${PY_STIM_INSTALL_DIR}/lib/libpystim

-gblso - Open the specified shared object(s) with global symbol visibility. If multiple shared objects are specified, they will first be merged internally and then loaded as single shared object.

Synopsys VCS

To run PyStim under Synopsys VCS simulator, the following arguments are required:

vcs ... -full64 -f $PY_STIM_INSTALL_DIR/system_verilog/list/py_stim.f -sverilog -sv_root ${PY_STIM_INSTALL_DIR}/lib/libpystim.so -sv_lib ${PY_STIM_INSTALL_DIR}/lib/libpystim.so

Cadence Xcelium

To run PyStim under Cadence Xcelium simulator, the following arguments are required:

xrun ... -f $PY_STIM_INSTALL_DIR/system_verilog/list/py_stim.f -sv_lib ${PY_STIM_INSTALL_DIR}/lib/libpystim.so

Verilator

To run PyStim under Verilator, the following arguments are required:

verilator ... ${PY_STIM_INSTALL_DIR}/lib/libpystim.so"