SystemC is a free library for C++ for hardware SoC modelling. »Download from www.systemc.org
SystemC was developed over the last ten years. There have been two major releases, 1.0 and 2.0. Also of importance is the recent release of the add-on TLM library, TLM 2.0. (SystemC using transactional-level modelling (TLM/ESL) is covered later).
Greaves is enhancing SystemC with a power modelling library.
It includes (at least):
Originally aimed as an RTL replacement, for low-level hardware modelling.
Now being used for high-level (esp. transactional) modelling for architectural exploration.
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 confusing C++ error messages.
Benefit: General-purpose behavioural C code, including application code and device drivers, can all be modelled in a common language.