ABSTRACT

Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Embedded system development seeks ever more efficient processors and new automation methodologies to match the increasingly complex requirements of modern embedded applications. Increasing effort is invested to accelerate embedded processor architecture exploration and implementation and optimization of software applications running on the target architecture. Special purpose devices often require application-specific hardware design so as to meet tight cost, performance and power constraints. However, flexibility is equally important to efficiency: it allows embedded system designs to be easily modified or enhanced in response to evolution of standards, market shifts, or even user requirements, and this change may happen during the design cycle and even after production. Hence the various implementation alternatives for a given function, ranging from custom-designed hardware to software running on embedded processors, provide a system designer with differing degrees of efficiency and flexibility. Often, these two are conflicting design goals, and while efficiency is obtained through custom hardwired implementations, flexibility is best provided through programmable implementations.