The quality of synthesis results for most high level synthesis approaches is strongly a ected by the choice of control ow through conditions and loops in the input description. In this paper, we explore the e ectiveness of various types of code motions, such as moving operations across conditionals, out of conditionals speculation and into conditionals reverse speculation, and how they can be e ectively directed by heuristics so as to lead to improved synthesis results in terms of fewer execution cycles and fewer number of states in the nite state machine controller. We also study the e ects of the code motions on the area and latency of the nal synthesized netlist. Based on speculative code motions, we present a novel way to perform early condition execution that leads to signi cant improvements in highly control-intensive designs. Overall, reductions of up to 38 in execution cycles are obtained with all the code motions enabled.
Sumit Gupta, Nick Savoiu, Sunwoo Kim, Nikil D. Dut