Object-oriented techniques for designing hardware
The spread of embedded systems comprising hardware and software components has been on the rise for the past few years and is still increasing. Today they have an impact on many areas of daily life, from the workplace to leisure time. At the same time, the requirements for these systems are steadily growing, along with their complexity. The current technology based on integrated circuits with several hundred million transistors on a single chip is able to meet most of these requirements. However, the state-of-the-art methods of hardware design cannot keep pace with technology's rapid advance. In light of this, the ODETTE project was funded by the Fifth Framework Programme to develop an object-oriented hardware design methodology. This new design methodology allows the hardware design community to take advantage of the object-oriented paradigm and follow its success in the software community. The SystemC™ language subset and modelling techniques defined during the ODETTE project enable the use of object-oriented and other useful features in the synthesis of hardware designs directly from object-oriented specifications. More importantly, the possibility of describing hardware by means of object-oriented C++ constructs makes the step from a C++-based system specification to a first hardware model for simulation a much easier task. Furthermore, it enables a simple transformation of system parts from hardware to software and vice versa. After system modelling and model testing is successfully finished, the designer must decide which parts to implement in hardware and software. Due to the inherent complexity of this task, it is common practice to perform partitioning manually. After partitioning it is essential to perform some architectural exploration of the hardware/software system, with significant impact on the design cost and time-to-market. The design approach proposed by the ODETTE project avoids some of the major disadvantages of the design flow by modelling the whole hardware and software system using one description language. The design is incrementally refined in small sections to allow the designer to implement design changes easily and verify the model. Documentation and the additional class library that is needed for applying this design methodology is freely available at the project's website: http://odette.offis.de/