(SystemC using transactional-level modelling (TLM/ESL) is in a later section).
SystemC is a free library for C++ for hardware SoC modelling. »Download from www.systemc.org
It includes (at least):
Originally it served for architectural exploration.
Now being used for fast, transactional modelling.
Also now being used as an implementation language with its own synthesis tools.
Problem: hardware engineers are not C++ experts but they can be faced with complex or advanced C++ error messages when they misuse the library.
Benefit: General-purpose behavioural C code, including application code and device drivers, can all be modelled in a common language.