A project builder for the iCE40 FPGA series. Uses the IceStorm toolset.
Follow the IceStorm installation instructions, including the installation of arachne-pnr.
git clone https://github.com/finnball/igloo.git
cd igloo
source source.sh
igloo.py --help
Creating projects involves abiding by the file structure and creating settings files.
igloo.py create projects/blink/cfg/config.ini
make
make burn
You should notice a pretty LED pattern.
make time
Displays the timing information using icetime.
Each project should come with a test bench. A simple way to simulate the project is to use iverilog and gtkwave.
make gtkwave
gtkwave ./build/iverilog/blink.vcd
This will produce a .vvp
file followed by a .vcd
file for gtkwave.
igloo.py create projects/uart_echo/cfg/config.ini
make
make burn
Run igloo.py echo
(Requires pySerial to be installed):
igloo.py echo "Hello There!"
Find the serial device the FPGA is connected to with a command such as:
dmesg | grep tty
Then change add the optional argument:
igloo.py echo "Hello There!" --tty=$(TTY)
Test if you have permission:
cat /dev/ttyUSB1
If you don't have permission to view:
sudo usermod -a -G dialout $(USER)
You may have to log out / in after running this command.