Support files for participating in a Fomu workshop
Go to file
2020-10-05 05:13:38 +02:00
.github Test riscv-zig-blink from CI 2020-05-10 22:23:49 +10:00
docs sphinxcontrib-verilog-diagrams was renamed to sphinxcontrib-hdl-diagrams 2020-10-05 05:00:50 +02:00
litex litex: workshop: correct name of output files 2020-08-04 15:46:00 +08:00
migen more formatting fixes 2020-01-23 12:12:22 +01:00
reference Adding PDF links. 2019-12-28 13:37:27 +01:00
riscv-blink Update main.c 2020-01-01 03:24:52 +02:00
riscv-rust-blink riscv-rust-blink: fix compatibility with nightly rust 2020-08-04 18:17:36 +08:00
riscv-zig-blink riscv-zig-blink: @breakpoint() now works 2020-05-10 17:39:50 +10:00
verilog Update docs references from verilog-blink to verilog/blink-expanded 2020-02-22 11:43:37 +11:00
.gitattributes Use diff-image on images. 2020-06-26 10:27:09 -07:00
.gitignore Adding conda env to .gitignore. 2019-12-26 00:10:52 +01:00
.gitmodules litex: sync with upstream builds 2020-08-04 09:06:39 +08:00
.readthedocs.yml Disable htmlzip creation. 2020-03-09 11:48:49 -07:00
.travis.yml .gitattributes: zig files must have eol=lf 2020-05-10 22:23:50 +10:00
get-toolchain.py get-toolchain.py: make to_download logic more reusable 2020-05-10 22:23:50 +10:00
LICENSE LICENSE: add Apache-2.0 license to this repository 2019-11-14 10:43:36 -08:00
micropython-fomu.dfu micropython: fix usb ID 2020-01-18 22:39:17 +08:00
README.md readme: requirements step to local build 2020-10-05 05:13:38 +02:00

Fomu Workshop

Hi, I'm Fomu!

Hi, I'm Fomu! This workshop covers the basics of Fomu in a top-down approach. We'll start out by learning what Fomu is, how to load software into Fomu, and finally how to write software for Fomu.

FPGAs are complex, weird things, so we'll take a gentle approach and start out by treating it like a Python interpreter first, and gradually peel away layers until we're writing our own hardware registers. You can take a break at any time and explore! Stop when you feel the concepts are too unfamiliar, or plough on and dig deep into the world of hardware.

The contents of this workshop is published at https://workshop.fomu.im

Repository Contents

Developing the Workshop

The workshop is written in reStructuredText (rst) and generated using Sphinx.

It is hosted on Read The Docs and currently uses the Material Design style developed by Google through a slightly custom version of the sphinx_materialdesign_theme package.

It uses the sphinxcontrib-session extension to properly highlight the example sessions and to allow copying only the session lines.

Other sphinx extensions which are used include;

Useful Resources for writing docs

Building Workshop Locally

On Mac & Linux

$ cd docs

Download conda environment with Python utilities:

$ make env
rm -rf env
make _download/Miniconda3-latest-Linux-x86_64.sh
make[1]: Entering directory '~/fomu-workshop/docs'
mkdir env
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O _download/Miniconda3-latest-Linux-x86_64.sh
--2020-01-03 10:15:07--  https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
Resolving repo.anaconda.com (repo.anaconda.com)... 104.16.131.3, 104.16.130.3, 2606:4700::6810:8203, ...
Connecting to repo.anaconda.com (repo.anaconda.com)|104.16.131.3|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 71785000 (68M) [application/x-sh]
Saving to: _download/Miniconda3-latest-Linux-x86_64.sh

_download/Miniconda3-latest-Linux-x86_64.sh                100%[==================>]  68.46M  1.29MB/s    in 17s

2020-01-03 10:15:29 (3.98 MB/s) - _download/Miniconda3-latest-Linux-x86_64.sh saved [71785000/71785000]

chmod a+x _download/Miniconda3-latest-Linux-x86_64.sh
make[1]: Leaving directory '~/fomu-workshop/docs'
_download/Miniconda3-latest-Linux-x86_64.sh -p ~/fomu-workshop/docs/env -b -f
PREFIX=~/fomu-workshop/docs/env
Unpacking payload ...
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: ~/fomu-workshop/docs/env

  added / updated specs:
    - _libgcc_mutex==0.1=main
    - asn1crypto==1.2.0=py37_0
    - ca-certificates==2019.10.16=0

<snip>

tk-8.6.10            | 3.2 MB    | ########################### | 100%
_libgcc_mutex-0.1    | 2 KB      | ########################### | 100%
xorg-libsm-1.2.3     | 25 KB     | ########################### | 100%
requests-2.22.0      | 84 KB     | ########################### | 100%
harfbuzz-2.4.0       | 1.5 MB    | ########################### | 100%
conda-package-handli | 942 KB    | ########################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

Install dependencies:

$ pip install -r requirements.txt

Build the html output:

$ make html
Running Sphinx v2.3.1
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 21 source files that are out of date
updating environment: [config changed ('version')] 15 added, 0 changed, 6 removed
reading sources... [100%] verilog
writing output... [100%] verilog
copying images... [100%] _static/wishbone-usb-debug-bridge.png
copying static files... ... done
copying extra files... done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded, 15 warnings.

The HTML pages are in _build/html.
Copying tabs assets

Start your web browser:

$ xdg-open ./_build/html/index.html

On Windows

FIXME: @xobs to add instructions here.