LatticeMico32 is a
32-bit
In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in 32-bit units. Compared to smaller bit widths, 32-bit computers can perform large calculation ...
microprocessor
A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The microprocessor contains the arithmetic, logic, and control circu ...
reduced instruction set computer
In computer engineering, a reduced instruction set computer (RISC) is a computer designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a complex instruction set comput ...
(RISC) soft core from
Lattice Semiconductor
Lattice Semiconductor Corporation is an American semiconductor company specializing in the design and manufacturing of low power, field-programmable gate arrays (FPGAs). Headquartered in the Silicon Forest area of Hillsboro, Oregon, the company ...
optimized for
field-programmable gate array
A field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturinghence the term '' field-programmable''. The FPGA configuration is generally specified using a hardware d ...
s (FPGAs). It uses a
Harvard architecture
The Harvard architecture is a computer architecture with separate storage and signal pathways for instructions and data. It contrasts with the von Neumann architecture, where program instructions and data share the same memory and pathways.
...
, which means the instruction and data buses are separate. Bus arbitration logic can be used to combine the two buses, if desired.
LatticeMico32 is licensed under a free (IP) core license. This means that the Mico32 is not restricted to Lattice FPGAs, and can be legally used on any host architecture (FPGA,
application-specific integrated circuit
An application-specific integrated circuit (ASIC ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficie ...
(ASIC), or software emulation, e.g.,
QEMU
QEMU is a free and open-source emulator (Quick EMUlator). It emulates the machine's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest ...
). It is possible to embed a LatticeMico32 core into
Xilinx
Xilinx, Inc. ( ) was an American technology and semiconductor company that primarily supplied programmable logic devices. The company was known for inventing the first commercially viable field-programmable gate array (FPGA) and creating the fi ...
and
Altera
Altera Corporation was a manufacturer of programmable logic devices (PLDs) headquartered in San Jose, California. It was founded in 1983 and acquired by Intel in 2015.
The main product lines from Altera were the flagship Stratix series, mid-ran ...
FPGAs, in addition to the Lattice Semiconductor parts the LatticeMico32 was developed for.
AMD PowerTune
AMD PowerTune is a series of dynamic frequency scaling technologies built into some AMD GPUs and APUs that allow the clock speed of the processor to be dynamically changed (to different ''P-states'') by software. This allows the processor to me ...
uses LatticeMico32.
The CPU core and the development
toolchain
In software, a toolchain is a set of programming tools that is used to perform a complex software development task or to create a software product, which is typically another computer program or a set of related programs. In general, the tools form ...
are available as source-code, allowing third parties to implement changes to the processor architecture.
Features
* RISC load/store architecture
* 32-bit data path
* 32-bit fixed-size instructions (all instructions are 32 bits, including jump, call and branch instructions.)
* 32 general purpose registers (R0 is typically set to zero by convention, however R0 is a standard register and other values may be assigned to it if so desired.)
* Up to 32 external interrupts
* Configurable instruction set including user defined instructions
* Optional configurable caches (direct-mapped or 2-way set-associative, with a variety of cache sizes and arrangements)
* Optional pipelined memories
* Dual
Wishbone
Wishbone commonly refers to:
* Furcula, a fork-shaped bone in birds and some dinosaurs
Wishbone may also refer to:
* Wish-Bone, an American salad dressing and condiment company
* Wishbone formation, a type of offense in American football
* Wish ...
memory interfaces (one read-only instruction bus, one read-write data/peripheral bus)
* Memory mapped I/O
* 6 stage pipeline
Toolchain
*
GNU Compiler Collection
The GNU Compiler Collection (GCC) is an optimizing compiler produced by the GNU Project supporting various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free software ...
(GCC) – C/C++ compiler; LatticeMico32 support is added in GCC 4.5.0, patches are available for support in GCC 4.4.0
*
Binutils
The GNU Binary Utilities, or , are a set of programming tools for creating and managing binary programs, object files, libraries, profile data, and assembly source code.
Tools
They were originally written by programmers at Cygnus Solutions.
...
– Assembler, linker, and binary utilities; supports LatticeMico32 since version 2.19
*
GNU Debugger
The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, C, C++, Objective-C, Free Pascal, Fortran, Go, and partially others.
History
GDB was first written by ...
(GDB) – Debugger
*
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
–
Integrated development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
(IDE)
*
Newlib
Newlib is a C standard library implementation intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products.
It was created by Cygnus S ...
– C library
*
µCos-II,
µITRON The ITRON project is the first of several sub-architectures of the TRON project.
Originally undertaken in 1984, ITRON is a Japanese open standard for a real-time operating system (RTOS) initiated under the guidance of Ken Sakamura. This project aim ...
,
RTEMS
Real-Time Executive for Multiprocessor Systems (RTEMS), formerly Real-Time Executive for Missile Systems, and then Real-Time Executive for Military Systems, is a real-time operating system (RTOS) designed for embedded systems. It is free and open ...
-
real-time operating system
A real-time operating system (RTOS) is an operating system (OS) for real-time applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which m ...
s (RTOS)
*
μClinux
μClinux is a variation of the Linux kernel, previously maintained as a fork, that targets microcontrollers without a memory management unit (MMU). It was integrated into the mainline kernel as of 2.5.46; the project continues to develop patc ...
–
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
See also
*
Milkymist – LatticeMico32-based
system on a chip
A system on a chip or system-on-chip (SoC ; pl. ''SoCs'' ) is an integrated circuit that integrates most or all components of a computer or other electronic system. These components almost always include a central processing unit (CPU), memory ...
(SoC)
References
External links
*
* , uCLinux port to Milkymist SoC, that uses LatticeMico32
* , LatticeMico32 emulator in JavaScript, cf.
Fabrice Bellard
Fabrice Bellard (; born 1972) is a French computer programmer known for writing FFmpeg, QEMU, and the Tiny C Compiler. He developed Bellard's formula for calculating single digits of pi. In 2012, Bellard co-founded Amarisoft, a telecommunicatio ...
's jslinux
*
ERIKA Enterprise
ERIKA Enterprise is a real-time operating system (RTOS) kernel for embedded systems, which is OSEK/VDX certified. It is free and open source software released under a GNU General Public License (GPL). The RTOS also includes RT-Druid, an integ ...
(OSEK/VDX API) porting for LatticeMico32
{{Programmable logic
Soft microprocessors