Close

New Quality Initiative

A project log for Homebrew 16 bit relay computer

Goal of the project is to develop and build a homebrew 16 bit relay computer

peterPeter 09/11/2025 at 20:170 Comments

Since the stability of the system shows some weaknesses and several parameters of the clock as well as of the memory were estimated rather than determined through analysis, the quality of the system will now be gradually improved:

This are the teststeps:

Tests of the Control Unit (including Logic Analyzer):
Phase 1:

  1. First: check whether adding a capacitor to the relay makes a difference

  2. Add capacitors to the clock relays, check them with the oscilloscope

  3. Add pull-down resistors to the clock relays, check with the oscilloscope

  4. Add capacitors and resistors to the memory outputs

  5. Check the memory relays on the oscilloscope like the clock relays

  6. Simulate read and write cycles with Arduino and check the memory’s response on the oscilloscope

  7. Let the relay system run for a while

  8. Consider: adding capacitors and pull-downs to the control lines of the control unit

Phase 2:

  1. Connect the control unit directly with NOP as the instruction on the data bus and run at maximum speed. For this, have the memory-Arduino output NOP fixed on the data bus

  2. Now do the same with all other instructions

  3. Feed the control unit directly with NOP, but this time from memory. Again, test at maximum speed

  4. Do the same with the other instructions, but without connecting write…so nothing will be written

  5. Also connect write…and have the Arduino output successful writes on the console. (For this test, connect the ALU and write a value into the accumulator)

  6. Check all control lines on the oscilloscope

Tests of the Address Unit (requires successful Control Unit tests):
Phase 1 (standalone tests):

  1. Arduino supplies the address unit with signals to increment the PC, determine maximum speed

  2. Also check the address output on the address bus

  3. Test the process of loading an address via the data bus

  4. Check the stack register

Phase 2 (test with Control Unit):

  1. Fetch NOP instruction from memory and let PC run in parallel

  2. Fetch NOP instruction from memory including addresses

  3. Run a loop. Determine maximum frequency

Tests of the Arithmetic Unit:

  1. Accumulator always plus 1, determine maximum speed (control and address units already tested)

  2. Same with the other logic elements, again determine maximum speed

  3. Check branch conditions

  4. Check carry

Discussions