From 47565196c6b0fd5ae1e39083781d2707737c8c4f Mon Sep 17 00:00:00 2001 From: Sean Cross Date: Tue, 18 Jun 2019 10:11:09 -0700 Subject: [PATCH] index: more rough outline Signed-off-by: Sean Cross --- index.html | 138 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 129 insertions(+), 9 deletions(-) diff --git a/index.html b/index.html index 0e9f768..3095da1 100644 --- a/index.html +++ b/index.html @@ -118,15 +118,28 @@
  • Blinkenlights
  • +

    Workshop Outline

      +
    1. What do I need to get started?
    2. What is Fomu, and what is an FPGA?
    3. What can I do with Fomu?
    4. What makes Fomu special?
    +
    +
    +

    What do I need to get started?

    +
      +
    1. Synthesis
    2. +
    3. Place-and-Route
    4. +
    5. Packer
    6. +
    +
    +
    +

    What is an FPGA?

    @@ -137,6 +150,7 @@ FPGAs are measured in resources called LUTs or LCs.

    +

    What is Fomu?

    @@ -145,6 +159,15 @@ Unlike many other PCBs, Fomu does not have a separate USB controller chip. This means that any projects that want to use the USB port must include a USB softcore.

    + +
    +

    Fomu Block Design Diagram

    +
    + +
    +

    ICE40 Features

    +
    +

    What is this PCB?

    @@ -168,16 +191,113 @@ * Swap PMODa pins for I3C

    +
    -

    Levels of Fomu

    -

    - Fomu aims to be accessable on three levels: -

      -
    1. Python / Interpreted
    2. -
    3. RISC-V
    4. -
    5. Verilog / FPGA
    6. -
    -

    +

    What modifications does it have?

    +
      +
    • Shorting out two zero-ohm resistors
    • +
    • Programming SPI flash
    • +
    • Bending SPI flash pins inward
    • +
    • Mounting crystal on its side
    • +
    • Attaching power to crystal
    • +
    +
    + +
    + +
    +

    Levels of Fomu

    +

    + Fomu aims to be accessable on three levels: +

      +
    1. Python / Interpreted
    2. +
    3. RISC-V
    4. +
    5. Verilog / FPGA
    6. +
    +

    +
    +
    +
    +

    Python / Interpreted

    +
      +
    1. Goal: Multiple interpreters, auto-reload, USB disk interface
    2. +
    3. Now: MicroPython binary
    4. +
    +
    + +
    +

    Loading Programs onto Fomu

    + dfu-util -l + dfu-util -D update.bin +
    + +
    +

    Loading MicroPython

    + dfu-util -D micropython.dfu +
    + +
    +

    Connecting via serial

    +
    + +
    +

    Interacting with Fomu

    +
    + +
    +

    RGB LEDD reference

    +
    + +
    +

    Future Work

    + CircuitPython, etc. +
    +
    +
    +
    +

    RISC-V code

    +
    + +
    +

    LiteX Machine Model

    +
    + +
    +

    Wishbone Interface

    +
    + +
    +

    Wishbone Bridge

    +
    + +
    +

    Interacting with LEDD directly

    +
    + +
    +

    Writing RISC-V Code

    +
    +
    + +
    +
    +

    Hardware Description Language

    +
    + +
    +

    Yosys and NextPNR

    +
    + +
    +

    Blinking an LED

    +
    + +
    +

    LiteX and MiGen

    +
    + +
    +

    VexRiscv