- The kernel must be statically linked with the model in order to satisfy the
isolation properties expected by all Simics modules
- Awareness for sockets only supports a BUSWIDTH of 32 and 64
- Awareness for processes does not track spawned processes at run-time
- The memory profiling feature does not support threads instantiated using
SC_CTHREAD. Allocations made by threads instantiated using SC_THREAD are
supported
- The memory profiling results include allocations made by the SystemC kernel
- SystemC adapters from the same (Simics) module cannot be instantiated in
multiple cells. This limitation comes from the SystemC kernel itself, having a
global/shared sc_simcontext pointer. Simics supports multiple instances of
the kernel, by allocating a new context for each instance and updating the
global context at the enter/exit of each instance. To run the same SystemC
model in multiple cells, the model must be wrapped in separate modules.
- Hint: with CMake it is possible to produce multiple modules from the same
directory, thus making it easy to re-use the same sources
- Similar with the previous limitation, SystemC adapters from the same (Simics)
module do not work in multicore accelerator mode.
- Static SystemC objects are only supported for the first instance of each
Adapter created in Simics
- The
simics2tlm::Transaction gasket does not support checkpointing of
asynchronous transactions
- The TLM transaction injected to a multi passthrough initiator socket is only
sent to the first bound target socket.