Lattice Mico8 Open, Free Soft Microcontroller


Newsletter Subscription

Lattice Mico8 LogoThe LatticeMico8 is an 8-bit microcontroller optimized and fully tested for the MachXO2™ family of Programmable Logic Devices (PLDs). It can also be used as a reference design for the other families of Field Programmable Gate Arrays (FPGAs). Combining a full 18-bit wide instruction set with 32 general purpose registers, the LatticeMico8 is suitable for a wide variety of markets, including communications, consumer, computer, medical, industrial, and automotive. The core consumes minimal device resources, less than 200 Look Up Tables (LUTs) in the smallest configuration, while maintaining a broad feature set.

The LatticeMico8 is licensed under a new open intellectual property (IP) core license, the first such license offered by any FPGA supplier. The main benefits of using open source IP are greater flexibility, improved portability, and no cost. This new agreement provides all the benefits of standard open source and allows users to mix proprietary designs with the open source core. Additionally, it allows for the distribution of designs in bitstream or FPGA format without accompanying it with a copy of the license.

Development Tools

LatticeMico System is to be used to implement a LatticeMico8 micro-controller system with attached peripheral components. It is based on the Eclipse C/C++ Development Tools environment, which is an industry open-source development and application framework for building software.

Features

  • Innovative Open IP Core License
  • Efficient Architecture and Broad Feature Set
    • 18-bit Wide Instructions
    • Configurable 16 or 32 General Purpose Registers
    • Configurable Instruction Memory (PROM)
      • Internal or external through Wishbone Interface
      • Configurable to accomodate 256, 512, 1K, 2K or 4K instructions
    • Scratchpad Memory
      • Internal or external through Wishbone Interface
      • Configurable up to 4 Gigabytes using paging (256 bytes per page)
    • Mimimum two cycles per instruction
    • Configurable 8, 16, or 32-deep call stack
    • Support for up to 8 external interrupts
    • Integrated hardware loader to optionally initialize PROM and Scratch pd for an external non-volatile mem
  • Wishbone Peripheral Components:
    • GPIO, UART, DMA Controller, SPI Flash Controller, MachXO2 EFB (I2C, SPI, Timer)

Jump to

Block Diagram

Lattice Mico8 Block Diagram

Performance and Size

Config.
Number
Description* Device LUTs Registers f MAX (MHz)
1 16 - Regs, data & I/O addressable range 256,
8-Call Stack depth, 512 PROM, 32 byte Int SP
LCMXO2-1200HC-5T G100C 194 83 46.2
2 32 - Regs, data & I/O addressable range 256,
8-Call Stack depth, 512 PROM, 32 byte Int SP
LCMXO2-1200HC-5T G100C 206 83 49
3 16 - Regs, data & I/O addressable range 256,
8-Call Stack depth, 512 PROM, 16 byte Int SP
LCMXO2-1200HC-5T G100C 193 83 48
4 32 - Regs, data & I/O addressable range 256,
8-Call Stack depth, 512 PROM, 16 byte Int SP
LCMXO2-1200HC-5T G100C 205 83 52.2

* SP = Scratch Pad

1These numbers may vary as you change the operating conditions.

Ordering Information

LatticeMico8, and its associated peripheral components are included within the LatticeMico System Development Tool. This tool is provided free of charge.

For the latest information on LatticeMico System Development Tools, including instructions on how to download and install, go to the page located here.

For information about the LatticeMico8 for other Lattice FPGA families, please contact your local Lattice Sales Office.

Documentation

Quick Reference
Technical Resources
Information Resources
Downloads
TITLENUMBERVERSIONDATEFORMATSIZE
Select All
LatticeMico Asynchronous SRAM Controller 3.3
3.36/16/2015PDF338 KB
LatticeMico DMA Controller 3.3
3.36/16/2015PDF404.2 KB
LatticeMico Dual-Port On-Chip Memory Controller 3.1
3.16/16/2015PDF738.2 KB
LatticeMico Embedded Function Block 1.6
1.66/16/2015PDF422.5 KB
LatticeMico GPIO 3.5
3.56/16/2015PDF316.8 KB
LatticeMico Master Passthrough 3.3
3.36/16/2015PDF80.2 KB
LatticeMico Memory Passthrough 3.1
3.16/16/2015PDF80.5 KB
LatticeMico On-Chip Memory Controller
3.41/14/2015PDF187.8 KB
LatticeMico Parallel Flash Controller 3.2
3.26/16/2015PDF250.2 KB
LatticeMico SPI 3.1
3.16/16/2015PDF302.5 KB
LatticeMico SPI Flash 3.7
3.76/16/2015PDF234.8 KB
LatticeMico Timer 3.1
3.16/16/2015PDF278 KB
LatticeMico UART 3.8
3.86/16/2015PDF387.4 KB
TITLENUMBERVERSIONDATEFORMATSIZE
Select All
Using the LatticeMico8 Microcontroller with the LatticeXP Evaluation Board Technical Note
August 2006 - Updated to include the Standard Evaluation Board
TN10957/1/2007PDF176.7 KB

