Skip to the content
PCBKitNew board
2 layersDiode matrix rom, the printed circuit board in 3D

A project to create a microprocessor optimized for human visual verification

Copper layers
2
Thickness
1.6 mm
Parts
31
Nets
55
Pads
155
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 8.0 (file 20240108)
Created
20 Dec 2022
Updated
1 Dec 2025

Overview

Diode matrix rom is an open-source printed circuit board by charlespax, from the charlespax/macroprocessor repository on GitHub, published under the MIT licence. It is a 2-layer board with 31 parts on 55 nets.

It is built around the 74LS540PC, 74HC238D and 74HC688D. Its parts include 16 resistors, 8 diodes, 4 connectors and 3 ICs. It belongs with the lEDs and displays boards of this library.

Main components

3

README

README.md

macroprocessor

A project to create a microprocessor optimized for human visual verification

Introduction

A user should be able to trust the output of a computational device without having to trust the computatoinal device itself.

Application

Cryptographic security

Bitcoin

Design

The design is not optimized for price, area, power, efficiency, yield, or other traditional parameter. The design is optimized for human readability and understanding.

Requirements

  • MUST be visible to a human with minimal optical magnification
  • An integrated circuit design layout SHOULD aid understanding
  • IC layout SHOULD correspond to the layout as seen in a digitial simulation
  • Microprocessor design architecture SHOULD be optimized for understanding
  • The registers or other circuitry MAY emit light
  • MAY have features to aid cryptography
  • MAY have serial output for debugging or other purposes

Design notes

The overall chip layout and data flow SHOULD run from left to right.

Logical elements SHOULD have inputs on the left and outputs on the right

The metal layer or other features MUST NOT obscure any features such that the circuit can not be verified visually.

Chip packaging MUST NOT obscure the electrical path from the IC to the package pins.

The design MAY use multiple IC components if each component meets the requirements of this document.

The design MAY include wire-bonded components

Notes

  • RISC-V RV32I or RV32E are candidates
  • Research making a Forth-native processor
  • Can the macroprocessor be made using the same process as LEDs?
  • Can a wafer be put through a secondary LED process to create registers that emit light?
  • What is the current state of light-emitting transistors (LETs)?
  • Can I use diode logic and use LEDs?
  • I believe the normal silicon process cannot be used to create features that emit light because the band gap of silicon is too greaet. True?
  • RISC-V would be a great choice if it can be visually verified. This has the advantage that many more eyes would be on the chip. However, I think it is more important to make choices that result in more users in verifying their own devices.
  • Check out https://zeroToASICCourse.com - this is a course for designing and ordering your own chip designs.
  • Check out https://developers.google.com/silicon - Google's wafer batching program for open source designs. Cool, but I am happy to pay if reasonable.
  • MAY take an external diode-based ROM
  • Is there anything about this processor that would make it bad at cryptographic functions? Minimal circuitry could be included to address issues.
  • Can x-ray crystalography be used to verify the surface of an IC?
  • https://www.skywatertechnology.com is a US-based silicon fab.
  • What happens to the equipment from old semiconductor fabrication technologies?
  • Fab technologies: https://en.wikipedia.org/wiki/Semiconductor\_device\_fabrication
  • Are there fabs that use old technologies for new chips?
  • Wire bonding can be used in places where the metal layer would obscure layers below
  • wire bonding can be used as jumpers that can be cut to permanently disable a ffeature
  • Rather than wire bonding, the connections can be routed to the outside of the package, so they can be explicetly enabled
  • Maybe multi gate transistors can be used on such large features if one large gate is not appropriate
  • Make the binary instruction decoding physicallyl easy to see on the die. Put them in the same order you would find them in a specification table
  • Is silicon transparent to any frequency of light? If so, maybe this can be used for verification and would be a design consideration.

Conventions

The keywords below are to be interpreted as described in BCP14 [RFC2119] [RFC8174].

  • MUST
  • MUST NOT
  • REQUIRED
  • SHOULD
  • SHOULD NOT
  • RECOMMENDED
  • NOT RECOMMENDED
  • MAY
  • OPTIONAL

