Hardware/software partitioning is the process of dividing an application into software running on a microprocessor and hardware coprocessors. In recent years, embedded systems have evolved into complex multifunction systems implemented using a mix of both hardware and software. The allocation of the system functionality into hardware and software components has a significant impact on the system performance.Hardware/software partitioning is a key issue in the design of embedded systems. The thesis formalizes an adaptive multi-objective genetic algorithm used to partition embedded systems according to specification. In our algorithm, with the definition of the distributing parameter, the probability of crossover and mutation can change with the fitness of the individuals adaptively; and the introduction of the similar individual filtration enables to accelerate the elimination of similar individuals effectively. Further, price, area and power consumption are optimized while cost constraints are met. Finally, experimental results indicate that the algorithm has advantages over previous work in terms of stability and efficiency. |