Skip to the content
PCBKitNew board
2 layers235 × 176.5 mmCpu, the printed circuit board in 3D

cmake -DUSEAFL=yes -DCMAKEBUILDTYPE=Release $PFX/verymeme AFLSKIPCPUFREQ=yes AFLPRELOAD=/usr/local/lib/afl/libdislocator.so \ afl-fuzz -m 1024M -i $PFX/verymeme/testdata/memelang/parsing -o memelangfuzz \ -x…

Size
235 × 176.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
286
Nets
340
Pads
2,470
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 5 (file 20171130)
Created
2 Sep 2018
Updated
19 Nov 2025

Overview

Cpu is an open-source printed circuit board by Edgeworth, from the Edgeworth/memepu repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 235 × 176.5 mm with 286 parts on 340 nets.

It is built around the 74HC245D, SN74LVC16374DL and 74HC00D, with the 74LS574N, 74HCT574D and 74HC238D among its other parts. Its parts include 142 capacitors, 78 ICs, 34 diodes, 18 resistors and 4 connectors.

Main components

12

README

README.md

Building

Dependencies

Also need: Verilator, Yosys, Yices2, SymbiYosys

Ubuntu

sudo apt install libsfml-dev extra-cmake-modules libboost-dev libboost-stacktrace-dev
build-essential clang bison flex libreadline-dev gawk tcl-dev libffi-dev git
graphviz xdot pkg-config python3 libboost-system-dev libboost-python-dev
libboost-filesystem-dev autoconf libboost-stacktrace-dev libboost-program-options-dev
gperf libgmp-dev cmake

Arch

sudo pacman -S sfml extra-cmake-modules

Memepu

TODO fill out.

Verymeme

Example commands:

memecad
memelang

memelang ./src/memepile/{integral,memory,pointer,stdintf,vector,string,token,main}.meme

Running tests

Run run.py to run the tests for both SCHEMATIC and non-SCHEMATIC verilog configurations.

Adding new symbols

Process for adding a new leaf module for verymeme:

  1. Decide which Kicad symbol to use. If it's a new symbol, add data to pcb/kicadtools/ and generate using that.
  2. Write a verilog module corresponding to that symbol
  3. Write a mapping in memecad_map.json for the verilog module and kicad symbol.
  4. Add it as a verilator module in verymeme/verilog/CMakeLists.txt
  5. Add it to the SymbiYosys file in verymeme/verilog/formally_verify.sby

Fuzzing

Build with:

export PFX=./

cmake -DUSE_AFL=yes -DCMAKE_BUILD_TYPE=Release $PFX/verymeme AFL_SKIP_CPUFREQ=yes AFL_PRELOAD=/usr/local/lib/afl/libdislocator.so
afl-fuzz -m 1024M -i $PFX/verymeme/test_data/memelang/parsing -o memelang_fuzz
-x $PFX/verymeme/assets/afl/memelang.dict -- ./memelang @@

Or for persistent mode: cmake -DUSE_AFL=clang -DCMAKE_BUILD_TYPE=Release $PFX/verymeme

AFL_SKIP_CPUFREQ=yes AFL_PRELOAD=/usr/local/lib/afl/libdislocator.so
afl-fuzz -m 1024M -i $PFX/verymeme/test_data/memelang/parsing -o memelang_fuzz
-x $PFX/verymeme/assets/afl/memelang.dict -t 100 -- ./memelang

Parts

