Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/victorkoenders/fomu_quickstart

A quickstart project for a fomu PVT
https://github.com/victorkoenders/fomu_quickstart

Last synced: 18 days ago
JSON representation

A quickstart project for a fomu PVT

Awesome Lists containing this project

README

        

# FOMU quickstart

**Note: this quickstart only works on linux so far. Pull requests are very welcome**

This is a quickstart project you can use for your [fomu PVT](https://www.crowdsupply.com/sutajio-kosagi/fomu) board.

Note: this project is specifically set up for the PVT version. The difference between the multiple boards are [outlined here](https://workshop.fomu.im/en/latest/requirements.html#which-fomu-do-i-have).

All information in this project can be found in the [workshop](https://workshop.fomu.im/en/latest/index.html) and in the [example project](https://github.com/im-tomu/fomu-workshop/tree/master/verilog/blink-expanded).

To modify this project for other fomu versions (evt1, evt2, evt3, hacker), see the [original makefile](https://github.com/im-tomu/fomu-workshop/blob/master/verilog/blink-expanded/Makefile)

# Getting started

Simply run `source env.sh`. This script will check if the fomu toolchain is present in `tools/fomu-toolchain`. If the toolchain is not there, it will ask you to download it. The download is about 300MB.

Every time you start a new terminal session, you should run `source env.h` again.

# Developing verilog

Several good verilog resources exist:
- Introduction to verilog for beginners: [nandland.com](https://www.nandland.com/verilog/tutorials/tutorial-introduction-to-verilog-for-beginners.html)
- Simple blink program from the fomu examples: [blink.v](https://github.com/im-tomu/fomu-workshop/blob/master/verilog/blink-expanded/blink.v)
- Example projects for iCE40 can be found here: [github.com/nesl/ice40_examples](https://github.com/nesl/ice40_examples)

# Building your verilog code

Run `make` in this project should create an `build` directory. This directory will contain:
- `out.json` - Your .v file turned into a diagram (?), created by [yosys](http://www.clifford.at/yosys/)
- `out.asc` - A route diagram, generated by [nextpnr-ice40](https://github.com/YosysHQ/nextpnr)
- `out.bin` - A binary stream of the diagram, created by [icepack](http://www.clifford.at/icestorm/)
- `out.dfu` - The binary file, but modified so that the [dfu](http://dfu-util.sourceforge.net/) tools can upload it

# Resources

The fomu uses an fpga called "iCE40" [datasheet](http://www.latticesemi.com/~/media/LatticeSemi/Documents/DataSheets/iCE/iCE40LPHXFamilyDataSheet.pdf)

# Cleaning the project

Run `make clean` to clean the project.

# Changing toolchain location

By default the toolchain will be installed in `tools/fomu-toolchain`. You can manually download and configure a toolchain:
- Download the latest release from [https://github.com/im-tomu/fomu-toolchain/releases](https://github.com/im-tomu/fomu-toolchain/releases)
- Extract it where you want
- Add `$PWD/bin/` to your `$PATH`
- `make` should now work correctly