Lattice Semiconductor

Lattice Semiconductor


Targets: Automotive, Communication & Wired, Computers & Peripherals, Consumer, General Purpose, Industrial

Lattice Semiconductor LatticeMico8 Block Diagram

The LatticeMico8 is a soft 8-bit microcontroller targeted towards Lattice's most recent FPGA families as well as its MachXO PLD family. The LatticeMico8 is licensed under an open IP (intellectual property) core license. This agreement provides all the benefits of standard open source and allows users to mix proprietary designs with the open source core. The agreement also allows for the distribution of designs in bit stream or FPGA format without an accompanying copy of the license.

Key architectural highlights of the LatticeMico8 include an 8-bit data path, 18-bit wide instructions, and an 8 to 24-bit wide configurable address bus. It takes two cycles per instruction and three cycles per memory instruction. It is configurable to use 16 or 32 general purpose registers, and the scratch pad memory size is configurable. Input/output is performed using "paged ports." Each "page" can address up to 256 "ports." The LatticeMico8 microcontroller offers design flexibility because it is parameterized to allow the implementation of four standard configurations, each optimized for different user needs.

Along with the microcontroller core, the LatticeMico8 also comes with two key development tools, an Assembler and an Instruction Set Simulator. The LatticeMico8 Assembler was developed in C and the source code is provided. The Assembler compiles a text assembler input file and generates an Embedded Block RAM (EBR) initialization file. Assembler output options include: Hexadecimal output file (for use with Lattice IPexpress), Binary output file (for use with Lattice IPexpress) and Verilog initialization file (included in design prior to synthesis). In addition to these outputs, the Assembler also can generate an assembler listing file.

Lattice offers an Instruction Set Simulator for the LatticeMico8 microcontroller. As with the Assembler, the Simulator was developed using C. The Instruction Set Simulator allows programs developed for the LatticeMico8 to be run and debugged on a host platform. The Simulator also can be used to generate a disassembly listing of a program. The Simulator takes the memory output file of the Assembler as input and emulates the instruction execution of the LatticeMico8 in software.