Can we convert arbitrary or legacy programs to hardware ? Not very well in general.
Can we write new HLL programs that compile to good hardware ? Yes. But we must stick to the supported subset for synthesis.
Typical HLS restrictions:
An early example » DJG C-To-V compiler from 1995. » Bubble Sorter Example
Today many commercial HLS tools are widely available: SystemCrafter, Calypto Catapult, SimVision, CoCentric, C-Level Design, Forte Cynthesizer (now acquired by Cadence), C-to-Verilog.com and xPilot now called Vivado HLS, ... other tools are/were HardwareC, SpecC, Impulse-C, NEC Cyber Workbench, Synopsis SynphonyC.
And research HLS tools, such as Kiwi and LegUp, support floating point, pointers and some dynamic storage allocation using DRAM banks as necessary,
|15: (C) 2012-18, DJ Greaves, University of Cambridge, Computer Laboratory.|