
07 alu
tmarhguy/tomato
A functional 32-bit computer built from scratch in a dorm; implemented on FPGA, Kicad, browser simulation

A functional 32-bit computer built from scratch in a dorm; implemented on FPGA, Kicad, browser simulation
8b alu slice is an open-source printed circuit board by tmarhguy, from the tmarhguy/tomato repository on GitHub. It is a 4-layer board with 1,105 parts on 624 nets.
It is built around the 74HC244D, 74HC540D and 74HC157D, with the 74AHC1G86SE among its other parts. Its parts include 1,008 transistors, 26 resistors, 22 diodes, 16 capacitors and 14 ICs.
Pre-Tomato experiments · superseded by Lot 07.
Archive lot for early ALU board work. The living Dual-LUT PCB is 07_alu. The prior 8-bit discrete-transistor story (270×270 mm, ~3,488 devices) is documented at alu.tmarhguy.com.
Project map: Boards · 07_alu · Root README
Monolithic 8-bit ALU — complete combinational processor on a single PCB (historical reference below).
| Parameter | Value |
|---|---|
| Board Size | 270mm × 270mm (10.6" × 10.6") = 72900 mm² |
| Transistor Count | 3,488 (Hybrid: Discrete + equivalent ICs) → 436 T/bit |
| Board mm² / bit | ≈9112 (72900 / 8) |
| Architecture | Pure combinational (no clock) |
| Layers | 2 (top signal/power, bottom ground) |
| Power | 5V @ 0.5-1A (idle bring-up <200 mA) |
| Propagation Delay | ~445ns (worst case) |
Components:
Function: A + B or A - B (via 2's complement)
Signals:
IN: A[7:0], B[7:0], M
OUT: SUM[7:0], COUTComponents:
Function: NAND, NOR, XOR, PASS A, PASS B operations
Signals:
IN: A[7:0], B[7:0], LOGIC_SEL[2:0]
OUT: LOGIC_OUT[7:0]Components:
Function: Select result and optionally invert
Signals:
IN: ARITH[7:0], LOGIC[7:0], MUX_SEL, INV_OUT
OUT: RESULT[7:0]Components:
Function: Generate comparison and status flags
Signals:
IN: A[7:0], B[7:0], OUT[7:0], COUT_IN
OUT: LESS, EQUAL, POSITIVE, COUTComponents:
Function: FUNC[4:0] → control signals
Signals:
IN: FUNC[4:0]
OUT: M, MUX_SEL, INV_OUT, LOGIC_SEL[2:0]| Pin Group | Count | Description |
|---|---|---|
| A[7:0] | 8 | First operand |
| B[7:0] | 8 | Second operand |
| FUNC[4:0] | 5 | Opcode |
| VCC | 1 | +5V power |
| GND | 1 | Ground (multiple connections) |
| Pin Group | Count | Description |
|---|---|---|
| OUT[7:0] | 8 | Result |
| LESS | 1 | Less than flag |
| EQUAL | 1 | Equal flag |
| POSITIVE | 1 | Positive flag |
| COUT | 1 | Carry out flag |
PCB Specs:
Component count:
Estimated assembly time: 50-70 hours (hand soldering)
1. Visual inspection
2. Continuity: VCC, GND
3. Resistance: VCC-GND > 10kΩ
4. Power-on: Measure current < 200mA idle
5. Voltage: VCC = 5.0V ± 0.1V at all pointsTest ADD operation:
FUNC = 00000
A = 0x01
B = 0x01
Expected OUT = 0x02
Measure with multimeter or logic analyzerStatus: Design complete, fabrication-ready
Last Updated: 2026-01-16
| Qty | Value | Footprint | References |
|---|---|---|---|
| 512 | Q_NMOS | Package_TO_SOT_SMD:SOT-23 | Q10, Q100, Q102, Q104, Q106, Q108, Q110, Q111, Q112, Q114, Q117, Q118, Q1005, Q1006, Q1007, Q1008 +496 |
| 496 | Q_PMOS | Package_TO_SOT_SMD:SOT-23 | Q1, Q11, Q101, Q103, Q105, Q107, Q109, Q113, Q115, Q116, Q119, Q1000, Q1001, Q1002, Q1003, Q1004 +480 |
| 22 | 2200 | Resistor_SMD:R_0805_2012Metric | R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25 +6 |
| 22 | LED | LED_SMD:LED_0805_2012Metric | D1, D2, D3, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22 +6 |
| 17 | TestPoint | TestPoint:TestPoint_Pad_1.0x1.0mm | TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17 +1 |
| 14 | 100nF | Capacitor_SMD:C_0603_1608Metric | C1, C2, C3, C4, C5, C6, C7, C10, C11, C12, C13, C14, C15, C16 |
| 5 | 74HC244 | Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm | U8, U11, U12, U13, U14 |
| 4 | 1000 | Resistor_SMD:R_0603_1608Metric | R1, R2, R3, R4 |
| 3 | 74HC182 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U3, U4, U5 |
| 2 | 74HC157 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U6, U7 |
| 2 | 74HC540 | Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm | U1, U2 |
| 2 | C | Capacitor_SMD:C_0603_1608Metric | C8, C9 |
| 1 | 74AHC1G86 | Package_TO_SOT_SMD:SOT-23-5 | U10 |
| 1 | 74HC4078 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U9 |
| 1 | Conn_01x24 | Connector_PinHeader_2.54mm:PinHeader_1x24_P2.54mm_Vertical | J2 |
| 1 | Conn_01x35 | Connector_PinHeader_2.54mm:PinHeader_1x35_P2.54mm_Vertical | J1 |

tmarhguy/tomato
A functional 32-bit computer built from scratch in a dorm; implemented on FPGA, Kicad, browser simulation

tmarhguy/tomato
A functional 32-bit computer built from scratch in a dorm; implemented on FPGA, Kicad, browser simulation

tmarhguy/tomato
A functional 32-bit computer built from scratch in a dorm; implemented on FPGA, Kicad, browser simulation



MadsRudolph/vinyl-adc
Discrete 3rd-order delta-sigma stereo audio ADC, built from op-amps and logic gates: a four-layer Raspberry Pi HAT made by PCBWay, with KiCad files, SPICE simulations and measurements

agkaminski/ZAK181
Improved ZAK180: DIY all-in-keyboard computer featuring Z180 and floppy drive.




dkjonas/WildWillyR5Hardware
Schematic and board layout for the R5 version of my robot.
1,105 parts, built around the 74HC244D, 74HC540D, 74HC157D and 74AHC1G86SE. 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.
From the tmarhguy/tomato repository on GitHub, at the commit this page was made from: the board is hardware/kicad/main/8b-alu-slice/8b-alu-slice.kicad_pcb and its schematic hardware/kicad/boards/01_alu/1-seg-display.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask tmarhguy before reusing the design.