Skip to the content
PCBKitNew board
4 layers100 × 100 mmShifter, the printed circuit board in 3D

Homebrew discrete logic CPU

Size
100 × 100 mm
Copper layers
4
Thickness
1.61 mm
Parts
83
Nets
330
Pads
1,290
Tracks, vias
2,321, 284
Pours
7
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
27 Feb 2023
Updated
28 Dec 2025

Overview

Shifter is an open-source printed circuit board by bcrist, from the bcrist/vera repository on GitHub, published under the MIT licence. It is a 4-layer board of 100 × 100 mm with 83 parts on 330 nets, routed with 2,321 tracks and 284 vias.

It is built around the 74LVC2G34GW, 74LVC541AD and AP62300TWU, with the 74LVC138AD, 74CBTLV16212PAG and TLV77318PDBV among its other parts. Its parts include 46 capacitors, 22 ICs, 8 connectors, 5 resistors and 1 transistor.

Main components

8

README

readme.md

Homebrew discrete-logic CPU

"I call it Vera" - Jayne Cobb

Specs

  • up to 20 MHz clock
  • 4-stage pipeline (runs 4 threads simultaneously)
  • 32x 32b general purpose registers (stack addressed)
  • 32b ALU (2x L4C381)
  • 32b logarithmic shifter
  • 16b * 16b -> 32b single cycle multiplier (32b * 32b -> 32b in 5 cycles)
  • 32b popcount/extension/truncation unit
  • 32b virtual addresses
  • 16x4x128 entry, 2 way set-associative, software filled TLB
    • 4 KiB pages
  • 64 MiB physical address space (24b address x 32b data)
    • up to 16 MiB SRAM
    • up to 16 MiB I/O space
    • up to 32 MiB pipeline-private, zero-wait SDRAM

Design Constraints

Since everyone in the homebrew CPU community has their own ideas of what kinds of technology are acceptable to use, here are my self-imposed restrictions and allowances:

  • Backplane/card cage construction is preferred
    • This facilitates building and testing smaller parts separately
    • Blinkenlights are cool, but not particularly interesting at MHz frequencies
  • 3.3V LVTTL/LVCMOS signalling is preferred
    • Backplane signals must not exceed 3.3V (ignoring overshoot transients)
    • 5V TTL outputs are allowed within a board, when paired with an 5V-tolerant receiver
    • Differential LVPECL/LVDS signalling is allowed for clocks
    • All boards should locally generate their own Vcc from a common 12V supply distributed by the backplane
  • SMD footprints are fine
    • >= 0.5mm pitch for QFP/QFN/(T)(S)SOP
    • >= 0.8mm pitch for BGA
  • Modern SRAM, dual-port SRAM, and SDRAM is fine to use
  • Dedicated adder/multiplier/ALU ASICs are allowed
    • But "not quite microprocessor" parts like Am2901 or Am29116/7 are not allowed (except in peripheral devices)
  • FPGAs are not allowed
    • Designing with HDLs feels more like work than fun for me, and all of the FPGA toolchains make me want to pull my hair out
  • CPLDs and other programmable logic are allowed only if I have created the entire programming toolchain myself
    • Designing for CPLDs (without HDLs) is extremely similar to designing for discrete logic, but simplifies board layout significantly, and often provides better timing characteristics
  • Microcontrollers or other ASICs are allowed for bootstrapping or debugging purposes, or within peripheral devices
    • Absolutely none within the data or control paths of the CPU itself

Parts

83
QtyValueFootprintReferences
37100 nFfp:C0402C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25 +21
6JTAGfp:TridentJ3, J4, J5, J6, J7, J8
6LC4032ZEfp:TQFP-48 (7mm)U6, U7, U16, U20, U21, U22
522 µFfp:C0805C1, C4, C5, C6, C7
574LVC138fp:TSSOP-16U5, U9, U11, U12, U13
474CBTLV16212fp:TSSOP-56U14, U15, U18, U19
2fp:TX25-120P-LT-H1EJ1, J2
2100 nFfp:C0805C45, C46
274LVC2G34fp:SOT323-6U8, U10
10fp:R0402R5
10.015fp:R1206R3
11.6 kfp:R0402R4
110 kfp:R0402R2
110 nFfp:C0402C3
133.2 kfp:R0402R1
1330 nFfp:C0402C2
174LVC541fp:TSSOP-20U4
1AP62300TWUfp:SOT23-6U1
1EMC1702fp:QFN-12 (4mm x 4mm)U2
1LC4128ZCfp:BMC-149U17
1MMST3904fp:SOT323Q1
1NRS5040T3R3NMGJfp:NRS5040L1
1TLV77318PDBVfp:SOT23-5U3

Questions

How big is the Shifter PCB?

It measures 100 × 100 mm and has 4 copper layers, 1.61 mm thick.

What parts does the Shifter use?

83 parts, built around the 74LVC2G34GW, 74LVC541AD, AP62300TWU and 74LVC138AD. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Shifter KiCad files?

From the bcrist/vera repository on GitHub, at the commit this page was made from: the board is boards/kicad/shifter/shifter.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Shifter design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from bcrist/vera

3
  • 4 layers100 × 100 mmAlu, the printed circuit board in 3D

    Alu

    bcrist/vera

    Homebrew discrete logic CPU

    102 parts1MIT
  • 4 layers100 × 100 mmMultiplier, the printed circuit board in 3D

    Multiplier

    bcrist/vera

    Homebrew discrete logic CPU

    101 parts1MIT
  • 4 layers100 × 100 mmAt high, the printed circuit board in 3D

    At high

    bcrist/vera

    Homebrew discrete logic CPU

    33 parts1MIT

Similar boards

  • 2 layers230.4 × 233.5 mmBkm-68x simple, the printed circuit board in 3D

    Bkm-68x simple

    skumlos/bkm-68x-simple

    Simplified BKM-68X

    216 parts7
  • 2 layers30 × 75 mmPSU Control RPI, the printed circuit board in 3D

    PSU Control RPI

    G1874/pcb-ender3v2-psu-ctrl-rpi

    30 partsMIT
  • 2 layers24 × 38 mmBSH Board, the printed circuit board in 3D

    BSH Board

    Bouni/BSH-Board

    A board that interfaces the DBUS of several home appliances and brings them into Home-Assitant via ESPHome

    75 parts65
  • 4 layers99.1 × 91.4 mmPanel, the printed circuit board in 3D

    Panel

    bfrigon/alarm-clock-v3

    Alarm clock (v3)

    187 parts18CC-BY-SA-4.0
  • 4 layers100 × 100 mmBase module, the printed circuit board in 3D

    Base module

    KoNarRobotics/ModuCard-base-module

    Template for ModuCard PCBs

    163 parts2
  • 4 layers100 × 50 mmMMS3, the printed circuit board in 3D

    MMS3

    ArthorH/MMS3

    Mini ModuCard System ❤️

    198 parts1
  • 2 layers38.9 × 48.9 mmPager carrier, the printed circuit board in 3D

    Pager carrier

    awong-dev/pager

    Low-powered, gps and messaging capable pager for kids

    79 parts
  • 4 layers100 × 100 mmModuCard mms extension pdw board, the printed circuit board in 3D

    ModuCard mms extension pdw board

    X-Lemon-X/ModuCard-mms-extension-pdw-board

    This repository provides a template design for creating modules in the ModuCard system. Each module is designed to seamlessly interface with the ModuCard backplane, enabling a modular and expandable robotics platform.

    161 parts