Support files for participating in a Fomu workshop
Go to file
Sean Cross b718bb2304 micropython-fomu: add new version of micropython
Signed-off-by: Sean Cross <sean@xobs.io>
2019-08-19 20:40:43 +08:00
img workshop: adding content 2019-08-19 20:40:21 +08:00
litex litex: fix typo in lxbuildenv 2019-08-19 18:33:50 +08:00
reference reference: add pvt and evt[3] files 2019-08-19 18:33:50 +08:00
riscv-blink riscv-blink: make ledd registers global 2019-06-19 14:41:54 -07:00
riscv-usb-cdcacm riscv-usb-cdcacm: add example project 2019-06-19 14:50:37 -07:00
verilog-blink verilog-blink: add verilog version of blink example 2019-06-19 18:04:42 -07:00
.gitattributes initial commit 2019-06-19 09:51:22 -07:00
.gitignore gitignore: organize and comment on files 2019-06-19 18:01:06 -07:00
.gitmodules litex: move examples into litex/ directory 2019-06-19 14:31:43 -07:00
micropython-fomu.dfu micropython-fomu: add new version of micropython 2019-08-19 20:40:43 +08:00
README.md README: add README and reference files 2019-06-21 09:33:04 -07:00
Workshop.md workshop: adding content 2019-08-19 20:40:21 +08:00

Fomu Workshop

This repository contains files and projects that will be useful during the Fomu workshop.

Fomu aims to be accessible from multiple levels, from interactive REPL-style scripting all the way down to low-level hardware description languages.

Micropython

Micropython is a work-in-progress port to Fomu. Currently the following features exist:

  • Manipulate RGB LED
  • Read SPI flash ID

Required Software

  • dfu-util
  • terminal emulator (screen, Tera Term, picocom, etc.)

Usage

To load Micropython, use dfu-util:

# If this is the first time loading Micropython
$ dfu-util -D micropython-fomu.dfu

# If Micropython has already been loaded
$ dfu-util -e

Then access the USB serial port using your serial program of choice.

RISC-V

You can directly program the RISC-V softcore on Fomu. The VexRiscv implements an RV32I core with no multiply unit.

Required Software

Usage

The riscv-blink/ directory contains a simple "blink" program. This utilizes the LEDD hardware PWM block to produce a pleasing "fade" pattern. The riscv-blink/ example project is entirely self-contained. All you have to do is go into the directory and run make.

For a more advanced example, the riscv-usb-cdcacm/ directory contains a program that enumerates as a USB serial port. This simply echoes back any characters that are typed, adding 1 to the value. For example, if you send "a", it will respond with "b".

As with micropython, you can load these binaries with dfu-util -D output.bin.

HDL

HDL interfaces directly with the hardware. With Verilog, you have complete control over the chip. For easier debugging, LiteX lets you write in Python, which provides you with a USB debug bridge.

Required Software

The first is a simple Verilog blink, and is located in the verilog-blink/ directory. Go into this directory and run make FOMU_REV=???. You will need to specify the version of Fomu you're using. Once it is built, you can load the bitstream with dfu-util -D blink.bin.