Skip to content

Installation

Juan Gonzalez-Gomez edited this page Sep 5, 2022 · 56 revisions

Contents


Introduction

Icestudio needs the following tools to work. Make sure you have installed them before running icestudio:

  • Python 3.7 or higher. Python interpreter. It is very likely that you already have it installed
  • Python venv module. Python virtual environment. On some platforms it is installed when intalling the python interpreter

NOTE for OpenSuse 15.3 users: This distribution installs python 3.6, which is not compatible with Icestudio. You need to install python 3.7 or higher

Installation on Linux

Ubuntu 22.04

Step 1: Installing the dependencies

sudo apt install python3 python3-pip python3-venv xclip libfuse2

For the next steps follow the instruction for Ubuntu 20.04

Ubuntu 20.04

Step 1: Installing the dependencies

sudo apt install python3 python3-pip python3-venv xclip

Step 2: Downloading icestudio

Download the executable file from the github Releases page

For example, for instaling the 0.6.0 version on Linux 64 bits, this is the file you would download: icestudio-0.6.0-linux64.AppImage

Step 3: Give executable permisions to the icestudio appimage file

You can do it directly from the file manager....

...or you can give permission from the command line. Go inside the folder were you downloaded the icestudio appimage and type this command:

chmod +x icestudio-0.6.0-linux64.AppImage

Step 4: Running icestudio

Just doble click on the icestudio appimage file to run it

The first time you run it this window pops up:

You can either click yes or no. (It just creates a .desktop file in your ~/.local/share/applications local folder)

Then the Icestudio main window shows up:

Finally click on the Close button

You can see the whole process on this animation

Alternativelly you can execute the app image from the command line:

./icestudio-0.6.0-linux64.AppImage

Step 5: Select your default board

The first time you run icestudio it will ask you to select a board

Just pick one from the list (it can be changed later on the Select/Board menu option):

Click on OK when done

Two new notifications will show up on the bottom right. The green one indicates that the board has been selected and icestudio is ready. The yellow notification is the next step to follow: Installing the toolchains.

It can also be done later with the option Tool/Toolchains/Install from the menu

Step 6: Installing the toolchains

At this point you will be abe to create and view icestudio circuits. But if you want to build them and upload them into your FPGA board you need to install the toolchains

Click on the yellow notificacion from the previous step or click on the Tools/Toolchains/Install menu option. You need internet conection for this steps, as the toolchains should be downloaded. You can also install the toolchains manually

Click on OK

  • Initially the python virtual environment (venv) will be created

  • Then the python packages are installed in the virtual environment, using the pip tool from this environment. These packages are apio and some programmers for different boards: Blackiceprog, Tinyfpgab, Tinyprog, icefunprog

Notice that these python tools are installed in the Virtual environment, so that they DO NOT interfere with other python packages installed on your machine

  • Finally all the apio packages are installed. This is the most important part as it contains the tools for doing the synthesis, place and route and verification for the different FPGA families. These packages are downloaded from their repos on github








  • Installation completed!. When the installation is finished a green notification on the bottom right will be shown: Toolchain installed

The yellow notification is the next step to follow: Installing the Drivers

Step 7 (Last step): Installing the Driver

At this point you will be abe to verify and build circuits (create the bitstreams). But if you want to upload them into your FPGA board you have to grant Icestudio access to your USBs. It requires privilegde access

For enabling the Driver just click on the white box ("Click here to enable the Drivers") or do it with the Tools/Drivers/Enable menu option. You will be asked to enter your user password

After enabling the driver just unplug and reconnect the board. You are done!

On Linux, what the Enable driver menu option does is to create the /etc/udev/rules.d/80-fpga-ftdi.rules file. This file grants the user access to the USB

You can also create it manually if you are an advanced linux user (Installing the Drivers from outside icestudio)


Getting started

Collections

  • Default: Icestudio Default Collection

Stable

Development

  • IceBoards: blocks and examples for the diferent FPGA boards
  • IceComp: Comparators
  • IceArith: Integer arithmetics
  • IceCounter: Counters
  • IceSignals: 1-bit signal managment
  • IcePLL: PLLs
  • IceLEDOscope: Measuring signals
  • IceLEDs: Displaying on LEDs
  • IceHearts: Timming signal generation
  • IceInputs: 1-bit inputs
  • IceRok: Block probes for Icestudio => Sigrok integration (with Pulseview GUI)
  • IceMachines: Working with Machines (simple state machines with a standar interface)
  • IceSerial: Serial Asynchronous communications
  • IceMem: Working with Memories
  • IceMeasure: Measuring cycles and time in your circuits, very easily
  • IceStack: Working with stacks
  • IceFlash: Read from spi serial flash memories
  • IceBus: Accesing and sharing simple buses
  • IceLCD: Components and controllers for LCDs
  • IceUnary: Working with unary numbers
  • IceCrystal: Drive displays from Open Source FPGAs
  • ice-chips-verilog: IceChips is a library of all common discrete logic devices in Verilog
  • ArithmeticBlocks: FPGA signed and unsigned integer operations, 16, 24 and 32 bits, + - * / sqrt min max compare etc.
  • iceSynth: Audio synthesis
  • icebreaker: Blocks and examples for the icebreaker OpenFPGA board
  • Jedi: blocks of the FPGA Jedi hardware Academy
  • LOVE-FPGA: Hardware elements and examples for the LOVE-FPGA project (Linking Of Virtual Electronics to FPGAs)
  • Stdio: Standard Input-Output in different devices
  • CT11: Ejemplos del cuaderno ténico 11: Señales del sistema y Medición con el LEDOscopio
  • Generic: Icestudio Generic Collection
  • Logic: Icestudio Logic Collection
  • IceInterface: Serial, SPI, I2C... (TODO)

Testbenches

Developers

Contribute

HELP

Release history

Clone this wiki locally