Skip to Main Content
Scheduling is considered the most important task in a high-level synthesis process. A heuristic algorithm based on the A* search to find optimal schedules quickly is presented. This algorithm reduces the computational effort required to obtain the best schedules on a pre-defined datapath by effectively pruning the non-promising search space. The pruning method is accomplished by an admissible heuristic that estimates the schedule length, or the cost, of a search node represented by a partially scheduled data flow graph. The search node with the least cost is considered the most promising candidate and is expanded next, avoiding an exhaustive search of the problem space. When the costs of the candidate search nodes are identical, the A* search is guided by a depth-first search to speed up the computation. Experimental results on several well known benchmarks with varying resource constraints show the effectiveness of the proposed algorithm. Multicycle, pipelined and chaining execution of operations are supported.