Services and Modeling for Embedded Software Development
Embecosm divider strip
Prev  Next

2.1.  What is SystemC

Most software languages are not particularly suited to modeling hardware systems[1]. SystemC was developed to provide features that facilitate hardware modeling, particularly the parallelism of hardware, in a mainstream programming language.

An important objective was that software engineers should be comfortable with using SystemC. Rather than invent a new language, SystemC is based on the existing C++ language. SystemC is a true super-set of C++, so any C++ program is automatically a valid SystemC program.

SystemC uses the template, macro and library features of C++ to extend the language. The key features it provides are:

The full specification is 441 pages long [5]. The OSCI reference distribution includes a very useful introductory user guide and tutorial [7].



[1] There are some exceptions, most notably Simula67, one the languages which inspired C++. In some respects it is remarkably like SystemC.

Embecosm divider strip