FleaFPGA Uno  Starter Board

UPDATE 17/12/2016: This product has now been retired.

Introduction:
In a nutshell, FleaFPGA Uno combines the power of the Lattice Semiconductor's capable MachXO2 FPGA with several new features not found in my original FleaFPGA board. All packaged in a simpler and mainstream (in this case Arduino-compatible) form-factor ready to play!


FleaFPGA Uno - basic features at a glance:no image found

  • Lattice MachXO2-7000HC FPGA.
  • 24bit Digital Video out
  • Composite NTSC video and Stereo audio out via 3.5mm phono jack.
  • 512KByte 10nsec User SRAM.
  • 16MByte User Flash ROM.
  • Multi-purpose PS/2 or USB 1.1 Host port.
  • USB power-in and slave serial port.
  • Arduino-compatible shield connector Note: Shields must be 3.3V compatible!
  • 23 GPIO lines, including six high-speed Sigma-delta ADC channels
  • User push-buttons (x1) User LED (x2)
  • 25MHz onboard oscillator.
  • Optional ESP8266 WiFi on PCB underside.
  • On-board USB JTAG for easy FPGA reconfiguration.


What makes FleaFPGA Uno interesting:


For the beginner: FleaFPGA Uno provides a simple and
FleaFPGA Uno Pricing (in $USD):
Unit Price: (Standard) Unit Price:
(incl. WiFi option)
Order
Quantity
- - -
- - -
- - -
Availability: NO LONGER AVAILABLE

SORRY! ITEM IS NO LONGER AVAILABLE



non-intimidating platform to implement and understand many of the concepts behind todays moderndigital systems. Software development tools i.e. Lattice Diamond similarly provide asimple and relatively low-frills approach that works very well with FleaFPGA. Please refer to our quickstart guide in the support section of this page. Fundamental digital circuits and concepts that may be studied using FleaFPGA include:
  • Microprocessor fundamentals
  • Modern Digital Interfacing i.e. Video, WIFI, USB
  • Data encoding and encryption techniques
  • Data Error checking and correction hardware
  • Digital communication and data modulation methods
  • Data encryption methods
  • Parallel processing
For the engineer or experimenter: Because FleaFPGA Uno 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 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, LatticeMico8 and 32bit RISC processor cores 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 can potentially emulate nearly all classic 8-bit, as well as selected 16-bit home computers and game consoles. Please keep an eye out for any potential examples to be made available in the downloads section at the bottom of the page.

Please Note! This page is only intended as a summary of the FleaFPGA 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 (Beginners):

I'd like to play with FleaFPGA Uno, but I'm really not all that keen on HDL programming etc?
Answer: Do not despair! All FleaFPGA Uno boards come pre-configured with the excellent F32c SoC (MIPS-compatible variant) by default, so no need to worry about re-configuring the MachXO2 FPGA yourself if you do not want to (either initially, or never at all..).

I understand that 5V-only shields will not work with FleaFPGA Uno. What boards do you recommend?

Answer: I am currently preparing a compatibility list of boards for FleaFPGA Uno. This should be up soon.
WARNING: Do not directly plug any 5V-only shields into the FleaFPGA Uno, as it will likely damage the shield and FleaFPGA Uno and probably void their warranties!

What is the main difference between regular arduino (or compatible) boards and FleaFPGA Uno?
Answer: Because FleaFPGA Uno 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 of course, please refer to the advanced FAQ section further below for an explanation of this point.

Is 'FleaFPGA Uno' open source?
Answer: As far as the hardware is concerned, FleaFPGA Uno 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).

Where can I purchase a FleaFPGA Uno?
Currently, from me directly! :-) If you are interested in purchasing a FleaFPGA Uno, please send me an email. Thanks!

Where can I find more 'FleaFPGA Uno' related information?
Answer: You may find FleaFPGA Uno 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.


Frequently Asked Questions (Advanced Users - FPGA development related):

Does FleaFPGA Uno's JTAG port do FPGA reconfiguration as well as hardware debugging?

Answer: FleaFPGA Uno's JTAG port allows for programming of the FPGA's on-chip Flash ROM or configuration SRAM. It does not allow real-time debugging however,due to the simplicity of the interface to keep costs down. Besides, the simulator included with Lattice Diamond seems to work well enough. :-)

What basic knowledge do I need to know before diving into developing my own custom FPGA HDL project using FleaFPGA Uno?
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 MachXO2-7000 at the heart of FleaFPGA Uno. (Refer to the Lattice MachXO2 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 Uno.
  • Access to a good VHDL reference guide is essential. Recommended guides are listed in the support section of this page.

Please Note: This is also covered in Section 8 of the FleaFPGA Uno Quickstart Guide titled "Where to from here?"

Can the MachXO2 FPGA HDL development tools (i.e. Lattice Diamond) work 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 Uno users to attempt at their own risk.

Where can I find more FleaFPGA Uno information?
Answer: You may find FleaFPGA Uno 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 Uno example Screenshots (Click to zoom):


FleaFPGA Uno + F32C Softcore: Wireless serial terminal example (video screen output) FleaFPGA Uno + Sweet32 Softcore:  Shown running a 6502 emulator written in c (video screen output) FleaFPGA Uno running a
Digital Oscilloscope example
(video screen output):
. .  .



YouTube Videos:

FleaFPGA Uno Introduction Video F32C softcore as well as dedicated
Digital Oscilloscope and Signal Generator examples are demonstrated:




FleaFPGA Uno Development resources:

FleaFPGA Uno Quickstart Guide (Including schematics):

'FleaFPGA Uno' Starter Board - User Manual rev. 0.27 Preliminary (.PDF)


FleaFPGA Uno Shield compatibility list:
Coming soon!


FleaFPGA Uno VHDL coding examples (more to follow):
Example Project:
Comments:
VHDL Source:
FPGA bitfile:
F32C SoC Softcore RISC-V or MIPS-compatible System on Chip (SoC) for use with the Arduino IDE
Github ZIP
Sweet32 SoC Softcore Homebrew 32bit CPU system, designed by
Valentin Angelovski
Github
Github
Simple LED 'blinky' Simplest FPGA project for your FleaFPGA Uno board!
ZIP
More to follow! :-)




FleaFPGA Uno Top-level HDL files (VHDL source files included):
FleaFPGA_Uno_Top.zip


Lattice MachXO2 support documents:
Lattice MachXO2-7000 FPGA User Guide
Lattice Diamond version 3.5 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 Uno Development Forum:
'FleaFPGA Uno' 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.


(Page last updated: 17th December 2016)