Overview

Consortium

Results

Articles

SystemC(TM)

SystemC(TM) Plus Methodology

Events

Links


ODETTE System Synthesis Subset




 

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

 

Language Reference Manual - specification of the OSSS (ODETTE System Synthesis Subset). OSSS is the SystemC(TM)/C++ language subset that is supported by the ODETTE synthesiser. The LRM document specifies the object-oriented modelling style and constructs which can be used in hardware modelling synthesis.

A presentations demonstrating the OSSS used in the SystemC(TM) Plus Methodology.

 


Using OSSS and ODETTE synthesis tool you can take advantage of using common object-oriented features in hardware 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.

You can take advantage of data encapsulation, inheritance, templates, polymorphism and object based inter-process communication.

 


Object-oriented features supported by the ODETTE synthesis tool

  • data encapsulation
  • Access to object's private data members is only possible be means of the appropriate methods. This allows for separation of details of how the data is stored from how it can be used. Thanks to that, it is possible to change how the data is stored without having to rewrite functions that use the data. And following this reasoning, it is possible to completely change of the internal functionality of the class object without changing its interface.

  • inheritance
  • Inheritance is an availability to create new data types by deriving them from existing ones. Derived data types inherit all the attributes and methods of the types from which they are derived (ancestors) and additionally it is possible to add new data members and methods or/and refine existing ones.
    OSSS gives designer the possibility to take advantage of both simple and multiple inheritance. Virtual base classes are also supported.

  • method based communication
  • Communication in realised by method calls, i.e. a data type is accessed by calling the methods it provides for this purpose, and objects communicate by calling methods on each other.

  • templates
  • The template feature is similar to the VHDL generics, but in contrast to VHDL templates allow to pass types as parameters.
    OSSS provides class templates, function templates and module templates.

  • polymorphism
  • Polymorphism describes a mechanism that allows objects to change their type dynamically during system runtime. This possibility to change the type is limited to a certain set of classes, which are related by inheritance.
    In OSSS using of polymorphism is provided by the additional C++ class library OOHWLib, which enables synthesisable polymorphism by means of polymorphic objects. This feature differs from the native C++ where polymorhic objects are pointers to the objects of various types,. The OOHWLib polymorphic objects are 'normal' objects, not pointers.
    This is because pointers are regarded, in most cases, not suitable for synthesis. Therefore OSSS does not provide pointer types.

  • classes
  • OSSS allows to use objects (e.g. class instances) for hardware modelling and synthesis.

     


    Global objects

    The global object is a special object-oriented construct for modelling shared resources and inter-process communication mechanism. Together with polymorphic objects, global objects are provided by the OOHWLib and are additional feature that extends the SystemC(TM) synthesisable feature.

    Global objects are declared as members of module and they can be accessed concurrently by different synchronous processes. For the case of such concurrent access global objects posses built-in scheduling capabilities that guarantee mutual exclusion. The scheduling strategy can be either one of the predefined schedulers provided currently by the OOHWLib or a user-defined scheduler.
    Global objects can be connected to each other to allow inter-module communication

     


    Benefits of modelling in OSSS

  • useful object-oriented features: inheritance, templates, global objects, polymorphism - available for both modelling and synthesis
  • handling higher complexity
  • no paradigm break between hardware design and software development
  • using of object-orientation in modelling software and hardware facilitate repartioning and architectural exploration
  • easier refinement process from executable model to synthesisable model
  • increased reuse and modelling flexibility owing to object-oriented modelling
  •