Abstract :
The quality of synthesis results for most high level synthesis approaches is strongly affected by the choice of control flow (through conditions and loops) in the input description. In this paper, we explore the effectiveness 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 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 study the effects of the code motions on the area and latency of the final synthesized netlist. Based on speculative code motions, we present a novel way to perform early condition execution that leads to significant improvements in highly control-intensive designs. Overall, reductions of up to 38% in execution cycles are obtained with all the code motions enabled.
Keywords :
finite state machines; high level synthesis; scheduling; code motions; conditionals; control flow; control intensive designs; early condition execution; execution cycles; finite state machine controller; heuristics; high level synthesis; input description; moving operations; reverse speculation; speculation; speculation techniques; speculative code motions; synthesized netlist; Automata; Computer science; Control system synthesis; Delay; Embedded computing; High level synthesis; Job shop scheduling; Motion control; Permission; Resource management;