Open source ecosystem for open FPGA boards


Keywords
apio, cli, fpga, icestorm, lattice, manager, package, python, verilog
License
GPL-3.0
Install
pip install apio==0.6.4

Documentation

PyPI Version Build Status License

       

Open source ecosystem for open FPGA boards

What is Apio?

Apio is a multiplatform toolbox with static pre-built packages to verify, synthesize, simulate and upload your verilog designs into the supported FPGA boards

What??????

Apio makes extremely easy the process of working with FPGAs. Go from scratch to having a blinky LED in your FPGA board in minutes! This is because it is based only on Free/Libre Open Source Software (FLOSS). Just install it and use it as you want

In this animation you can see the whole process of testing the Blinky led circuit: Just type one command and the circuit will be synthesized, and uploaded into the FPGA

Think of Apio as a small FPGA distribution, which collects and packages FLOSS toolchains for FPGAs. You can install packages in Linux, Mac and Windows for synthesizing hardware, verifying and simulating from verilog files

The goal is making it very easy to start with FPGAs

As the user gh02t said in this post on Hacker-news:

Apio is a command line tool that automates installing the toolchain for your FPGA and running it. It just simplifies things, you don't have to use it if you'd rather call the individual tools for synthesis, P&R, simulation etc. It'd be reasonable to think of it as akin to a very smart Makefile combined with an automatic package manager, specialized to FPGAs (it's based on PlatformIO). It's nice when you're still kind of getting oriented, because you don't need to know how to set up and invoke the different tools... just call apio build or apio simulate

Apio and higher level tools

Apio has a command line interface (CLI). It is the building block for other higher level tools, like Icestudio, Apio-IDE or working with FPGAs from IDEs such as Visual Studio Code

A circuit in Icestdio

A verilog circuit in Apio-IDE

A verilog circuit in VSCode

Documentation

Find all the information on this WIKI PAGE

Apio packages

Package Installation Description
tools-oss-cad-suite apio install oss-cad-suite Selected binaries from the YosysHQ/oss-cad-suite project
examples apio install examples Verilog basic examples, pinouts, etc
drivers apio install drivers Drivers tools (only for Windows)
gtkwave apio install gtkwave Simulation viewer. GTKWave project (only for Windows)

Supported boards

HX1K

Board name Interface
IceZUM Alhambra FTDI
Nandland Go board FTDI
iCEstick Evaluation Kit FTDI
iCEblink40-HX1K Digilent Adept

HX8K

Board name Interface
Alhambra II FTDI
BlackIce Serial
BlackIce II Serial
Blackice-mx Serial
CAT Board GPIO RPi
icoBOARD 1.0 GPIO RPi
Kéfir I iCE40-HX4K FTDI
iCE40-HX8K Breakout Board FTDI
Alchitry Cu FTDI
iceFUN Serial
iceWerx Serial

LP8K

Board name Interface
TinyFPGA B2 Serial
TinyFPGA BX Serial

UP5K

Board name Interface
arice1
Fomu DFU
FPGA 101 Workshop Badge Board FTDI
iCEBreaker FTDI
iCEBreaker bitsy DFU
iCE40 UltraPlus Breakout Board FTDI
UPDuino v1.0 FTDI
UPDuino v2.0 FTDI
UPDuino v2.1 FTDI
UPDuino v3.0 FTDI
iCESugar v1.5 FTDI
OK-iCE40Pro FTDI
Pico-Ice DFU

ECP5

Board name Interface
OrangeCrab r0.2 DFU
ButterStick r1.0 DFU
TinyFPGA-EX-rev1 Serial
TinyFPGA-EX-rev2 Serial
ULX3S-12F Ujprog
ULX3S-25F Ujprog
ULX3S-45F Ujprog
ULX3S-85F Ujprog
Versa
ColorLight-5A-75B-V61 FT2232H
ColorLight-5A-75B-V7 FT2232H
ColorLight-5A-75B-V8 FT2232H
ColorLight-5A-75E-V6 FT2232H
ColorLight-5A-75E-V71 FT2232H, FT232H or USB-Blaster
ColorLight-i5-v7.0 FT2232H, FT232H or USB-Blaster
iCESugar-Pro FT2232H, FT232H or USB-Blaster
FleaFPGA-Ohm FT2232H, FT232H or USB-Blaster
ECP5-Evaluation-Board FT2232H

LP1K

Board name Interface
iCESugar-nano FTDI

NOTE: all supported Icestorm FPGAs can be used with --fpga or --size, --type and --pack options.

Authors

Contributors

Credits

  • APIO was inspired by PlatformIO.

  • FPGAwars community has developed this project in a voluntary and altruistic way since 11/2016.

  • BQ sponsored this project from 02/2016 to 11/2016. Thanks.

License

Licensed under GPL 2.0 and Creative Commons Attribution-ShareAlike 4.0 International License.