ODETTE System Synthesis Subset |
|
ODETTE page at OFFIS |
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 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 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. 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. The template feature is similar to the VHDL generics, but in contrast
to VHDL templates allow to pass types as parameters. 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. 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.
Benefits of modelling in OSSS
|
|