Fomu is the easiest way to get started with FPGA or RISC-V development.
Fomu is a programmable FPGA device that fits inside a USB port. It has
four buttons, an RGB LED, and an FPGA that is compatible with a fully
open source chain and capable of running a RISC-V core. Fomu comes in
a custom plastic enclosure that slots perfectly into a USB Type-A
port.
Python, RISC-V, FPGA, All Open
Fomu has Python
With 128 kilobytes of RAM and a large amount of storage, Fomu is
powerful enough to run Python natively. And since it lives in your USB
port, installation is super simple. FPGAs are complicated, but the
latest Python tools make it easy to use Fomu without any specialized
training.
Fomu runs RISC-V
Underneath the Python interpreter lies a RISC-V softcore running on
the FPGA fabric. RISC-V is an up-and-coming processor architecture
that is poised to take over everything from deeply-embedded chips to
high-performance computing. Fomu's RISC-V softcore is a great
introduction to the processor architecture of the future.
Fomu is an FPGA
An FPGA is a piece of reconfigurable silicon. The default Fomu
firmware exposes a USB bootloader running a RISC-V softcore, but you
can load whatever you want. Softcores are also available for LM32 and
OpenRISC. You can practice adding instructions to the CPU, or add new
blocks such as LED blink patterns or better captouch hardware blocks.
Fomu is entirely open
Developing with Fomu is incredibly easy: just load code via USB and
go. Whether you're writing RISC-V code, Python code, or HDL, it's all
uploaded to Fomu in the same way. The ICE40UP5K FPGA is supported with
a fully open toolchain, meaning you can start development without
creating an account, signing an NDA, or downloading a multi-gigabyte
installer.
Features & Specifications
Fomu fits entirely inside a standard USB Type-A slot, except for a
small area that pokes out to give you access to four copper pads.
There is one RGB LED that lights up the case and is fully
user-controllable. The main chip is an FPGA with about 5000 LUTs,
enough for a CPU with some room left over.
-
FPGA: Lattice ICE40UP5K
-
Speed: 48 MHz external oscillator
-
RAM: 128 kB RAM for a soft CPU¹
-
Storage: 1 MB SPI flash²
-
Connectivity: USB 2.0 FS (12 Mbps)
-
Buttons: Four³
-
LEDs: One RGB
¹: The FPGA has 1024 kilo-bits of memory available. A separate block
of memory is used for things like the processor register file, in
addition to temporary memory for things like USB buffers. The CPU can
use 64 or 128 kilobytes of memory, depending on configuration.
²: This is the minimum configuration amount — more may be available
in the final version.
³: Fomu has four copper pads near the edge. We have not yet validated
any capacitive touch solutions.