ABSTRACT

The design of embedded hardware/software systems is often underlying strict requirements concerning various aspects, including real-time performance, power consumption, and die area. The design of an embedded system often starts from a software description of the system in C language, for example, an executable specification developed by the designer or a reference implementation of the application, for example, from standardization organizations or the open-source community. This chapter describes the tool with all its features and how such tools can be used for design and optimization of embedded hardware/software systems. Numerous techniques exist that can be applied for optimizing software, such as loop unrolling, loop-invariant code motion, common subexpression elimination, or constant folding and propagation. Besides software profiling and optimization, a system simulation including the hardware accelerators needs to be carried out to evaluate the overall performance.