This is a simple, sample project that blinks some LEDs on the ULX3S ECP5 FPGA board. It only uses Open Source software to accomplish this goal, from Verilog to bitstream.
- yosys (at least git revision 5387ccb041f4acafc96c7b3fcf8db04dddfb8ab5)
- nextpnr (at least git revision 31c199f674a0c2cc381eb09510aaa8ad8d5ae3fd, with ECP5 support enabled)
- openocd with 4f134c755d7209a8eb1c4460e09f5c68622ef0bd cherrypicked or merged
Clone this repository. Either use it as a starting point for your project, or just copy the files over.
By default, we target the ULX3S with an LFE5U-85F. If you target a different chip, you will have to edit the PART_*
variables in the Makefile, and, to use OpenOCD for flashing, you will have to edit the idcode in ulx3s/openocd.cfg
.
To build the blinky, run make flash
.
YOSYS
- path to Yosys binary. By default,yosys
in path.NEXTPNR
- path tonextpnr-ecp5
binary. By default,nextpnr-ecp5
in path.ECPPACK
- path toecppack
from prjtrellis. By default,ecppack
in path.TRELLIS
- path to prjtrellis installation directory. By default,/usr/share/terllis
.
The blinky code comes from nextpnr and is licensed under the ISC License.
The Makefile, LPF constraint file, OpenOCD script, title photograph and this README are under CC0.