286
QtyValueFootprintReferences
1310.1uFCapacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC1, C10, C11, C100, C101, C102, C103, C104, C106, C107, C108, C109, C110, C111, C112, C113 +115
33DDiode_THT:D_DO-41_SOD81_P7.62mm_HorizontalD1, D2, D10, D11, D12, D13, D14, D15, D16, D18, D19, D20, D21, D22, D23, D24 +17
16SN74LVC16374DLPackage_SO:TSSOP-48_6.1x12.5mm_P0.5mmU12, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62
974HC245Package_DIP:DIP-20_W7.62mm_SocketU16, U18, U24, U25, U29, U31, U41, U42, U86
81MResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR6, R7, R8, R11, R12, R16, R17, R40
874HC00Package_DIP:DIP-14_W7.62mm_SocketU21, U26, U32, U43, U44, U45, U46, U47
874LS283Package_DIP:DIP-16_W7.62mm_SocketU11, U14, U22, U23, U27, U28, U34, U40
6100KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4, R5, R9, R10, R14, R15
674LS574Package_DIP:DIP-20_W7.62mm_SocketU7, U38, U84, U87, U89, U112
574HCT574Package_DIP:DIP-20_W7.62mm_SocketU8, U9, U10, U85, U121
4100KResistor_THT:R_Array_SIP9RN2, RN3, RN4, RN5
4628128Package_DIP:DIP-32_W15.24mm_SocketU72, U73, U74, U75
474HC238Package_DIP:DIP-16_W7.62mm_SocketU17, U19, U20, U36
310nFCapacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC4, C8, C105
31KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R3, R13
3SST39SF040Package_DIP:DIP-32_W15.24mm_SocketU71, U88, U90
21uFCapacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC2, C3
227pFCapacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC12, C13
274HC590Package_DIP:DIP-16_W7.62mm_SocketU6, U39
274LS273Package_DIP:DIP-20_W7.62mm_SocketU13, U15
2Conn_02x20_Odd_EvenConnector_IDC:IDC-Header_2x20_P2.54mm_VerticalJ2, J4
2SW_PushButton_Switch_THT:SW_PUSH_6mm_H7.3mmSW2, SW4
10.65ACapacitor_THT:C_Disc_D10.5mm_W5.0mm_P5.00mmF1
1100uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC96
110KResistor_THT:R_Array_SIP9RN1
110uFCapacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC95
112MHzCrystal:Crystal_HC49-U_VerticalY1
11Mcpu:Akizuki-Denshi PotentiometerR2
11nFCapacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC39
1470uFCapacitor_THT:CP_Radial_D8.0mm_P3.80mmC97
15.6VDiode_THT:D_5W_P12.70mm_HorizontalD17
174151Package_DIP:DIP-16_W7.62mm_SocketU3
174HC04Package_DIP:DIP-14_W7.62mm_SocketU5
174HC14Package_DIP:DIP-14_W7.62mm_SocketU2
174HC86Package_DIP:DIP-14_W7.62mm_SocketU30
174LS08Package_DIP:DIP-14_W7.62mm_SocketU33
174LS107Package_DIP:DIP-14_W7.62mm_SocketU35
174LS138Package_DIP:DIP-16_W7.62mm_SocketU37
174LS154Package_DIP:DIP-24_W7.62mm_SocketU91
174LS32Package_DIP:DIP-14_W7.62mm_SocketU66
1Conn_01x03Connector_BarrelJack:BarrelJack_HorizontalJ3
1Conn_01x05Connector_USB:USB_Micro-B_Wuerth_629105150521J1
1LM555Package_DIP:DIP-8_W7.62mm_SocketU1
1LM555 - Button ClockPackage_DIP:DIP-8_W7.62mm_SocketU4
1SW_DIP_x03 - Clock Source SelectButton_Switch_THT:SW_DIP_SPSTx03_Slide_9.78x9.8mm_W7.62mm_P2.54mmSW1

Questions

How big is the Cpu PCB?

It measures 235 × 176.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Cpu use?

286 parts, built around the 74HC245D, SN74LVC16374DL, 74HC00D and 74LS574N. 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 Cpu KiCad files?

From the Edgeworth/memepu repository on GitHub, at the commit this page was made from: the board is pcb/cpu/cpu.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Cpu design in my own project?

Its repository publishes it under the GPL-3.0 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 Edgeworth/memepu

1
  • 2 layers100 × 100 mmDram test, the printed circuit board in 3D

    Dram test

    Edgeworth/memepu

    cmake -DUSEAFL=yes -DCMAKEBUILDTYPE=Release $PFX/verymeme AFLSKIPCPUFREQ=yes AFLPRELOAD=/usr/local/lib/afl/libdislocator.so \ afl-fuzz -m 1024M -i $PFX/verymeme/testdata/memelang/parsing -o memelangfuzz \ -x…

    52 parts9GPL-3.0

Similar boards

  • 2 layers306.1 × 130.2 mm8-Bit CPU 32k, the printed circuit board in 3D

    8-Bit CPU 32k

    slu4coder/Minimal-64-Home-Computer

    Legacy: Full TTL-only home computer with VGA and PS/2 and twice the processing power of a Commodore 64

    132 parts94
  • 2 layers180.3 × 112.4 mm8-Bit CPU 32k, the printed circuit board in 3D

    8-Bit CPU 32k

    slowcorners/Minimal-UART-CPU-Dev

    89 parts
  • 2 layers149.9 × 74.9 mmAbn6502, the printed circuit board in 3D

    Abn6502

    kitspace-test-repos/kicad6-file-collection

    93 partsMIT
  • 4 layers304.5 × 217.2 mmLatest Full Backplane, the printed circuit board in 3D

    Latest Full Backplane

    Trilobyte-CPU/8-bit-computer

    A DIY 8-bit computer built mostly with discrete logic chips

    478 parts2
  • 4 layers180.3 × 154.9 mmDALU, the printed circuit board in 3D

    DALU

    freesurfer-rge/slothpu

    Adventures in Electronics

    116 partsMIT
  • 2 layers245.1 × 160 mm8-Bit CPU 32k, the printed circuit board in 3D

    8-Bit CPU 32k

    slu4coder/Minimal-64x4-Home-Computer

    My DIY TTL home computer with VGA and PS/2 and 4x the processing power of a Commodore C64 or Apple II.

    139 parts326
  • 2 layers99.1 × 99.1 mmVga, the printed circuit board in 3D

    Vga

    rjw57/simplest-80s-computer

    This is my rough scratch repo where I keep experiments to do with desiging 80s computer peripherals. It is not in any sensible shape to be used by others yet, apologies.

    45 parts