*By clicking on the "Notify Me of Changes" button, you agree to receive notifications on changes to the document(s) you selected.

TITLENUMBERVERSIONDATEFORMATSIZE
Select All
EB53 LatticeXP2 Brevia Development Kit User's Guide
1.26/10/2010PDF3.3 MB
LatticeMico32 Processor Reference Manual 2.1
2.11/21/2013PDF898.8 KB
LatticeMico8 Architecture Manual
1.23/31/2011PDF384.7 KB
LatticeMico8 Developer User Guide
1.010/10/2017PDF3.2 MB
LatticeMico8 Developer User Guide
1.23/31/2011PDF3.1 MB
LatticeMico8 Developer User Guide
1.412/12/2011PDF3.1 MB
LatticeMico8 Development Tools User Guide
1.010/8/2010PDF718.2 KB
LatticeMico8 Processor Reference Manual
1.412/12/2011PDF574.3 KB
LatticeMico8 Processor Reference Manual 2.1
2.11/21/2013PDF572.2 KB
MachXO Control Development Kit User Guide
FPGA-EB-020471.511/30/2021PDF3.1 MB
MachXO Mini Development Kit User's Guide
EB411.43/2/2012PDF3.7 MB
TITLENUMBERVERSIONDATEFORMATSIZE
Select All
LatticeMico8 Core - Documentation
RD10262.02/1/2014PDF2 MB
LatticeMico8 Core Source Code
RD10262.02/1/2014ZIP1.6 MB
LatticeMico8 Core Source Code Revision 2.2
12/1/2005ZIP576.6 KB
LatticeMico8 Core Source Code Revision 2.3 - Verilog
5/5/2006ZIP2.3 MB
LatticeMico8 Core Source Code Revision 2.3 - VHDL
1/1/2006ZIP662.3 KB
LatticeMico8 Core Source Code Revision 2.4 - Verilog
7/1/2006ZIP2.3 MB
LatticeMico8 Core Source Code Revision 2.4 - VHDL
7/1/2006ZIP785 KB
LatticeMico8 Demo
20-Sep-06: Updated to synchronize with source revision 2.4 (INITVAL solution)
9/1/2006ZIP2.2 MB
LatticeMico8 Tools Source Code
7/1/2005ZIP81.9 KB
LatticeMico8 Tools Source Code For Core Revision
RD10263.15/26/2010ZIP99.9 KB
LatticeMico8 Tools Source Code For Core Revision 2.3
5/5/2006ZIP101.3 KB
LatticeMico8 Tools Source Code For Core Revision 3.0
5/22/2013ZIP84.3 KB
LatticeMico8 v3.0 Verilog
3.02/19/2008ZIP1.1 MB
LatticeMico8 v3.0 VHDL
3.02/19/2008ZIP1.8 MB
LatticeMico8 v3.1 Verilog
RD10263.14/9/2010ZIP913.9 KB
LatticeMico8 v3.1 VHDL
RD10263.14/9/2010ZIP1.3 MB
LatticeMico8 v3.15 Core Verilog Source Code
RD10263.1510/8/2010ZIP944.6 KB
RD1026 LatticeMico8 Microcontroller User's Guide
2.111/8/2014PDF2.1 MB
TITLENUMBERVERSIONDATEFORMATSIZE
Select All
Lattice Diamond Software Product Brief
Product Brochure for Lattice Diamond software.
I0207GRev. 26/20/2019PDF1.9 MB
LatticeMico8 Product Brochure
i01777/10/2012PDF1.3 MB
TITLENUMBERVERSIONDATEFORMATSIZE
Select All
LatticeMico8 Tutorial 1.4
1.412/12/2011PDF5 MB
Writing Efficient C Code for the LatticeMico8 Microcontroller
1.010/11/2010PDF172.1 KB
TITLENUMBERVERSIONDATEFORMATSIZE
Select All
LatticeMico8 Development Tools
2.011/11/2010EXE89.8 MB
Latticemico8 Development Tools for Linux
2.011/11/2010RPM39.4 MB
LatticeMico8 Development Tools Source Code
5/22/2013BZ260.1 MB