EightThirtyTwo

EightThirtyTwo is an experimental CPU core with 8-bit instruction words and 32-bit registers.

The main design goals are modest logic footprint and minimum possible use of BlockRAM – which is achieved by (a) aiming to maximise code density, and (b) having the register file implemented as logic rather than BlockRAM.

In order to maximise code density, the instruction words are only 1-byte long, with only three bits devoted to the operand. This allows one of eight general purpose registers to be selected, while a ninth “tmp” register provides an implicit second operand.

There is optional support for dual threads, and the CPU offers full load/store alignment, build-time switchable endian-ness and 32 x 32 to 64 bit multiplication.

The project is hosted on GitHub in two parts:

I have blogged about the creation of this CPU, so for those interested in reading about the process, this page serves as a sort of index.