juanmard/icestudio

View on GitHub
resources/README.md

Summary

Maintainability
Test Coverage
# How to add a new board

Create a subdir in [`boards`](boards) with a unique name/identifier for the board.
Add the following files to that subdir:

- `info.json`, including the following fields:
  - `label`: string. The name that will be shown in the GUI.
  - `device`: string. The main FPGA device on the board.
  - `datasheet`: string. URL to the board datasheet/website.
  - `prog`: list of strings. The identifiers of the programmers supported for the board.
  - `pinout`: a placeholder, to be filled from the constraints file.
- A `*.pcf` or `*.lpf` constraints file.

Optionally:

- A `iomode.json` file for constraining the mode of I/O pins. By default, all pins are considered to be
  of mode `inout`; therefore, `input` and `output` need to be defined only.
- A diagram named `pinout.svg`.
- A `rules.json` file.

Then, execute `regenereate_pinouts.py` for having the `pinout` field of the `info.json` filled automatically.
Check the content of field `pinout` in `info.json`.

Furthermore, check whether a JSON file exists in [`devices`](devices), which corresponds to the device field in the
`info.json` file.
If it is missing, it can be optionally added.

Last, commit the changes and open a Pull Request!

NOTE: adding boards to Icestudio does not imply that the designs can be synthesized or implemented. Currently, Icestudio
depends on `apio` for those tasks. Therefore, adding boards to Icestudio is only useful for defining I/O pins and/or for
using Board Rules. Further features require separated PRs to `apio`'s sources.

# Supported boards

## HX1K

| Board name                                                              | Interface |                                                          |
| :---------------------------------------------------------------------- | :-------: | :------------------------------------------------------- |
| [IceZUM Alhambra](https://github.com/FPGAwars/icezum)                   |   FTDI    |                                                          |
| [Nandland Go board](https://www.nandland.com/goboard/introduction.html) |   FTDI    | [#394](https://github.com/FPGAwars/icestudio/issues/394) |
| [iCEstick Evaluation Kit](http://www.latticesemi.com/icestick)          |   FTDI    |                                                          |

## HX4K

| Board name                                                                               | Interface |
| :--------------------------------------------------------------------------------------- | :-------: |
| [Alhambra II](https://github.com/FPGAwars/Alhambra-II-FPGA)                              |   FTDI    |
| [Kéfir I iCE40-HX4K](http://fpgalibre.sourceforge.net/Kefir/)                            |   FTDI    |
| [EDU-CIAA-FPGA](http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=desarrollo:edu-fpga) |   FTDI    |

## HX8K

| Board name                                                                                                       | Interface |
| :--------------------------------------------------------------------------------------------------------------- | :-------: |
| [Alchitry-Cu](https://alchitry.com/products/alchitry-cu-fpga-development-board)                                  |   FTDI    |
| [BlackIce](https://hackaday.io/project/12930-blackice-low-cost-open-hardware-fpga-dev-board)                     |  Serial   |
| [BlackIce II](https://github.com/mystorm-org/BlackIce-II)                                                        |  Serial   |
| [icoBOARD 1.0](http://icoboard.org/about-icoboard.html)                                                          | GPIO RPi  |
| [iCE40-HX8K Breakout Board](http://www.latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40HX8KBreakoutBoard) |   FTDI    |
| [iceFUN](https://www.robot-electronics.co.uk/icefun.html)                                                        |  Serial   |

## LP8K

| Board name                                              | Interface |
| :------------------------------------------------------ | :-------: |
| [TinyFPGA B2](https://tinyfpga.com/b-series-guide.html) |  Serial   |
| [TinyFPGA BX](https://tinyfpga.com/bx/guide.html)       |  Serial   |

## UP5K

| Board name                                                                                                                    |    Interface    |
| :---------------------------------------------------------------------------------------------------------------------------- | :-------------: |
| [Fomu (PVT)](https://github.com/im-tomu/fomu-hardware)                                                                        |    dfu-util     |
| [iCEBreaker](https://github.com/icebreaker-fpga/icebreaker)                                                                   |      FTDI       |
| [iCEBreaker bitsy](https://github.com/icebreaker-fpga/icebreaker)                                                             |      FTDI       |
| [UPDuino v1.0](http://gnarlygrey.atspace.cc/development-platform.html#upduino)                                                |      FTDI       |
| [UPDuino v2.0](http://gnarlygrey.atspace.cc/development-platform.html#upduino_v2l)                                            |      FTDI       |
| [FPGA 101 Workshop Badge Board](https://github.com/mmicko/workshop_badge)                                                     |      FTDI       |
| [iCE40 UltraPlus Breakout Board](http://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/iCE40UltraPlusBreakoutBoard) |      FTDI       |
| [dadamachines doppler](https://dadamachines.com/product/doppler/)                                                             | samd51 on board |
| [iCESugar v1.5](https://github.com/wuxx/icesugar)                                                                             |       HID       |

# Planned support

| Board name                                              | Interface |                                                          |
| :------------------------------------------------------ | :-------: | :------------------------------------------------------- |
| [Orange Crab](https://github.com/gregdavill/OrangeCrab) |   FTDI    | [#392](https://github.com/FPGAwars/icestudio/issues/392) |