/fpga

Experimenting with FPGA open-source toolchains.

Primary LanguageVerilogGNU General Public License v3.0GPL-3.0

fpga

Experimenting with FPGA open-source toolchains.

Tools

The FPGA that is developed on is the iCEstick from Lattice Semiconductor.

This expands on other FPGA open-source tools such as icestorm and iverilog among others.

A quick script is used to generate the directory structure for new modules, simply run perl create.pl <module> <project> to create a folder with all the necessary files. If the project is the same as the module name (i.e. you're creating a small sub-module) the project field can be omitted.

> perl create.pl module project
Creating module module files.
 +- module/Makefile
 +- module/module.sv
 +- module/module_tb.sv
 +- module/icestick.pcf

Builds

adder : Simple adder module.
count : Binary counter.
dance : LED pattern display.

Requirements

IceStorm

git clone https://github.com/cliffordwolf/icestorm.git icestorm
cd icestorm
make
sudo make install

Arachne-PNR

git clone https://github.com/cseed/arachne-pnr.git arachne-pnr
cd arachne-pnr
make
sudo make install

Yosys

git clone https://github.com/cliffordwolf/yosys.git yosys
cd yosys
make
sudo make install

Netlistsvg (RTL netlist diagrams)

More information given here.

(install nodejs)
git clone https://github.com/nturley/netlistsvg
cd netlistsvg
npm install -g

iVerilog (simulations)

macOS

brew install icarus-verilog

Scansion (VCD viewer for macOS)

Download here.