A Python package to interface with SystemC library and script SystemC simulations
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Eyck Jentzsch 6d29f4575d Merge pull request 'develop' (#2) from develop into master 6 months ago
pysysc updating README and tests/examples 6 months ago
tests updating README and tests/examples 6 months ago
.gitignore Initial commit 2 years ago
.project Initial commit 2 years ago
.pydevproject update packaging and test 9 months ago
LICENSE Updated license formatting 2 years ago
MANIFEST.in update packaging and test 9 months ago
NOTES.md Added support for SCV & CCI, updated notes 2 years ago
PyScModule.cpp adapt paths for include and lib dirs 7 months ago
PyScModule.h add license identifier 8 months ago
README.md small type fix in README.md 6 months ago
setup.py adapt paths for include and lib dirs 7 months ago

README.md

PySysC

A Python 3 package to use SystemC from Python

How to setup the environment

The installation for PySysC is as follows (using bash shell). The process has been tested under CentOS7 and Ubuntu 20.04. Make sure a newer version of gcc is in your path (tested with gcc-6.3.0). Also the SystemC installation has to be reference with the environment variable SYSTEMC_HOME.

If you get an error complaining about missing Python.h, you need to install Python development headers. See the articel under https://blog.ducthinh.net/gcc-no-such-file-python-h.

# create virtual environment
python3 -m venv pysysc-env
# and avtivate it
. pysysc-env/bin/activate
# update pip to mekae sure we have the newest version
python3 -m pip install --upgrade pip
# install wheel package
python3 -m pip install wheel
# install cppyy, C++ std version needs to match the version used when building the SystemC library
STDCXX=11 python3 -m pip install cppyy
# clone of PySysC
git clone https://git.minres.com/SystemC/PySysC.git
# install PySysC, for development PySysC use 'python3 -m pip install -e`
SYSTEMC_HOME=<path to SystemC> python3 -m pip install -e PySysC

Running the example

To run the example you also need to clone and build the PySysC-SC repo. It contains the the code and libraries being used in the example. This project uses Conan.io as package manager so it should be installed (see down below). To deactivate conan and use a SystemC installation just comment out the line setup_conan() in CMakeLists.txt and set the environment variable SYSTEMC_HOME.

Run the router_eample.py

# get the PySysC-SC repo
git clone --recursive https://git.minres.com/SystemC/PySysC-SC.git
# build the project libraries as shared libs
cd PySysC-SC
mkdir -p build/Debug
cd build/Debug
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON ../..
make -j components
cd ../..
# now we are ready to run the example
python3 router_eample.py

Installing conan

# install conan into our virtual environment pysysc-env
python3 -m pip install conan
# create the default profile
conan profile new default --detect
# add the repo for SystemC packages used in the project
conan remote add minres https://api.bintray.com/conan/minres/conan-repo

TODO

  • pythonize sc_module with iteration protocol (__next__ and StopIteration exception)