Overview

Consortium

Results

Articles

SystemC(TM)

SystemC(TM) Plus Methodology

Events

Links


 

SystemC(TM)




 

HOME


ODETTE page at OFFIS

 


 

OSCI

ESCUG

downloads

 

Copyright, Trademarks and Licensing Notice

All the information about SystemC(TM) and OSCI is taken from www.systemc.org.
SystemC(TM) and SystemC(TM) logo is a trademark of Synopsys.

All the documents and libraries available for download at this page is taken from www.systemc.org and is copyrighted by OSCI Contributors. All Rights reserved.

This software and documentation are furnished under the SystemC Open Source License. The software and documentation may be used or copied only in accordance with the terms of the License agreement.

Detailed information - www.systemc.org

 


 

Open SystemC(TM) Initiative OSCI

OSCI homepage

The Open SystemC(TM) Initiative (OSCI) is an independent, not-for-profit organisation composed of a broad range of companies, universities and individuals dedicated to supporting and advancing SystemC(TM) as a de facto open source standard for system-level design.

The Open SystemC(TM) Initiative is based on an OSI-compliant Open Source licensing model, meaning that the underlying source code that forms the platform of SystemC(TM) is available to the community at large, without charge.

To catalyse the communication between SystemC(TM) users and OSCI Steering Group, which is responsible for driving the evolution of the SystemC(TM) standard, the European SystemC(TM) Users Group (ESCUG) has been formed.

ESCUG home page

 


 

SystemC(TM)

SystemC(TM) is a library of C++ classes and a simulation kernel. This additional class library adds hardware-related constructs to the standard C++ language.
C++ is the language choice for software algorithm and interface specifications because it provides the control and data abstractions necessary to develop compact and efficient system descriptions. Most designers are familiar with this language and the large number of development tools associated with it.
SystemC(TM) augments C++ to add both system modelling features and hardware modelling features, down to and including the register-transfer level.
Adding system and hardware modelling constructs to C would require proprietary extensions to the language, which is not an acceptable solution for the industry. The C++ object-oriented programming language provides the ability to extend the language through classes, without adding new syntactic constructs. SystemC(TM) provides these necessary classes and allows designers to continue to use the familiar C++ language and development tools.

The SystemC(TM) is being developed in stages. It was introduced in September 1999 and the first significant release was SystemC(TM) 1.0. That version provided the necessary constructs to model hardware architecture including hardware timing, concurrency, and reactive behaviour that are missing in standard C++.
Then, the SystemC(TM) 2.0 was introduced which enables system level modelling at higher abstraction level.
SystemC(TM) 2.0 provides new modelling features like channels, intefaces and events. They allows designer to model of communication and synchronization at higher abstraction level then RT or behavioural. The SystemC(TM) 2.0 also extends the SystemC(TM) 1.0 with such features like dynamic sensitivity, global and local watching and introduce new style of modelling called Transaction Level Modelling - maybe the most interesting feature of the SystemC(TM) language.

The SystemC(TM) design flow is based on the refinement methodology. Refinement process means that the design is not converted from a C level specification in one large effort but it is slowly refined in small sections to add necessary hardware constructs. Part of the refinement process is a communication refinement, which aims in transformation from abstract transaction-based SystemC(TM) communication channels into pin-based HW implementation. Another refinement step is s behaviour refinement of SystemC(TM) modules.

You can use SystemC(TM) and standard C++ development tools to create a system-level model, quickly simulate to validate and optimise the design, explore various algorithms and architectures, and provide the hardware and software development teams with an executable specification of the system. An executable specification is essentially a C++ program that exhibits the same behaviour as the system when executed.
The SystemC(TM) enables using the same description language for modelling both software and hardware, and to perform simulation at a wide range of abstraction levels and at various stages of the design process.

SystemC(TM) provides many efficient and useful modelling mechanisms, but unfortunetly most of these mechanisms and some of the interesting SystemC(TM) data types (e.g. fixed point data types) are not supported by the current synthesis tools. For this reason SystemC(TM) should be regarded as the efficient language for modelling executable system specification when the main focus is on the simulation.
In order to synthesis the SystemC(TM) 2.0 models designer must perform long process of refinement from the abstract level to the behavioural or RT level where most of the SystemC(TM) modelling constructs are similar to the VHDL constructs.
This is mostly due to the fact that functionality of the CoCentric® SystemC Compiler, the most advanced SystemC(TM) synthesis tool, corresponds to the functionality of the Behavioral Compiler® and their synthesis subsets of input language are similar.
Designer should also be conscious that even though SystemC(TM) is based on the C++, the current usage and tools made for this language are mainly using the C aspect, and C++ features are used mainly for the SystemC(TM) Class Library. This means that the common object-oriented features, such as objects, templates or inheritance can not be synthesised by existing synthesis tools.

 

For more information about SystemC(TM), refer to the SystemC(TM) web site: OSCI homepage

 


 

All the documents and libraries available for download at this page is taken from www.systemc.org and is copyrighted by OSCI Contributors. All Rights reserved.
This software and documentation are furnished under the SystemC Open Source License. The software and documentation may be used or copied only in accordance with the terms of the License agreement.
Detailed information - www.systemc.org

  • SystemC(TM) core language and examples
    SystemC 2.0.1 lib.exe
    SystemC 2.0.1 lib.tgz
  • SystemC(TM) Functional Specification
  • SystemC(TM) User's Manual
  • SystemC(TM) 2.0 Language Reference Manual
  • SystemC(TM) -Introduction - Stuart Swan - Cadence Design Systems Inc.
  • SystemC(TM) Verification library SCV 1.0b2
  • SystemC(TM) Verification Tutorial - C.Norris Ip, Stuart Swan - Cadence Design Systems Inc.
  •  

    SystemC(TM) Plus Methodology download page