Skip to content


Repository files navigation

FPGA Workshop

Basic FPGA development for absolute beginners



When joining the workshop as a participant make sure to have these things done.

Compiling the tool chain takes 35 to 55 minutes, during which you cannot take part in the exorcizes in the workshop.

  • Installed Icestorm toolchain, that supports the Lattice ICE40UP5K FPGA.
    • Install manually
    • Install by script
    • Install by packagemanager: apt-get install arachne-pnr arachne-pnr-chipdb iverilog gtkwave (on Ubuntu 19.04 or a recent Debian)
    • For those that forget there will be a Virtual machine, that will suffice during the workshop.
  • A micro USB cable
  • A working laptop that can run the Icestorm toolchain (Linux or OSX should be fine, for Windows I don't know#)
  • 3 to 4 hours of your time, an Saturday the 13th (There will be some breaks)
  • Some basic knowledge about programming and digital circuits
  • A laptop that is capable of running the Icestorm toolchain.

Checking the tool chain

A simple check to see if the toolchain supports the 'ICE40UP5K', do:

$ arachne-pnr -h

    -d <device>, --device <device>
        Target device <device>.  Supported devices:
          384 - Lattice Semiconductor iCE40LP384
           1k - Lattice Semiconductor iCE40LP/HX1K
           5k - Lattice Semiconductor iCE40UP5K
         lm4k - Lattice Semiconductor iCE40LM4K
           8k - Lattice Semiconductor iCE40LP/HX8K
        Default: 1k

When it shows the line '5k - Lattice Semiconductor iCE40UP5K' the tool chain supports the UPDuino V2.



The hardware for one workshop kit


dimdm IceTools Github

Requisites for people wanting to do it hardcore

sudo apt install libeigen3-dev libftdi-dev libboost-all-dev

git clone icestorm
cd icestorm
make -j$(nproc)
sudo make install
git clone arachne-pnr
cd arachne-pnr
make -j$(nproc)
sudo make install
git clone nextpnr
cd nextpnr
cmake -DARCH=ice40 -DCMAKE_INSTALL_PREFIX=/usr/local .
make -j$(nproc)
sudo make install
git clone yosys
cd yosys
make -j$(nproc)
sudo make install


For example 11 you'll need to install Icarus Verilog and GTKWave

git clone git:// iverilog
cd iverilog
make -j$(nproc)
sudo make install
svn checkout svn:// gtkwave-code
cd gtkwave-code/gtkwave3-gtk3
make -j$(nproc)
sudo make install

Further reading


Workshop that is going to be given together with the UPduino dev board






No packages published