Level 16: Program Counter

Task

Build a Program Counter (PC) from a Register and ADDER8. Each clock tick increments the address by 1.

The Program Counter (PC) is the heart of the processor execution cycle. It holds the current instruction address and automatically increments it by 1 on each clock tick.

Solution

Very simple circuit — a two-element loop:

1. Place ALU8 and Register8. 2. Feed Register8 output (Q) to ALU input A — this is the current address. 3. Feed BusConstant set to 1 (already on canvas) to ALU input B — this is the increment (+1). 4. Feed ALU output (Result) back to Register8 Data input — so the new value (address+1) enters the register on the next tick. 5. Connect the Clock signal (already on canvas) to Register8 Clock input. 6. Also connect Register8 output (Q) to the Addr output.

Leave the WE (Write Enable) pin of Register8 unconnected — it defaults to always 1, write is always enabled.

Start clocking and watch: address counts 0→1→2→3...