Academia.eduAcademia.edu

High-Level Synthesis Optimisation with Genetic Algorithms

Abstract

The results of a genetic algorithm optimisation of the scheduling and allocation phases of high-level synthesis are reported. Scheduling and allocation are NP complete, multi-objective phases of high-level synthesis. A high-level synthesis system must combine the two problems to produce optimal results. The genetic algorithm described provides a robust and efficient method of search capable o] combining scheduling and allocation phases, and responding to the multiple and changing objectives of high-level synthesis. The results show the genetic algorithm succeeds in finding optimal or near optimal results to classic benchmarks in small computational time spans. 1 I n t r o d u c t i o n High-level synthesis (HLS) is the automated synthesis of a register transfer level circuit from a behavioural description, summarised in [W94]. A behavioural circuit description specifies the ultimate goals of the circuit in terms of its logical function, timing and chip area constraints. High-level synthesis systems use the behavioural description to generate a structural design implementing a specified behaviour. The structural design consists of functional units such as arithmetic logic units (ALUs), multipliers, registers and buses. High-Level Synthesis involves two NP Complete optimisations. The first is a problem of scheduling in which the operations given by the behavioural description are assigned a control step. The second, which may be performed before, after or simultaneously to scheduling, is allocation, which assigns functional units to operations given in the behavioural description. These two optimisation phases have multiple minimisation objectives; i.e. to minimise functional units, control steps needed by the circuit, registers needed to store values, and the number of buses to interconnect the circuit. It is not possible to minimise all objectives; the desired goals for the circuit must be considered by the optimisation process for the optimisation of all objectives. Previous solutions to the problem have failed to adapt well to changing objectives.