Lattice Mico8 Open, Free Soft Microcontroller

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)

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
TITLE NUMBER VERSION DATE FORMAT SIZE
LatticeMico Asynchronous SRAM Controller 3.3
3.3 6/16/2015 PDF 338 KB
LatticeMico DMA Controller 3.3
3.3 6/16/2015 PDF 404.2 KB
LatticeMico Dual-Port On-Chip Memory Controller 3.1
3.1 6/16/2015 PDF 738.2 KB
LatticeMico Embedded Function Block 1.6
1.6 6/16/2015 PDF 422.5 KB
LatticeMico GPIO 3.5
3.5 6/16/2015 PDF 316.8 KB
LatticeMico Master Passthrough 3.3
3.3 6/16/2015 PDF 80.2 KB
LatticeMico Memory Passthrough 3.1
3.1 6/16/2015 PDF 80.5 KB
LatticeMico On-Chip Memory Controller
3.4 1/14/2015 PDF 187.8 KB
LatticeMico Parallel Flash Controller 3.2
3.2 6/16/2015 PDF 250.2 KB
LatticeMico SPI 3.1
3.1 6/16/2015 PDF 302.5 KB
LatticeMico SPI Flash 3.7
3.7 6/16/2015 PDF 234.8 KB
LatticeMico Timer 3.1
3.1 6/16/2015 PDF 278 KB
LatticeMico UART 3.8
3.8 6/16/2015 PDF 387.4 KB
TITLE NUMBER VERSION DATE FORMAT SIZE
Using the LatticeMico8 Microcontroller with the LatticeXP Evaluation Board Technical Note
August 2006 - Updated to include the Standard Evaluation Board
TN1095 7/1/2007 PDF 176.7 KB
TITLE NUMBER VERSION DATE FORMAT SIZE
EB53 LatticeXP2 Brevia Development Kit User's Guide
1.0 6/10/2010 PDF 3.3 MB
LatticeMico32 Processor Reference Manual 2.1
2.1 1/21/2013 PDF 898.8 KB
LatticeMico8 Architecture Manual
1.2 3/31/2011 PDF 384.7 KB
LatticeMico8 Developer User Guide
1.4 12/12/2011 PDF 3.1 MB
LatticeMico8 Developer User Guide
1.2 3/31/2011 PDF 3.1 MB
LatticeMico8 Developer User Guide 3.10
1.0 10/10/2017 PDF 3.2 MB
LatticeMico8 Development Tools User Guide
1.0 10/8/2010 PDF 718.2 KB
LatticeMico8 Processor Reference Manual
1.4 12/12/2011 PDF 574.3 KB
LatticeMico8 Processor Reference Manual 2.1
2.1 1/21/2013 PDF 572.2 KB
MachXO Control Development Kit User's Guide
EB46 1.4 6/28/2010 PDF 2.6 MB
MachXO Mini Development Kit User's Guide
EB41 1.4 3/2/2012 PDF 3.7 MB
TITLE NUMBER VERSION DATE FORMAT SIZE
LatticeMico8 Core - Documentation
RD1026 2.0 2/1/2014 PDF 2 MB
LatticeMico8 Core Source Code
RD1026 2.0 2/1/2014 ZIP 1.6 MB
LatticeMico8 Core Source Code Revision 2.2
12/1/2005 ZIP 576.6 KB
LatticeMico8 Core Source Code Revision 2.3 - Verilog
5/5/2006 ZIP 2.3 MB
LatticeMico8 Core Source Code Revision 2.3 - VHDL
1/1/2006 ZIP 662.3 KB
LatticeMico8 Core Source Code Revision 2.4 - Verilog
7/1/2006 ZIP 2.3 MB
LatticeMico8 Core Source Code Revision 2.4 - VHDL
7/1/2006 ZIP 785 KB
LatticeMico8 Demo
20-Sep-06: Updated to synchronize with source revision 2.4 (INITVAL solution)
9/1/2006 ZIP 2.2 MB
LatticeMico8 Tools Source Code
7/1/2005 ZIP 81.9 KB
LatticeMico8 Tools Source Code For Core Revision
RD1026 3.1 5/26/2010 ZIP 99.9 KB
LatticeMico8 Tools Source Code For Core Revision 2.3
5/5/2006 ZIP 101.3 KB
LatticeMico8 Tools Source Code For Core Revision 3.0
5/22/2013 ZIP 84.3 KB
LatticeMico8 v3.0 Verilog
3.0 2/19/2008 ZIP 1.1 MB
LatticeMico8 v3.0 VHDL
3.0 2/19/2008 ZIP 1.8 MB
LatticeMico8 v3.1 Verilog
RD1026 3.1 4/9/2010 ZIP 913.9 KB
LatticeMico8 v3.1 VHDL
RD1026 3.1 4/9/2010 ZIP 1.3 MB
LatticeMico8 v3.15 Core Verilog Source Code
RD1026 3.15 10/8/2010 ZIP 944.6 KB
RD1026 LatticeMico8 Microcontroller User's Guide
2.1 11/8/2014 PDF 2.1 MB
TITLE NUMBER VERSION DATE FORMAT SIZE
Lattice Diamond Software Product Brief
Product Brochure for Lattice Diamond software.
I0207 7.0 6/16/2015 PDF 2.1 MB
LatticeMico8 Product Brochure
i0177 7/10/2012 PDF 1.3 MB
TITLE NUMBER VERSION DATE FORMAT SIZE
LatticeMico8 Tutorial 1.4
1.4 12/12/2011 PDF 5 MB
Writing Efficient C Code for the LatticeMico8 Microcontroller
1.0 10/11/2010 PDF 172.1 KB
TITLE NUMBER VERSION DATE FORMAT SIZE
LatticeMico8 Development Tools
2.0 11/11/2010 EXE 89.8 MB
Latticemico8 Development Tools for Linux
2.0 11/11/2010 RPM 39.4 MB
LatticeMico8 Development Tools Source Code
5/22/2013 BZ2 60.1 MB