Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/victorkoenders/fomu_quickstart
- Owner: VictorKoenders
- Created: 2020-01-27T16:12:26.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-02-05T16:47:21.000Z (almost 5 years ago)
- Last Synced: 2024-11-05T18:56:45.481Z (2 months ago)
- Language: Shell
- Size: 7.81 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
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