Parts

31
QtyValueFootprintReferences
1610kCapacitor_SMD:C_0402_1005MetricR1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16
8DDiode_SMD:D_SOD-123D1, D2, D3, D4, D5, D6, D7, D8
2DIN41612_02x16_ABConnector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_VerticalJ1, J12
174HC238Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU3
174HC688Package_SO:SOIC-20W_7.5x12.8mm_P1.27mmU2
174LS540Package_SO:SOIC-20W_7.5x12.8mm_P1.27mmU1
1Conn_01x08_PinConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ11
1Conn_01x11_PinConnector_PinHeader_2.54mm:PinHeader_1x11_P2.54mm_VerticalJ2

Questions

What parts does the Diode matrix rom use?

31 parts, built around the 74LS540PC, 74HC238D and 74HC688D. 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 Diode matrix rom KiCad files?

From the charlespax/macroprocessor repository on GitHub, at the commit this page was made from: the board is vm-digital/stack module/diode matrix rom/diode matrix rom.kicad_pcb and its schematic vm-digital/diode-matrix-rom-dip/diode-matrix-rom-dip.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Diode matrix rom 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 charlespax/macroprocessor

4
  • 4 layers27.9 × 58.4 mmDiode matrix rom dip, the printed circuit board in 3D

    Diode matrix rom dip

    charlespax/macroprocessor

    A project to create a microprocessor optimized for human visual verification

    29 partsMIT
  • 2 layers14 × 30.1 mmStack DIP, the printed circuit board in 3D

    Stack DIP

    charlespax/macroprocessor

    A project to create a microprocessor optimized for human visual verification

    17 partsMIT
  • 2 layers89.2 × 62.9 mmStack module, the printed circuit board in 3D

    Stack module

    charlespax/macroprocessor

    A project to create a microprocessor optimized for human visual verification

    16 partsMIT
  • 4 layers27.9 × 45.7 mmTemp kicad, the printed circuit board in 3D

    Temp kicad

    charlespax/macroprocessor

    A project to create a microprocessor optimized for human visual verification

    15 partsMIT

Similar boards

  • 2 layers137.2 × 88.8 mmGPU SCH, the printed circuit board in 3D

    GPU SCH

    snippyrow/-816-board

    A retro computer motherboard for the W65C816S CPU. Dual-core expandable, 16mb extended memory, four expansion ports.

    67 partsMIT
  • 2 layers95.1 × 72.1 mm4004MainBoard, the printed circuit board in 3D

    4004MainBoard

    novi/4004MainBoard

    Intel 4004 Single Board Computer (KiCad project)

    162 parts4CC-BY-4.0
  • 2 layers100 × 100 mmTD4 imem, the printed circuit board in 3D

    TD4 imem

    akita11/TD4_OR1

    4bit CPU TD4 using OpenRule1um PDK

    161 parts1MIT
  • 2 layers94 × 75.6 mmArduino, the printed circuit board in 3D

    Arduino

    stefanberndtsson/z80-arduino

    Z80 Computer - Arduino Module

    28 parts1
  • 2 layers178.4 × 115.6 mmCR2021 CPU v2, the printed circuit board in 3D

    CR2021 CPU v2

    derpflanz/castle-runner

    This is my hobby project in making a 6502 based 8-bit computer from scratch. The end goal is to have it run Castle Runner, a game I made many moons ago.

    47 parts
  • 2 layersASB RANGSONS, the printed circuit board in 3D

    ASB RANGSONS

    jjyothilinga/PCB_ASB_RANGSONS

    28 parts
  • 2 layers90.8 × 53.4 mmDecoder, the printed circuit board in 3D

    Decoder

    jjyothilinga/PCB_Decoder

    25 parts
  • 2 layers99.1 × 99.1 mmConnector test stand, the printed circuit board in 3D

    Connector test stand

    L0czek/rakieta

    The starter board provides the ignition impulse to fire the engine. It includes an I2C IO expander and an 8-channel digital comparator to require a correct safety byte/address to be present before firing.

    86 parts