µCPU Documentation
Toggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto mode Back to homepage

The µCPU

ucpu logo

This is a 16bit pipelined CPU built to be used for experimentation, programming and fun. The CPU is was designed on a breadboard and produced on PCBs in modular architecture utilizing a flexible backplane for expansion and upgrades.

The objective of the µCPU project is to learn electronics, CPU design and build a fully functional CPU that can be updated, added to and further developed easily.

The completed project will include 32 Kb ROM, 32 Kb RAM, a pipelined core, serial port, cartridge support, VGA compatible video, stereo multi voice sound and more.

Architecture

Early version of the CPU on breadboards
Figure 1. Early version of the CPU on breadboards

The CPU is being targeted at approximately the PC AT (286) level or Super Nintendo

  • Four general purpose 16 bit registers (A, B, C, D)

  • Four 16 bit address registers (PC, SP, SI, DI)

  • ALU supporting addition, subtraction, shift and bitwise operations

  • Pipelined instructions

  • Clock runs at 4Mhz

  • Banked memory with a base of 32 Kb ROM and 32 Kb RAM, expandable to 304 Kb RAM

  • 4 I/O ports for testing and expansion

  • Serial port

  • 64k Video memory supporting

  • 320×200 in 256 colors

  • 640x350 in 4 (or 16???) colors

  • Sprite and effect processing (details TBD)

  • Stereo multi-voice sound (details TBD)

  • A custom bootable OS

  • A BASIC interpreter (ROM)

  • Drive support (SD interface to start with)

  • Cartridge support (ROMs)

After the CPU is working I may add

  • DMA

  • …​ more?

CPU Architecture
Figure 2. CPU Architecture

Schematics

BOM

TODO

Running Documentation

The documentation uses Hugo as for static site generation.

You’ll need go, asciidoctor and hugo

$ brew install asciidoctor
$ brew install hugo

Run

 $ hugo server --minify