The components labeled CL1 and CL2 are combinational; R1 and R2 are
edge-triggered flip flops. Timing parameters for each component are
as noted.
Write the timing specifications (tS, tH, tCD, tPD, tCLK) for the
system as a whole using the timing specifications for the internal
components that are given in the figure.
Suppose you had available a faster version of CL2 having a propagation
delay of 3 and a contamination delay of zero. Could you substitute
the faster CL2 for the one shown in the diagram? Explain.

What is the smallest clock period for which the circuit still
operates correctly?
A sharp-eyed student suggests optimizing the circuit by
removing the pair of inverters and connecting the Q output of the left
register directly to the D input of the right register.
If the clock period could be adjusted appropriately, would the optimized
circuit operate correctly? If yes, explain the adjustment to the clock
period that would be needed.
When the RESET signal is set to "1" for several cycles, what
state is the FSM set to? (Give values for S0 and S1.)
Assuming the RESET signal has been set to "0" and will stay
that way, what is the state following S0=1 and S1=1?
Now suppose there is skew in the CLK signal such that the
rising edge of CLK always arrives at the left register exactly 1ns
before it arrives at the right register. What is the smallest clock
period for which the FSM still operates correctly?
Unfortunately the design notes for the P3 are incomplete. Using the
specification above and clues gleaned from the partially completed
diagrams below fill in the information that is missing from the state
transition diagram with its accompanying truth table. When done
Draw a state transition diagram for your FSM indicating the
initial state and for which states the light should be turned on.
Hint: the FSM has 3 states.
Construct a truth table for the FSM logic. Inputs include
the state bits and the next bit of the number; outputs include
the next state bits and the control for the light.
S1 S0 b | S1' S0' light =========|============== 0 0 0 | 0 0 1 0 0 1 | 0 1 1 0 1 0 | 1 0 0 0 1 1 | 0 0 0 1 0 0 | 0 1 0 1 0 1 | 1 0 0
__ __
light = S1*S0
__ _ __
S1' = S1*S0*b + S1*S0*b
__ __ __ _
S0' = S1*S0*b + S1*S0*b

Recall that this design has three buttons labeled "0", "1", and
"Start", and generates an unlock signal U=1 when the user presses
Start followed by the sequence 0,1,1,0.
Unfortunately your partner, Mark Ting, insists that the 6.004
design is way too complex for normal users to understand. After asking
you to help figure out how to make his watch stop beeping ("I never
could figure out how to operate this damned thing"), Mark questions
the need for a Start button. If 0110 is the combination, he argues,
why can't I just walk up and enter 0,1,1,0 and have the lock open?
After some reflection, you conclude that he may have a point.
The name of each state represents how many digits in the sequence
have been input. State Sxxxx indicates that the sequences has not begun,
Sxxx0 indicates that the first 0 has been input, etc.

The button circuitry converts each button press into a single pulse
guaranteed to be stable the required amount of time before and after
the rising edge of the clock. For example, pressing "B0" once
produces the following waveform:
In answering the questions below, assume that the value of the
UNLOCK output is only a function of the current state.
If the lock is programmed with this ROM data, what happens when
"B0" and "B1" are pressed at the same time? Assume that "Breset" is
not pressed.
Each of the edge-triggered D flip-flops has a setup time of tS, a
hold time of tH, a propagation delay of tPD and a contamination delay
of tCD. Assume that IN is stable tS before the rising edge of CLK and
tH after the rising edge of CLK.
What is the value of OUT at time T?
Let's see if there is an equivalent state machine with fewer states
by checking to see if any states in the diagram above are equivalent.
Two states are equivalent if (1) they have identical outputs and (2)
for each possible combination of inputs they transition to equivalent
states.
Recall that the MUX selects the Q output when G=0, and the D input
when G=1. The plan is that when G=1, the Q output will follow D after
a short delay; when G=0, the current Q output will be "latched" via
the feedback path. In this problem we explore assumptions necessary
to construct an informal proof that the latch behaves as proposed.
Assume, in each of the following, that the MUX is a well-behaved
lenient combinational device with a propagation delay of tpd.
Recall that the lenience of the MUX allows us to assume that if any
two of its inputs sufficient to determine its output are stable and
valid for at least tpd, then the MUX output will be stable and valid.