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.
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