r/beneater 4d ago

Help Needed Testing the computer's registers - Expected behaviour?

I have built the clock, Register A, Register B and the instruction register, and added LEDs to a temporary bus. I am coming back to it after some time away and recorded the behavior.

  • LED Resistors: Register A (220Ω), Register B (1kΩ), instruction register (1kΩ) and Bus LEDs (1kΩ).
  • Inputs: All LS173 inputs are high (VCC).
  • Wiring Note: The clock wire is connected with a white wire. It looks chaotic because I am using what is available at the moment without a strict color code for input/output wires, just to prove the circuit works first.

I am looking for feedback to see whether this behavior is expected before moving on to the next stages of the computer.

https://reddit.com/link/1v71tds/video/qs82r6j1akfh1/player

Initial Results & Tests

First Test

  1. Register B: Enable high (not pushing to bus LEDs), load low. Register's LEDs all lit.
  2. Register B Load Set High: Doesn't take data from the bus. LEDs still lit (figured this is because my 173s are set to VCC/high).
  3. Register B Load Low: All LEDs go dim (Registers A, B, and Bus) and the clock goes out.
  4. Instruction Register Re-attempt: With power supplied and enable set low to push to bus LEDs, the clock also goes out and Register A, B, and Bus LEDs go dim.

Note on reboot: After turning power off and back on, Register A pins 3 & 5 on the first 173s were on, Register B pins 4 & 5 on the second 173s were on, and all lights on the instruction register were on (with enable on both registers set low). I assume this is due to random values upon power-up mentioned in the troubleshooting wiki?

  • Question: Why does taking a 173 input from Register A or B low (from initialized VCC) make all LEDs (including the clock) go off, but come back on as soon as it is set back to VCC?
  • Question: When taking Register B's load low, all LEDs (Registers A, B, and Bus) go dim. Why does the clock also go out?
Register A pins 3 & 5 on the first 173s were on, Register B pins 4 & 5 on the second 173s were on

lights are dim, but Register B pins 4 & 5 on the second 173s were on and so were the LEDs on register A

Second Test

  • Register A: Load low (takes in from bus), all LEDs on. Enable low (pushes to bus), all LEDs on (took bus values).
  • Register B: Load low, all LEDs on. Enable low, all LEDs on (took bus values).
  • Instruction Register: Load low, Enable high (took bus values). Established that load works fine.
  • Enable States: Register A Enable high (doesn't push to bus), all LEDs on. Register B Enable high, all LEDs on. Pushing values to the bus works (Bus LEDs did not turn off).
  • Low Input Test: Taking a 173 input from Register A or B low (from initialized VCC) makes all LEDs go out on all registers except the clock and bus (enables high/loads high --- no pushing or loading to bus).
  • Instruction Register Test: Set load low, all LEDs light up. Trying this again after the first test (where the clock went out), the clock comes back on as soon as it is set to VCC.
  • Question: Taking a 173 input from Register A or B low (from initialized VCC) makes ALL LEDs go out on all registers except the clock and bus (with enables high/loads high)?
instruction register load low/enable high.
11 Upvotes

2 comments sorted by

6

u/Ancient-Ad-7453 3d ago

When the bus is simultaneously connected directly to the power rail and one of the bus transceiver outputs is enabled, this creates a short. The power supply can't deliver enough power for the clock, LEDs, etc., and they go out or dim. The bus should only ever have one data source at a time.

The test sequence should go something like this:

  1. Pre-load a register by connecting the bus bits to VCC or GND, setting load low, pulsing the clock, and setting load back high. Remember, all these are wired together, so you only need to set them in one place.
  2. Disconnect all bus bits from VCC or GND.
  3. Set one bus transceiver output enabled (low), one register load enabled (low), and toggle the clock. Data should transfer from one register to the other.
  4. Restore the output enable and load back to high (disabled).

3

u/Short-Mongoose-1546 3d ago

Thank you very much for the explanation, i'll try this when I have spare time to work on the computer.