Circuit Timing

The following is a timing diagram for the processor showing clocks, PLA outputs, register enables, and when multiplexer outputs are stable. Those registers used to hold information during the second stage are all enabled during clkb. State4 (an output from the PLA) is latched on clka, and this is ANDed with clkb to provide the enable for those registers. This means that the very first instruction executed (when the processor leaves the initialization state) will not have bogus information stored in those registers. However, some will have to be latches with clear inputs (they will be cleared during initialization as before), as will the PC.

There are a few signals with ??? below. These refer to signals that may be enabled as shown, but this enable is ANDed with one or more other signals. In particular, MemBuffer enable is anded with MemAccess and AccessType==LOAD and the general purpose registers (GP Regs) enable is ANDed with WB. Note that R/W is always READ (low) except during State3 * clka it will be WRITE (high) if MemAccess and AccessType==STORE.

Also, there is one multiplexer not shown, the ALUop.  It has the same timing as Dest (i.e. stable as soon as IR1 and IR2 have been latched), which is in time for the ALU to perform its calculation.