While electronic components in cars become more and more complex to optimize comfort, security, and environmental impact, the increasing pressure in the automobile market permanently involves cost reductions.
A further increase of complexity comes with the special demands of automotive electronics, e.g.reliability and robustness over long periods of time in a harmful environment regarding to vibrations, temperature changes, and electro-magnetic interference.
Design and verification of such systems are exceeding challenges that need support by appropriate methods and tools. Often, the V-Model is the basis of hardware/software development processes. After thespecification, an abstract model is created to perform first analyses. MATLAB/Simulink and SystemC are common in this context. Then, a stepwise refinement followsuntil a final implementation is found.
The way from a system model to a final implementation requires lots of code transformations, either as a step to a lower level of abstraction, or to realize several design decisions. Some transformations need the creativity of a designer. Others follow concrete rules, they rather laborious work and a possible sourceof needless errors.
A cooperatve effort between Robert Bosch GmbH and OFFIS has developed a framework for rule based design transformations. It includes an easy way to define transformation rules and to apply them automatically to a design description in the hardware description languages VHDL and VHDL-AMS.
In this contribution, an extension of the framework for C++ and SystemC is presented. Hence, the designer is able to use the same tool at higher levels of abstraction too. Furthermore, inter-language transformations become possible.
The C++/SystemC front end developed by us works in three phases. In the first phase, a customized preprocessor is called, in the second the actual C++ parser. In the third phase, the generated C++ syntax tree is transformed to a modified syntax tree with XSLT. Due to the fact that the front end is based on a regular C++ front end, it is easy to extend it for other C++ based languages like SystemC-AMS or OSSS . One solely has to integrate the particular header files.
To read this external content in full, download the complete paper from the author archives online at Offis Instutute of Information Technology