llvm-fpga microblaze target

folks hi,

something i just wanted to double-check. is it possible to use, with
LLVM, entirely free software tools to build and upload to a xilinx
microblaze FPGA target? i take some c code, put it through llvm-fpga,
aaand... then what? is there any documentation about this stuff,
anywhere?

tia,

l.

Hello,

> something i just wanted to double-check. is it possible to use, with
> LLVM, entirely free software tools to build and upload to a xilinx
> microblaze FPGA target? i take some c code, put it through llvm-fpga,
> aaand... then what? is there any documentation about this stuff,
> anywhere?

There seems to be some confusion. The LLVM-Microblaze target
doesn't produce any Hardware-Descriptions. It generates code
that can be run on the Xilinx Microblaze softcore. I'm not entirely
sure if uploading the Code is also possible with free software. But I
am quite sure there are solutions.

Neither Microblaze [1] nor the tools to synthesize and upload it on an
FPGA are free [2].

There are some tools [3,4,5,6] that use llvm to generate hardware
descriptions in VHDL, Verilog or some other hardware description language. The only one that seems to be free software is the
code behind c-to-verilog.com [7]. Although its licensing isn't entirely
clear to me. The other tools are either not available for download
only available in binary form or have some kind of for non-commercial
use only in their licenses.

For the further synthesis steps there are some tools in different
states of development available [8,9,10].

For the final step producing a bitstream and flashing it on the FPGA.
There are to my knowledge no free software tools available. Although
[8] might prove me wrong.

So if you would to target an FPGA from C/C++/llvm with (mostly) free
software my best bet would be [7,8]. I'm quite sure no one ever tried
and it surely won't work out of the box.

If you have further questions concerning
the non-llvm stuff I mentioned feel free to mail me privately.

Good luck,
Christoph

[1] http://www.xilinx.com/tools/microblaze.htm
[2] http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.htm
[3] http://legup.eecg.utoronto.ca/
[4] http://www.ncsa.illinois.edu/~kindr/papers/rssi08_paper1.pdf
[5] http://cadlab.cs.ucla.edu/soc/
[6] http://c-to-verilog.com
[7] http://c-to-verilog.com/publications.html
[8] http://www.milkymist.org/fpgatools/
[9] http://iverilog.icarus.com/