Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm,...

16
FuseSoc - cores never been so much fun Olof Kindgren Qamcom Research & Technology, FOSSi Foundation

Transcript of Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm,...

Page 1: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

FuseSoc - cores never been so much fun

Olof KindgrenQamcom Research & Technology, FOSSi Foundation

Page 2: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

Who am I?

Page 3: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

What is FuseSoc?

FuseSoC is a package manager…

...and a build tool for HDL

Page 4: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

What is FuseSoc?

FuseSoC is a package manager… ...and a build tool for HDL

Page 5: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

Why use FuseSoc?

Increase portability

Reduce maintenance

“Focus on your core business, not your cores”

Page 6: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

FuseSoC isthe most used package manager

non-intrusive

modular

extendable

resourceful

battle-proven

Page 7: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

Case : Target different tools

fusesoc run --target=sim serv

uses default simulator

fusesoc run --target=sim --tool=modelsim serv fusesoc run --target=sim --tool=xsim serv

No changes needed.

Some tool-specific setting needed

Page 8: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

FuseSoC Edalize

Page 9: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

FuseSoC VUnitCoCoTBASIC flows?...

Page 10: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

Kactus2MyHDLMigenCLaSHIceStudio...

Edalize

Page 11: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

Tomorrow● Generators

● Formal verification

● Use flags

Page 12: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

Future● Librecores integration

● Edalize everywhere

● Industry standard - World domination

Page 13: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

? ??

?

?

??

? ?

??

??

Anyone?

Page 14: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

That’s it folks!https://github.com/olofk/fusesochttp://fusesoc.nethttps://gitter.im/librecores/fusesoc

Don’t miss...

Page 15: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

Core description files (example)name : ::picorv32:0-r1filesets: rtl: files: [picorv32.v] file_type : verilogSource tb: files: [testbench.v] file_type : verilogSource tb_verilator:

files: [testbench.cc : {file_type : cppSource}]parameters: firmware: {datatype : file, paramtype : plusarg} COMPRESSED_ISA:

datatype : strdefault : 1paramtype : vlogdefine

targets: default: filesets: [rtl] test: default_tool: icarus filesets: [rtl, tb, "tool_verilator? (tb_verilator)"] parameters: [COMPRESSED_ISA, firmware] toplevel: - "tool_verilator? (picorv32_wrapper)" - "!tool_verilator? (testbench)"

Page 16: Olof Kindgren Qamcom Research & much fun …supported tools Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado Simulations with ghdl, icarus, isim, modelsim, rivierapro,

supported tools● Synthesis/P&R support with icestorm, ise, quartus, trellis, vivado● Simulations with ghdl, icarus, isim, modelsim, rivierapro, vcs, verilator, xsim● Linting with spyglass, verilator● In the works

○ Lattice Diamond, icecube2, radiant○ ncsim○ Formal verification with symbiyosys