/icestudio

:snowflake: Experimental graphic editor for open FPGAs.

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

Build Status Version License Documentation Status

Visual editor for open FPGA boards. Built on top of the Icestorm project using Apio.

Graphic design -> Verilog, PCF -> Bistream -> FPGA

Supported boards

HX1K

Board name Interface
IceZUM Alhambra FTDI
Nandland Go board FTDI
iCEstick Evaluation Kit FTDI

HX8K

Board name Interface
Alhambra II FTDI
BlackIce Serial
BlackIce II Serial
icoBOARD 1.0 GPIO RPi
Kéfir I iCE40-HX4K FTDI
iCE40-HX8K Breakout Board FTDI

LP8K

Board name Interface
TinyFPGA B2 Serial
TinyFPGA BX Serial

Installation

Check the Documentation for more information.

Development

Install Python 2.7 and Node.js.

Atom editor with linter-jshint is recommended.

If you want to add blocks or examples, please contribute to icestudio-blocks, icestudio-examples or collection-default.

Download

git clone https://github.com/FPGAwars/icestudio.git
cd icestudio

Install

npm install

Execute

npm start

Languages

Language Translated strings
English Progress
Spanish Progress
French Progress
Galician Progress
German Progress
Basque Progress
Chinese Progress
Catalan Progress

Contribute!

Add or update the app translations using Poedit.

Developer note: use npm run gettext to extract the labels from the code.

Documentation

cd docs
make html
firefox _build/html/index.html

Package

npm run dist
Target OS Development OS Output files
GNU/Linux GNU/Linux (linux32,linux64).zip, (linux32,linux64).AppImage
Windows GNU/Linux (win32,win64).zip, (win32,win64).exe
Mac OS Mac OS (osx32,osx64).zip, osx64.dmg

Apio configuration

Apio backend is configured in the app/package.json file:

  • apio.min: minimum version (>=)
  • apio.max: maximum version (<)
  • apio.extras: list of external Python programmers (blackiceprog, tinyfpgab)
  • apio.external: load an external Apio package instead of the default one (e.g. /path/to/my/apio)
  • apio.branch: install Apio from the repository branch instead of PyPI.

An external Apio package can be also set on runtime using the ICESTUDIO_APIO environment variable.

Troubleshooting

If you get this error npm ERR! peerinvalid The package grunt@1.0.1 does not satisfy its siblings' peerDependencies requirements!, try to update your nodejs or execute:

npm update -g

More information

Roadmap

There is a Wishlist in the wiki with the features proposed by the Community. If you want to contribute with new features and ideas write in the Google Group.

We use the GitHub issues to track the work and schedule our new features and improvements.

Authors

Contributors

Version Contributors
0.3 Lorea-Aldabaldetreku, Carlos Díaz, Martoni, Xoan Sampaiño, Unai, Francisco Sayas, Pascal Cotret, Juan Jose Luna Espinosa, Salvador E. Tropea, redbeard, Eladio Delgado, Philipp van Kempen
0.2 Tomás Calvo, Juan González (Obijuan), Carlos Díaz, Xoan Sampaiño, Salvador E. Tropea, Democrito, Martoni, Pascal Cotret
0.1 Miguel Sánchez de León Peque

Credits

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

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

License

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