The integration of hard processor cores along with the avalability of soft processor cores provide an exceptional design flexibility to reconfigure hardware. The Xilinx Virtex-II Pro/Virtex-4/Virtex-5 contain up to four embedded Power405 and Power440 hard processor IP cores. Examples of such soft processors include Nios from Altera [3], LEON3 from Gaisler [30], and MicroBlaze and PicoBlaze from Xilinx [97] among many other open-source or commercial soft processor implementations. Due to the superior performance and design flexibility, reconfigurable hardware has been used in the development of many embedded systems. As shown in Figure 5.1, for development using these modern FPGA devices, the application designer has the choice to map portions of the target applications to be executed either on soft processors as software programs or on customized hardware peripherals attached to the processors. While customized hardware peripherals are efficient for executing many data intensive computations, processors are efficient for executing many control and management functionalities as well as computations with tight data dependency between computation steps (e.g. recursive algorithms). In some design cases, using processors can lead to more compact designs and require much smaller amounts of resources than customized hardware peripherals. These compact designs may fit into a small FPGA device and thus, effectively reducing the quiescent energy dissipation [93].