Boneless
A CPU written in python for FPGA

Apr 2019

A gateware CPU

The Boneless-CPU is a soft CPU written in nmigen by Whitequark.

It is a 16bit Von Neumann machine with a completely flat memory space , registers and all. The gateware is nice and compact and fits into about 500 LUTS plus memory.

This makes it perfect for control plane processor and can run up to about 50 MHz so it can run the same clock as the rest of your design.

I spent some time and wrote a text assembler with a view to writing a resident FORTH in assembler.

Nmigen

Nmigen is the next iteration of migen a python framework for generating RTL designs. Nmigen fixes many structural issues with migen and provides a good opening to make a clean version of the infrastructure that migen provides.

BonelessCPU

The init.py explains the processor, and is the canonical source of the design.

It has an available memory space of 64K words and an external 64K words of IO. The ISA has 5 primary classes of instructions.

Extending

As it created from a python contstructing a new processor is a matter of instanciating a new object.