Abstract
In High-Level Synthesis (HLS), there is a gap on the quality of the synthesized results between data-flow and control-flow dominated behavioral descriptions. Heuristics destined for the former usually perform poorly on the latter. To close this gap, in this paper we advocate for a unifying intermediate design representation and adapted heuristics that have the potential to accommodate both types of designs as well as designs that have a mixed dataflow and control-flow nature. To illustrate our point we focus on the problem of scheduling and describe a list scheduling heuristic, which uses a probabilistic priority function that exploits conditional resource sharing and speculative execution possibilities. Experiments show that results are quite insensitive to syntactic variance and that conditional behavior is effectively accounted for. To further validate our approach, the CODESIS interactive synthesis tool based on the proposed internal representation and synthesis techniques has been developed.