FleaFPGA 'Ohm' Experimenter Board

*** UPDATE: This project has now become an Indiegogo campaign! ***

Introduction:

FleaFPGA 'Ohm' provides a low-cost FPGA development platfrom in a Raspberry Pi zero-style form factor. FleaFPGA Ohm was designed for users to explore the wonders of programmable logic and hardware-oriented languages i.e. VHDL and Verilog. FleaFPGA 'Ohm' is suited for professional and hobbyist uses alike.

FleaFPGA Ohm Rev.A3 PCB features:

  • Raspberry Pi zero-style form factor
  • Lattice ECP5 series FPGA with:
    • 24kLUT elements
    • 112KB Block RAM
  • Two micro-USB ports. Can function as:
    • Low-speed USB host
    • PS/2 host.. or 'other'
  • One Digital video port (normally output)
  • uSD card slot
  • 256MBit 166MHz SDRAM
  • 8Mbit SPI config. ROM for the FPGA
  • PS/2 Keyboard and mouse combo port
  • 29 User GPIO lines. Including:
    • 4 x Medium-speed Sigma-Delta ADC
    • 12 x LVDS lanes
  • One user LED.
  • 25MHz onboard oscillator
  • On-board USB JTAG for easy programming


What makes FleaFPGA Ohm interesting?


For the beginner: FleaFPGA Ohm provides a fairly simple
andnon-intimidating platform to implement and understand many of the concepts behind todays moderndigital systems. Software development tools i.e. Lattice Diamond similarly provide a simple and relatively low-frills approach that works very well with FleaFPGA Ohm. Please refer to our quickstart guide in the support section of this page. Fundamental digital circuits and concepts that may be studied include:
  • Microprocessor fundamentals
  • Peripheral interfacing i.e. Digital video, Audio, SD,
  • DRAM, USB interfacing etc.
  • Data encoding and encryption techniques
  • Data Error checking and correction hardware
  • Digital communication and data modulation methods
  • Parallel processing
For the engineer or experimenter: Because FleaFPGA Ohm is built around a chip that allows user-definable hardware to be implemented, one can do many cool tricks with it. These potentially include: homebrew 3D-printer or CNC control apps, as a logic analyser or sniffer, video or audio-related apps etc. Applications are limited only by the FPGA's physical resources and one's imagination.. :-)

For the embedded programmer: FleaFPGA Ohm provides a viable target platform for many open-HDL implementations of both legacy and modern systems for possible commercial application. Tested legacy systems include: 6502, z80, 68000 and 80188-based computing platforms. Modern systems include ZPU, 32bit RISC processor cores like Sweet32 and F32C (MIPS/RISCV) and more! Please refer to the M68K_SoC project example provided in the code examples section at the bottom of the page.

For the gamer: FleaFPGA Ohm can potentially emulate nearly all classic 8-bit, as well as selected 16-bit home computers and game consoles. Please refer to both the Minimig and Next186 project examples provided in the code examples section at the bottom of the page.

Please Note! This page is only intended as a summary of the FleaFPGA Ohm project and will be expanded upon in due course. Feel free to read the FAQ section below, as well as documentation found in the Project files section.



Frequently Asked Questions:

Where can I purchase a FleaFPGA 'Ohm'?

Currently, there is an indiegogo campaign underway to make a modest number of initial production boards for USD$45 each. Your support of my homebrew project is greatly appreciated at this time!

What is the main difference between embedded microcomputing boards and FleaFPGA Ohm?

Answer: Because FleaFPGA Ohm uses the same technologies used by the major chip companies to design custom silicon devices (also known as Application-Specific Integrated Circuits or ASIC) it is possible for the user to effectively create their own silicon designs inside the FPGA. Once you've mastered the concepts required to use FleaFPGA Ohm of course, please refer to the next question for an explanation of this point.

What basic knowledge do I need to know before developing my own project using FleaFPGA Ohm?
Answer: At the very least, you will have knowledge of, or need to study, the following topics:
  • How digital circuit elements work i.e. flip-flops, logic gates, multiplexers, counters, encoders, adders, etc.
  • Digital circuit signal timing i.e. understanding of propagation delays, setup and hold times etc.
  • Basic understanding of how the above relates to the Lattice ECP5 at the heart of FleaFPGA Ohm. (Refer to the Lattice ECP5 Family Datasheet for further information)
  • Digital circuit interfacing techniques i.e. open-collector, tri-state buffers, pull-up/pull-down resistors etc
  • Understanding of microprocessor design and peripheral interfacing will also be of help, particularly if you will be creating (or using) HDL code that describes such a complex element as a microprocessor to sit inside FleaFPGA Ohm.
  • Access to a good VHDL reference guide is essential. Recommended guides are listed in the support section of this page.

Please Note: Also covered in Section 8 of the FleaFPGA Ohm Quickstart Guide titled "Where to from here?"

I'd like to play with FleaFPGA Ohm, but I'm really not all that keen on HDL programming etc?
Answer: If you're not keen on learning HDL, you can always simply download a pre-compiled project example, upload it to FleaFPGA Ohm using the JTAG loader and play with FleaFPGA Ohm that way. Our examples list will hopefully grow over time..

Is FleaFPGA Ohm open source?
Answer: As far as the hardware is concerned, FleaFPGA Ohm is fairly open i.e. schematics may be found in Appendix B of our user guides etc. In addition, VHDL top-level files are available for download separately from the individual apps etc. PCB artwork itself will remain closed (for now anyway).

Does FleaFPGA Ohm's JTAG port do programming as well as debugging?
Answer: FleaFPGA Ohm's JTAG port allows for programming of the FPGA's external config flash ROM or internal FPGA configuration SRAM. Real-time debugging can be realized via the external on-board provision (via header) to an externally connected JTAG debugger pod.

Is the GPIO header on FleaFPGA Ohm raspberry-pi compatible?
Answer: Yes! You can connect up all kinds of expansion hats to FleaFPGA Ohm and make use of them.

Can FleaFPGA Ohm be programmed in a free Linux environment?
Answer: Yes. However, installion of the whole Lattice toolchain under Ubuntu is a long-winded and somewhat painful process. Therefore, I am limiting my support for this option to providing the information as-is for FleaFPGA Ohm users to attempt at their own risk.

Where can I find more FleaFPGA Ohm information?
Answer: You may find FleaFPGA documentation user manuals etc. in the Project files section found below.
Alternatively, you can also subscribe to our forum and ask specific questions there or send me an email in the Contact page on this site.



FleaFPGA Ohm example Screenshots (click to enlarge):


Flea Ohm pre-production prototypes
FleaFPGA Ohm configured with the minimig core running Amiga workbench 3.1




Related Videos:

FleaFPGA 'Ohm' Indiegogo Campaign video




FleaFPGA Ohm development resources:

FleaFPGA Ohm Quickstart Guide (Including schematics):

Coming soon...


FleaFPGA Top-level HDL files (VHDL and Verilog source files included):
Coming soon...


FleaFPGA HDL coding examples (more to follow):
Coming soon...

Lattice ECP5 support documents:
Lattice ECP5 FPGA Product support page
Lattice Diamond User Guide


VHDL Reference Books:

The Student's Guide to VHDL, 2nd Edition (Author: Peter J. Ashenden)
VHDL and Verilog Golden Reference Guides (Doulos)


Useful related sites:
opencores.org
nandland.com


FleaFPGA Development Forum:
The FleaFPGA Development forums


Copyright information:
All trademarked product names listed on this site belong to their respective trademark owners. All PCB designs, flea logo and related support documentation are the copyright of Valentin Angelovski (fleasystems).


(Page last updated: 2nd October 2017)