SystemC(TM) Plus Methodology |
|
ODETTE page at OFFIS |
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).
SystemC(TM) Plus Methodology is comprised of three aspects:
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. 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
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:
|
|