-
Notifications
You must be signed in to change notification settings - Fork 247
Installation
Icestudio needs the following tools to work. Make sure you have installed them before running icestudio:
- Python 3.9 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.9 or higher
sudo apt install python3 python3-pip python3-venv xclip libfuse2
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
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
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
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
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
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)
- Default: Icestudio Default Collection
- IceK: Constants
- IceWires: Wires and Buses
- IceIO: FPGA IO-pins
- IceGates: Logic gates
- IceMux: Muxes and demuxes
- IceCoders: Binary Encoders and Decoders
- IceFF: Flip-Flops
- IceRegs: Registers
- IceSRegs: Shift Registers
- 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)
- IceK-TB: Tests for iceK
- IceWires-TB: Test for icewires
- IceIO-TB: Tests for iceIO
- iceGates-TB: Tests for gates
- iceCoders-TB: Tests for iceCoders
- IceFF-TB: Tests for iceFF
- IceRegs-TB: Tests for registers
- IceSregs-TB: Tests for shift registers
- Jedi-Test: Tests for the blocks on the Jedi Collection