Speculation techniques for high level synthesis of control intensive designs
The automated synthesis of a design from its behavioral description, known as high level synthesis, has been the subject of much research, both in the industry and academia. However, the quality of results of current high-level synthesis systems is adversely affected by the presence of conditionals and loops. Furthermore, the effect of scheduling decisions and resource sharing on the control and steering logic overhead is not well-understood. In this paper, we show how various types of code motions, such as moving operations across conditionals, out of conditionals (speculation) and into conditionals (reverse speculation), can be effectively directed by heuristics so as to lead to improved synthesis results in terms of fewer execution cycles and fewer number of states in the finite state machine controller. We also describe and evaluate a new code motion technique known as early condition execution which executes the conditional check as soon as possible. Reductions of up to 50 % in execution cycles are obtained.