LXP32 is a small and FPGA friendly 32-bit CPU IP core based on a simple, original instruction set. Its key features include:
4
5
* portability (described in behavioral VHDL, not tied to any particular vendor);
6
* 3-stage hazard-free pipeline;
7
* 256 registers implemented as a RAM block;
8
* only 30 distinct opcodes;
9
* separate instruction and data buses, optional instruction cache;
10
* WISHBONE compatibility;
11
* 8 interrupts with hardwired priorities;
12
* optional divider.
13
14
The LXP32 processor was successfully used in commercial projects, is [well documented](https://github.com/lxp32/lxp32-cpu/raw/develop/doc/lxp32-trm.pdf) and comes with a verification environment.
15
16
LXP32 lacks some features of more advanced processors, such as nested interrupt handling, debugging support, floating-point and memory management units. LXP32 ISA (Instruction Set Architecture) does not currently have a C compiler, only assembly based workflow is supported.