phanrahan / magma

magma circuits
Other
242 stars 23 forks source link

Document the cross product of mantle target vs compilation output #264

Open rsetaluri opened 6 years ago

rsetaluri commented 6 years ago

There are 3 main mantle targets: -- boards (ice40, altera, etc.) -- CoreIR -- Verilog (not heavily used)

There are 3 main compilation outputs: -- Verilog -- CoreIR -- CoreIR-Verilog

I believe the following are supported: -- boards x Verilog -- CoreIR x CoreIR -- CoreIR x Verilog -- CoreIR x CoreIR-Verilog

It is important to note the following are not generally supported/advised: -- boards x CoreIR -- Verilog x (any)

phanrahan commented 6 years ago

The mantle_target corresponds to the fpga. If you select a board, the program magma sets the mantle target to the fpga on that board.

Allowed mantle targets:

-- coreir -- ice40 -- spartan3 -- spartan6 -- kintex7 -- cyclone4

Ideally, coreir would work on all fpgas (hence, all boards). It has been tested in the ice40, but not the other fpgas.

Right now verilog is not a target. It would be nice to have a generic verilog backend that outputs clean looking verilog.

rsetaluri commented 6 years ago

Understood. Though I imagine Ross would argue magma -> verilog shouldn't be generally used; instead one should go magma -> coreir -> verilog. In which case we can continue to improve the verilog output by coreir.