30

I try to make an survey/history of all C-to-hardware compilers.

For all that dont know them: they take C code then translate it into some hardware description language (like VHDL or Verilog), which then can be used to generate hardware (usually it gets mapped to an FPGA - but I am not limited to that, ASIC as target would be fine too).

I already have quite collected some (+ info about them). So my question is: Do you know any other compilers (and if so have any references, pointers, information about them)?

My list so far:

  • AutoESL
  • Bach-C (Sharp)
  • C2H (Altera)
  • C2R (Cebatech)
  • C2Verilog (CompiLogic / C Level Design / Synposys)
  • Carte / MAP (SRC Computers)
  • Cascade (CriticalBlue)
  • CASH (Carnegie Mellon University, Pittsburgh)
  • Catapult-C (Mentor Graphics)
  • CHC (Altium)
  • CHiMPS (University of Washington (Seattle) / Xilinx / soon commercial?)
  • C-to-Verilog (Haifa)
  • Comrade (TU Braunschweig E.I.S. + TU Darmstadt E.S.A.)
  • CVC (Hitachi)
  • Cyber (NEC)
  • Daedalus (Uni Amsterdam, Uni Leiden)
  • DIME-C (Nallatech)
  • eXCite (YXI)
  • FP-Compiler (Altera)
  • FpgaC (OpenSource)
  • GarpCC (Callahan, University of California at Berkeley)
  • GAUT (UBS-Universität Frankreich)
  • Handel-C (Celoxica)
  • Hthreads (University of Kansas)
  • Impulse-C (Impulse Accelerated Technologies)
  • Mitrion-C (Mitrionics)
  • DWARV (TU Delft)
  • NIMBLE (Synopsys, E.I.S. Braunschweig)
  • NISC (University of California, Irvine)
  • PICO-Express (Synfora => Synopsys)
  • PRISC (Harvard University, Cambridge)
  • ROCCC (University of California, Riverside)
  • SPARK (University of California, Irvine)
  • SpecC (Gajski et al.)
  • Trident (OpenSource, Los Alamos National Laboratory)
  • UGH
  • VEAL
  • vfTools (Vector Fabric)
  • xPilot (University of California, Los Angeles)

(I know not all on the list have C as soure, some use C-similar dialect, and almost all support only a subset, I am also interrested in such).

EDIT: I know how to use google, so I already checked the ususal suspects and have included the results. So it is very likely that someone can only answer here if he does really know some paper or exotic tool (or maybe not so exotic but that implements the functionality somehow hidden, and the compiler is not advertised).

flolo
  • 15,148
  • 4
  • 32
  • 57
  • Also consider C++ hardware description tools. What might be really interesting is a C++ DSEL for hardware. – paperjam Apr 11 '11 at 08:45
  • Nice list! In the "Carte / MAP (SRC Computers)" entry, MAP is the MAP processor (containing FPGAs, memory and support logic) in an SRC system, Carte is the programming environment used to compile C code for the microprocessors and MAP processors in an SRC system. – David Pointer Mar 02 '12 at 21:03
  • with some many to choice from how do i know which to start off with to play around? – pyCthon Feb 05 '13 at 02:48
  • @pyCthon: That depends on many things (e.g. some are targeting ASIC design, some are FPGAs, some are Softcores) - hard to say without any more constraints (not much easier when you have them). Generally the commercial are far more nature than the academic, but there you have often to pay a high price for. – flolo Feb 05 '13 at 17:41
  • @flolo true could you a recommend a decent FPGA opensource one? – pyCthon Feb 05 '13 at 17:44

6 Answers6

4

System-C?

Jerry Coffin
  • 476,176
  • 80
  • 629
  • 1,111
  • 2
    System-C is a language (or better a lanuange extensions/library) not a specific compiler - also the subset which is synthesizeable is very limited. But good tip - I could include those as well. – flolo Apr 09 '11 at 06:53
  • Ah, I didn't catch the subtlety that you were looking specifically at compilers rather than languages. It did seem a bit odd that it wasn't included, since it's better known than many you did list. I guess now I know why... – Jerry Coffin Apr 09 '11 at 06:54
2

Rotem CToVerilog, I don't know anything about it, just googled it up.

Prof. Falken
  • 24,226
  • 19
  • 100
  • 173
  • alredy got it (its that between Chimps and Comprade), but thanks (I edited now the source to it). – flolo Apr 11 '11 at 06:47
2

LegUp: http://legup.eecg.utoronto.ca/

1

OpenCL support at Altera and Xilinx.

OpenCV support by Xilinx. OpenCL + OpenCV support by Altera. See this post. I talk about the OpenCL+OpenCV both based on C languages.

Altera has OpenCL SDK which is used with Quartus. Xilinx has Vivado HLS.

Community
  • 1
  • 1
shparekh
  • 820
  • 10
  • 20
1

There is also HercuLeS (provisional name), which is MY HLS tool.

Get the (old) tech. demo from here http://www.nkavvadias.co.cc/misc/hls-demo-linux-0.0.1.tar.gz Things have progressed since then.

Let me know if you want a tech. presentation detailing a real-life examples, e.g. a multi-function CORDIC.

Cheers, Nikolaos Kavvadias

0

Cynthesizer, which is SystemC based. CellMath will go the other way, take Verilog and create a C model.