SystemC (SC) sandbox, initially branched from version 2.3.2 downloaded from here.
Standards are developed in a collaborative and open environment by technical working groups. Working groups operate by building consensus regarding requirements, proposed new features, and implementation. Ultimately these may become part of a future standard. Participation in the technical working groups is the primary way that progress is made in improving the SystemC language, implementation, and associated libraries.
All of our members and community are welcome to download the specifications and documents made publicly available by the working groups.
Note: In 2016 Accellera re-licensed all SystemC supplemental material under the Apache 2.0 License. Access to some previous releases of SystemC material may still require acceptance of the terms of the SystemC Open Source License while the process of updating license statements is underway. Please contact the Accellera office if you have any questions.
Item | Download | Update |
---|---|---|
SystemC 2.3.2 (Includes TLM) | Core SystemC Language and Examples (tar.gz) | 2017-10-15 |
SystemC Regression Test Suite (tar.gz) | 2017-10-15 | |
SystemC AMS 2.0 | Analog/Mixed-signal (AMS) Language Reference Manual | 2016-08-12 |
SystemC Verification 2.0.1 | SystemC Verification Library (SCV) (tar.gz) | 2017-12-08 |
SystemC Synthesis 1.4.7 | SystemC Synthesis Subset Language Reference Manual | 2016-03-11 |
Third party code is located in the ext
dirctory.
Item | Download | Update |
---|---|---|
doulos | doulos.zip | 2015 |
All the solution and project files are updated to build with MSVC++ 14.14 _MSC_VER == 1914 (Visual Studio 2017 version 15.7)
-
Downloading the source code Register at http://www.accellera.org and then download systemc-2.3.2.tgz from the Accellera SystemC standards download page
-
Uncompressing the source code tarballs
$ tar zxvf systemc-2.3.2.tgz
- Configuring SystemC Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/systemc]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
For example, the following configure switches will create the following
<root> -|
|-bin -|
|-docs
|-examples
|-include
|-lib |
|- debug-qt-linux64
|- release-qt-linux64
|- <other builds>
|-include
|-systemc-2.3.2
To handle threads, SystemC relies on QuickThreads, a fast implementation of user's threads. QuickThreads speeds-up threads switching compared to the slower kernel POSIX threads and thus considerably improves overall simulation performance. To configure the SystemC building process with the built-in QuickThreads (recommended), do the following at the command prompt:
$ SC_ROOT=<clone_directory>/bin
$ mkdir ${SC_ROOT}
$ mkdir ${SC_ROOT}/lib
$ mkdir ${SC_ROOT}/lib/debug-qt
$ mkdir ${SC_ROOT}/lib/release-qt
$ cd systemc-2.3.2
$ mkdir build
$ mkdir build/debug-qt
$ mkdir build/release-qt
$ cd build/release-qt
build/release-qt$ ../../configure --prefix=${SC_ROOT} --libdir=${SC_ROOT}/lib/release-qt
or
build/release-qt$ cd ../debug-qt
build/debug-qt$ ../../configure --prefix=${SC_ROOT} --enable-debug --libdir=${SC_ROOT}/lib/debug-qt
However, if you intend to instrument your simulator (e.g. with valgrind) to debug the simulator memory leaks, bad memory accesses, pointers, and uninitialized memory reads, you should use the slower kernel POSIX threads (pthreads). To configure the SystemC building process with the kernel POSIX threads, do the following at the command prompt:
$ SC_ROOT=<clone_directory>/bin
$ mkdir ${SC_ROOT}
$ mkdir ${SC_ROOT}/lib
$ mkdir ${SC_ROOT}/lib/debug-pt
$ mkdir ${SC_ROOT}/lib/release-pt
$ cd systemc-2.3.2
$ mkdir build
$ mkdir build/debug-pt
$ mkdir build/release-pt
$ cd build/release-pt
build/release-pt$ ../../configure --prefix=${SC_ROOT} --libdir=${SC_ROOT}/lib/release-pt --enable-pthreads
or
build/release-pt$ cd ../debug-pt
build/debug-pt$ ../../configure --prefix=${SC_ROOT} --enable-debug --libdir=${SC_ROOT}/lib/debug-pt --enable-pthreads
Note: To build the SystemC examples using the make files you will have to set PTHREADS=1
. If you forget to set this flag the make build will fail to link.
- Compiling and installing SystemC To compile SystemC, do the following at the command prompt from each of the respective subdirectories:
//for example, building the release QuickThreads version
build/release-qt$ make
build/release-qt$ make install
- checkout
$ git checkout -b my-new-feature
- commit
$ git commit -m "<brief notes on changes>
- push to branch
$ git push origin my-new-feature
- clone
$ git clone https://github.com/c-w-m/sc.git
- commit
$ git commit -m "<brief notes on changes>
- push
$ git push origin master