Skip to content

This is me playing around with my new Icebreaker FPGA with nmigen(_dg). The goal is to find a nice project structure and perhaps find a way to work on my arty a7 with a FOSS toolchain

Notifications You must be signed in to change notification settings

pbsds/nmigen-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This thing

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.

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
* Creating PRs to other projects with stuff I come across here
* 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

poetry run python -m fpga.icebreaker
poetry run python -m fpga.modules.blinker generate

To reduce the amount of typing:

poetry shell

todo:

  • Diagrams are nice
  • Documentation generation would be nice
  • A central nmigen-pmod repository would be nice
  • A RISCV toolchain would be nice (make socs, and compile C, C++ or Rust)
  • nextpnr-prxray or vpr would be nice
  • Batch setup of Vivado would be nice
  • Ability to synth on a host accessible with ssh would be nice

About

This is me playing around with my new Icebreaker FPGA with nmigen(_dg). The goal is to find a nice project structure and perhaps find a way to work on my arty a7 with a FOSS toolchain

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages