Samiksha Jaiswal (Editor) I am a computer expert who loves a challenge. When I am not managing servers and fixing flaws, I write about it and other interesting things on various blogs.
LatticeMico32 is a 32-bit microprocessor soft core from Lattice Semiconductor optimized for field-programmable gate arrays (FPGAs). It uses a Harvard architecture, 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, ASIC, or software emulation (e.g. QEMU)). It is possible to embed a LatticeMico32 core into Xilinx and Altera FPGAs, in addition to the Lattice parts the LatticeMico32 was developed for. AMD PowerTune is using LatticeMico32.
Both the CPU core and the development toolchain are available in source-code form, 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)