Wed, 16th Dec 2015, 21:58 one more thing!

```

My students,

Before I let you go, I do need to make sure you understand one concept
from 306 that apparently (from the final exam) is clear that I must have
done a very bad job teaching it.  A lot of you lost 3 points on problem 3
because of this.

The State Machine: The OUTPUT is a function of the CURRENT STATE, not the
next state.

If you will look at the handout I provided (since the textbook is wrong)
for the danger signal problem of Chapter 3, you will note that the combinational
logic for the output lights gets its inputs just from the CURRENT STATE state
variables.  (The combinational logic for the NEXT STATE state variables gets its
inputs from the current state state variables and the external input.)

Also, if you think about the State Machine for the LC-3, you note that the
outputs in any one state are the control signals that guarantee the processing
written inside the bubble representing that state.  So, for example, when the
CURRENT STATE is #18, inside the bubble you see MAR <--- PC.  ... which means
that when the current state is #18, the outputs are LD.MAR/yes and GATE.PC/yes.
That is, the outputs are functions of the state ONLY, and are asserted for the
duration of the clock cycle.

Finally, if you look at the solution to problem 3 on the final exam, you
will note that the output column Z is "1" for all input combinations except
when S1 = S0 = 1.  That is, Z = NAND(S1,S0).  That is, the output depends on
the current state and NOT on the input X.

Anyhow, this will continue to be important in 319K and beyond -- worth a lot
more than 3 points!  So, I thought I would make sure to send you this email
before you put 306 into your memory (or forgetory, if you prefer).

Have a great semester break.

Yale Patt

```