Because C++ does not have a standardized ABI, all SystemC Library modules as well as all SystemC models built from these modules must be compiled with exactly the same compiler, compiler version, and compiler flags. It works perfectly fine to include binary SystemC models as long as they are Accellera compliant and the compiler guidelines just outlined are followed.
As of Simics 6 it is also possible to combine Simics SystemC modules compiled with different toolchains, provided each individual module has been constructed from a set of binaries built using the same toolchain.
The SystemC Library has been moved out of the Simics Base package to a separate package 1013 (SystemC Library). Users of the Simics SystemC Library must install the package 1013.
The SystemC Library supports the Accellera kernels 2.3.3, 2.3.4, and 3.0.0. The supported and known to be working configurations are:
| SystemC kernel version | Linux | Windows |
|---|---|---|
| 2.3.3/2.3.4 | GCC 6.4 or 12 with C++14 or C++17 | MSVC 2015/2022 |
| 3.0.0 | GCC 12 with C++17 | MSVC 2022 |
These are the only versions tested by Simics regression tests.
Simics does not guarantee that the Simics SystemC Library API will not change between releases. Simics' SystemC support is still being gradually improved and a completely frozen API would limit what improvements can be made. A lot of effort will, however, be made to avoid changing the API. If a change is needed, the end-user effort will be minimized.