Journal31 July 2026Vol. 32

Decision

Falling back to 32-bit

Forty bits was intellectually clean. Building is the constraint, not the spreadsheet. The swing was useful. The answer is the machine we already know how to wire.

In a swing between implementations, the design falls back to 32-bit. The 40-bit redesign was clean — one word type, a fourth operand field, room for a larger instruction table. A day went into catalogs and widening math. Then the constraint reasserted itself.

Why not 40

Forty bits is weird, perhaps as weird a number as Tomato has always been. That narrative needs no regularly accompanying weirdness. Widening every field would open something like eight thousand GPR if you rebuilt every board. Treat that as a possibility, not a discipline. Tomato was already unconventional. Stacking an unconventional word on an unconventional ALU doubles the explanation without doubling the silicon on the bench.

What stays

Opcode space limited to 512 rows — a 9-bit ROM index. Four 5-bit operand fields plus a 3-bit bank: 32 GPR times 8 banks is 256 addressable registers. Tiny against eight thousand. Still real memory in conventional terms — banks you can name, spill to, and wire without a full datapath rebuild.

Dark silicon persists. The ALU still knows more functions than the instruction ROM exposes. That was always the plan. No fourth read port. No 40-bit RAM on bring-up. The ALU PCB stays as built.

Area40b, set aside32b, current
Word40 bits, unified32 bits
Opcode ROM4096-row table512 rows
Register file4 read ports, 6-bit addr3R1W, 32 × 8
Digitalalu-40b-finalalu-32b-final, main.dig

Ship 32-bit Tomato. Run Digital on main. Keep verification on the 32b ALU export. Put fab time toward peripherals and control boards — not another word-width pivot.