2020-08-07 00:21:25 +02:00
|
|
|
# This thing
|
|
|
|
|
2020-08-09 18:47:08 +02:00
|
|
|
This is me playing around with my new Icebreaker FPGA and nmigen(_dg).
|
|
|
|
The goal is to find a nice project structure and perhaps find a way to
|
|
|
|
work on my Arty a7 with a fully FOSS toolchain for once.
|
2020-08-07 00:21:25 +02:00
|
|
|
|
2020-08-09 18:47:08 +02:00
|
|
|
My focus is currently on:
|
|
|
|
|
|
|
|
* Effortless dependency management
|
|
|
|
* Helper functions for inspection and documentation of the design
|
|
|
|
* Helper functions for targeting multiple FPGA platforms and boards
|
2020-08-20 01:15:28 +02:00
|
|
|
* Creating PRs to other projects with stuff I come across here
|
2020-08-09 18:47:08 +02:00
|
|
|
* Having fun with my FPGA
|
|
|
|
|
|
|
|
# Setup
|
|
|
|
|
|
|
|
pip install --user poetry
|
|
|
|
poetry config --local virtualenvs.in-project true # optional, makes cleanup easier
|
|
|
|
poetry install
|
|
|
|
|
|
|
|
And these optional dependencies, installed inside the virtualenv:
|
|
|
|
|
|
|
|
poetry install -E yosys
|
|
|
|
poetry install -E nextpnr-ice40
|
|
|
|
poetry install -E nextpnr-ecp5
|
|
|
|
|
|
|
|
# Running stuff
|
2020-08-07 00:21:25 +02:00
|
|
|
|
|
|
|
poetry run python -m fpga.icebreaker
|
|
|
|
poetry run python -m fpga.modules.blinker generate
|
2020-08-09 18:47:08 +02:00
|
|
|
|
|
|
|
To reduce the amount of typing:
|
|
|
|
|
|
|
|
poetry shell
|
|
|
|
|
|
|
|
|
|
|
|
# todo:
|
|
|
|
|
|
|
|
* Diagrams are nice
|
|
|
|
* Documentation generation would be nice
|
2020-08-20 01:15:28 +02:00
|
|
|
* A central nmigen-pmod repository would be nice
|
2020-08-09 18:47:08 +02:00
|
|
|
* A RISCV toolchain would be nice (make socs, and compile C, C++ or Rust)
|
2020-08-20 01:15:28 +02:00
|
|
|
* nextpnr-prxray or vpr would be nice
|
2020-08-09 18:47:08 +02:00
|
|
|
* Batch setup of Vivado would be nice
|
|
|
|
* Ability to synth on a host accessible with ssh would be nice
|