OISC Hardware: Program Counter

Written 2009-09-24

Tags:Central processing unit 555 timer IC hardware Program counter Clock generator Arithmetic logic unit 

After building a new bench power supply, I present, my first modular program counter!

What's so special about it? You can daisy-chain them! In fact, there are two little four bit program counters running as one eight bit program counter right on that board. This isn't a terribly huge feat for a program counter, but eventually there will be an entire CPU built this way.


Parts / Tools / Technical details: 
  • 1 555 Timer as a clock generator producing 9.346 kHz.
  • 2 74LS193 up/down counters used as daisy-chained 4 bit counters.
  • 1 fairly sketchy capacitor of unknown capacitance and age ( the only free one I had at the time ).
  • 2 47kOhm 20% Tolerance resistors (
     I had to deal with that unknown capacitor ).
  • 1 Digital Scope from the late 1980s, w/1MHz sampling rate.
The clock overflow pin on the 74ls193 acts as a ~16x clock divisor. The first 74ls193, which given the clock input of 9.346kHz, iterates through all 16 values, then overflows at 584.6 Hz into the second 74ls193. The second 74ls193 ialso iterates through its 16 values, but ~16 times slower, then overflows at 36.56 Hz, which is right on the money for what I'd expect from the input.

For right now, the LOAD and CLEAR lines were manipulated by hand. In the final design they will be exported across modules. LOAD will be driven by the ALU's output, and CLEAR will be part of the reset control.