Overview

Consortium

Results

Articles

SystemC(TM)

SystemC(TM) Plus Methodology

Events

Links


SystemC(TM) Plus Methodology




 

HOME


ODETTE page at OFFIS


SystemC(TM) Plus Methodology

 
OSSS
 
Design Flow
 
Tool Architecture
 
Synthesis
 
Veification
 
Co-Simulation
 
Generic Class Library
 
Application Specific
Class Library
 
Downloads
 
Publications

 

The object-oriented design methodology developed in the ODETTE is called SystemC(TM) Plus Methodology. The methodology is based on the SystemC(TM) system description language, and in particular, on C++/SystemC(TM) language subset called OSSS which is supported by the ODETTE Synthesiser.

The object-oriented extension to common SystemC(TM) gives the designer opportunity to use object-oriented features in hardware modelling and synthesis. Due to the fact, that the necessary extensions are based on additional C/C++-library (OOHWLib) for SystemC(TM), neither SystemC(TM) itself nor the included simulation-kernel or simulation tools based on official SystemC(TM) releases have to be adapted. Moreover, the additional class library is necesarry only for using synthesisable polymorphic objects and a special synthesisable inter-process channel-like communication mechanism called Global Objects. To take advantage of the other object-oriented features like classes, inheritance, method-based communication as well as class and module templates, fixed-point types and many others, the only requirement is to follow the rules and guidelines of OSSS (ODETTE System Synthesis Subset).
The OSSS specifies the C++/SystemC(TM) subset supported by the ODETTE Synthesiser.

 


SystemC(TM) Plus Methodology is comprised of three aspects:

  • SystemC(TM) system description language and simulation kernel
  • Neither SystemC(TM) Class Libraries nor the included simulation kernel and nor the tools supporting SystemC(TM) have to be adapted in order to take advantage of using SystemC(TM) Plus Methodology.

  • OSSS (ODETTE System Synthesis Subset) - C++/SystemC(TM) language subset supported by the ODETTE Synthesizer
  • C++/SystemC(TM) language subset and modelling techniques defined in ODETTE enable usage of object-oriented and other useful features (e.g. classes, objects, inheritance, method-based communication, templates, fixed-point types, etc) in hardware design and synthesis.

    New object-oriented modelling techniques provide higher synthesisable abstraction level of hardware design, which allows to handle higher complexity. Using object-oriented features is achieved together with the possibility of automated hardware synthesis.

    The object-oriented constructs and coding styles which are supported by the curent version of the ODETTE synthesis tool has been specified in the Language Reference Manual, which has been developed in the project. The document defines the input language for the synthesis tool.

  • additional C++ class library built on top of the SystemC(TM) Class Libraries
  • The OOHWLib - Object-Oriented HardWare Library, is an optional class library containing set of C++ classes, class templates and macros necessary for using certain object-oriented features for synthesis, namely polymorphism and special kind of inter-process communication. Only the use of polymorphic objects or global objects requires to include the OOHWLib for compilation.

     

     

     


    SystemC(TM) is a C++ class libraries and a methodology which allows to model systems, including both hardware and software. But, in spite of the fact that SystemC(TM) is build as C++ class libraries, it doesn't allow to use object-oriented modelling techniques for hardware synthesis. A SystemC(TM) synthesisable hardware model looks very similar to an equivalent VHDL or Verilog model with only syntactic differences.
    Besides, the functiolnality of the SystemC(TM) Compiler® corresponds to the functionality of the Behavioral Compiler®, hence the language susets are similar.

    Using OSSS and ODETTE synthesis tool you can benefit from using common object-oriented features in modelling and synthesis. OSSS extends the synthesisable SystemC(TM) subset by possibility of using class objects and most of the features related with C++ classes.

     


    Benefits of SystemC(TM) Plus Methodology

  • one language for whole systems at various abstraction levels
  • useful object-oriented features: inheritance, templates, global objects, polymorphism - available for both modelling and synthesis
  • handling higher complexity
  • higher level abstraction for modelling and automated synthesis path
  • high level functional verification
  • executable specification
  • early co-simulation preventing extensive design cycles
  • testbench environment reuse
  • target designs containing less lines of code
  • high speed simulation and verification
  • ability for efficient concurrent design process
  • shorter time-to-market and reduced design cost
  • first step towards real system level modelling
  •  


    The main change in the SystemC(TM) Plus Design Methodology over existing methodologies is the use of new types of elements in the design, namely objects. The ODETTE methodology defines two types of objects, structural objects and data objects.

    Structural objects are (usually) static and have a fixed type. They are defined as an integral part of the structural description of the design. The main difference between structural objects and "normal" VHDL entities is that structural objects are accessed via methods calls instead of signals. The ODETTE Generic Class Library contains many examples for structural objects, like Memory class and FIFO class.

    Data objects, on the other hand, are dynamic. They move from place to place in the design and their type can change during execution. Data objects differ from compound data structures available in VHDL in two main aspects. First, data objects can have dynamic type that changes during execution. Second, data objects can contain, beside the data itself, some of the functionality of the object. These properties of data objects, in addition to other object-oriented properties they hold, like encapsulation, raise new challenges to the hardware modelling. The ODETTE Application Specific Class Library contains examples for data objects, like ATM cells and IP packets.

    Each object-oriented SystemC(TM) description can be translated into an executable specification for simulation by compiling it with an ANSI C++ conformable compiler. Additionally, while using SystemC(TM) Plus methodology (OSSS description language), hardware can be directly synthesised from object-oriented descriptions, with a synthesis tool, developed in the framework of ODETTE project.

     

     


    Overview of the ODETTE project results

    On the following pages there have been described the main results of the project:

  • OSSS
  • Design Flow
  • Tool architecture
  • Synthesis
  • Verification
  • Co-Simulation
  • Generic Class Library
  • Application Specific Class Library
  • Downloads
  • Publications
  •