Skip to content

multigcs/FPGA-blinky

Repository files navigation

FPGA-blinky

this is a collection of templates (with Makefile) for different FPGA's and toolchains

all templates are generated by the https://github.com/multigcs/LinuxCNC-RIO project with an minimal configuration (blinking LED)

Boards:

  • Alhambra-II (ice40hx4k)
  • ICEBreakerV1.0e (ice40up5k)
  • TangNano20K (GW2AR-LV18QN88C8/I7)
  • TangPrimer20K (GW2A-LV18PG256C8/I7)
  • arty-a7-35t (xc7a35ticsg324-1l)
  • Colorlight5A-75E (ecp5-25K)
  • Colorlight_i5-v7.0 (ecp5-25K)
  • Lattice-ICE40HX8K (ICE40HX8K)
  • Olimex-ICE40HX8K-EVB (ICE40HX8K)
  • TangNano9K (GW1NR-LV9QN88PC6/I5)
  • TinyFPGA-BX (ice40lp8k)
  • Cyclone IV FPGA EP4CE6E22C8N Development Board USB V2 (EP4CE6E22C8N / Cyclone IV)
  • Open Bench Logic Sniffer (xc3s250e / Spartan-3E)
  • Bugblat PIF_2 (LCMXO2-7000HC-5TG144C)

Toolchains:

  • yosys/nextpnr
  • gowin
  • ISE/Webpack
  • quartus
  • Vivado
  • Diamond

quick-start

add the toolchain to your system PATH, in my case:

export PATH=$PATH:/opt/oss-cad-suite/bin/
export PATH=$PATH:/opt/Xilinx/Vivado/2023.1/bin/
export PATH=$PATH:/opt/gowin/IDE/bin/
export PATH=$PATH:/opt/intelFPGA_lite/22.1std/quartus/bin/
export PATH=$PATH:/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/
export PATH=$PATH:/opt/diamond/3.12/bin/lin64/

go into the target directory and run make:

cd EP4CE6E22C8/
make

build times

this is only a small comparison, it is not very meaningful and varies depending on the system and project

time make
Part Toolchain duration(user) duration(system) files bitstream
ice40 hx4k yosys+nextpnr 0.79s 0.08s blink.v rio.v rio.bin
xc7a35ticsg324-1l vivado 80.59s 4.73s blink.v rio.v build/rio.bit
LCMXO2-7000HC-5TG144C quartus 8.91s 0.40s blink.v rio.v build/rio_build.bit
ecp5 25k yosys+nextpnr 1.54s 0.14s pll.v blink.v rio.v rio.bit
ecp5 25k yosys+nextpnr 1.50s 0.14s pll.v blink.v rio.v rio.bit
"Cyclone IV E" EP4CE6E22C8 quartus 22.86s 2.64s blink.v rio.v rio.sof
ice40 up5k yosys+nextpnr 0.76s 0.08s pll.v blink.v rio.v rio.bin
ice40 hx8k yosys+nextpnr 0.76s 0.09s pll.v blink.v rio.v rio.bin
ice40 hx8k yosys+nextpnr 0.76s 0.08s blink.v rio.v rio.bin
GW2AR-18C GW2AR-LV18QN88C8/I7 gowin 9.07s 0.22s blink.v rio.v impl/pnr/project.fs
GW1N-9C GW1NR-LV9QN88PC6/I5 yosys+nextpnr 12.71s 0.73s blink.v rio.v rio.fs
GW2A-18C GW2A-LV18PG256C8/I7 yosys+nextpnr 27.36s 1.60s blink.v rio.v rio.fs
ice40 lp8k yosys+nextpnr 0.82s 0.10s pll.v blink.v rio.v rio.bin
xc3s250e-4-vq100 ise/webpack 18.50s 0.43s blink.v rio.v rio.bit