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.

Comparision :

  Fomu Tomu ICEBreaker TinyFPGA BX
Source        
PCB Yes Yes Yes Yes
Case Yes Yes No No
Bootloader Yes Yes N/A Yes
Physical        
Inputs Four pads Two pads Four buttons One reset
Outputs One RGB LED Two LEDs Five LEDs None
GPIO None None 27 + 7 41
Fits in USB port Yes Yes No No
USB interface Softcore Built-in FTDI Softcore
Specs        
Main chip ICE40UP5K EFM32HG309 ICE40UP5K ICE40LP8K
RAM 128 kB 8 kB 128 kB 16 kB
Flash 2 MB 64 kB 16 MB 1 MB
LUTs 5280 N/A 5280 7680
Clock 48 MHz crystal N/A 12 MHz MEMS 16 MHz MEMS

Fomu is great for having convenient access to an FPGA that fits in your USB port. If you want a development board with lots of pins, you should check out one of the other ICE40 development boards available!

Why FPGA?

An FPGA is an Array of Gates that is Field-Programmable. When you buy a chip such as a CPU, the logic cells are all fixed in place. A CPU can run any amount of code, but if you want to do anything exotic you need to create software and, depending on what you want to do, that software can be very slow.
 
For example, many embedded projects use WS2812 LEDs such as NeoPixels that require a specialized timing signal. A CPU can generate this signal in software, but it can’t do anything in the background while talking to the light. If the string of LEDs is very long, then the CPU wastes a lot of time and power generating the signal.
 
With an FPGA, it becomes possible to create an “LED driver” that allows the CPU to keep running while a hardware component handles the timing. The CPU could do other work, or could put itself in a low power state.
 
In fact, the “CPU” in the FPGA is created from a hardware description language, meaning it can be modified or swapped out. If you wanted, you could create a brand-new CPU instruction. Do you want to have fast 64-bit multiplies? Or maybe you want a way to get random numbers easily? With Fomu and its FPGA, you have the source code to the CPU itself.

FPGAs are very specialized pieces of hardware, and, until recently, the development tools have been very closed. They usually require you to sign a non-disclosure agreement and then download a very, very large toolchain — usually well over 5 GB. Furthermore, because the toolchain was developed by the same company that sells FPGAs, they don’t have an incentive to make the synthesis efficient, because an inefficient toolchain means you must buy a larger FPGA, which earns them more money.
Thanks to several projects, the FPGA used in Fomu is fully open source. The company that makes the FPGA — Lattice — freely provides the datasheet and reference manual. And thanks to projects such as Yosys, IceStorm, and nextpnr, a fully open toolchain is now available.

Write a review

Please login or register to review

Fomu

  • Brand: Crowd Supply
  • Product Code:CS-Fomu
  • Reward Points:70
  • Availability:In Stock
  • रo 6,969.00

  • Price in reward points:6969

  • 2 or more रo 6,914.00
  • 4 or more रo 6,335.00
  • 10 or more रo 5,972.00
  • 20 or more रo 5,820.00

Related Products

TinyFPGA Programmer

TinyFPGA Programmer

One of the goals of the TinyFPGA boards is to make FPGAs cheaper to use. The TinyFPGA A1 and TinyFPG..

रo 1,535.00

FireAnt FPGA dev board

FireAnt FPGA dev board

FireAnt is the first third-party development board for the Efinix Trion product family. It provides ..

रo 5,198.00

Tags: FPGA, Boards

The product is currently Out-of-Stock. Enter your email address below and we will notify you as soon as the product is available.

Name
Email
Phone
Comments