Problem 5.
Stimulated by Tuesday's lecture, you have decided to cover MIT's steep
tuition costs by selling simple digital locks based on the neat
six-state FSM used as an example:
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.
-
Design a FSM whose inputs are simply "0" and "1" buttons, whose output
is the U (unlock) signal, and which has the property that U=1 if and
only if the last four button presses correspond to the sequence
0,1,1,0. Show the state transition diagram corresponding to your
design. [HINT: 5 states are sufficient].
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.
-
Is it possible that an equivalent FSM might be implemented in fewer
than 5 states? Explain.
Since 4 transitions are required for 4 button pushes, at least
5 states are needed to implement the FSM. Having only 4 states
would make 3 the mininum number of transitions to the unlock state.
-
The flip flops used to hold your FSM state contain random values when
power is first applied to your lock. Does this constrain your
handling of unused states? Explain.
Since we have 5 states, 3 bits are required to encode the states,
resulting in 3 unused states. If during power up it is possible
to begin in an unknown state, our FSM must include transitions from
unknown states to known states. If the machine begins in an unknown
state and a 0 in input, we should transition to state Sxxx0; if a 1
is input, we should transition to Sxxxx.
-
In a table (similar to that shown in lecture), give the contents of a
ROM that might be used in an implementation of your design. Completely
specify the ROM contents, including those corresponding to unused
states.
Problem 6.
Ben Bitdiddle has designed an electronic lock with three buttons:
"Breset", "B0" and "B1". He has provided the following circuit
diagram showing how the lock is implemented from a ROM and 3
flip-flops.
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.
-
What is the total number of bits in the ROM?
256 bits total: 26 locations, 4 bits wide.
-
The timing specifications for components are:
ROM: tCD=3ns, tPD=11ns
D flip-flop: tCD=2ns, tPD=4ns, tS=3ns, tH=3ns
How long before the rising edge of CLK must the button circuitry
guarantee that the button signals are stable?
tPD,ROM + tS = 14ns.
-
Assume that all combinations start with pressing the "Breset"
button. Ben wants to program the lock with the longest possible
combination. Not counting the "Breset" button press, what is the
longest combination Ben can achieve?
7 assuming no looping combinations.
-
If the lock is programmed not to change state if no buttons are
pressed, what is the next state field of ROM location 48 (i.e., the
location corresponding to A5,A4,A3,A2,A1,A0 = 110000)?
The current state appears on A5,A4,A3 = 110. So we want the
next state field of the ROM (D2,D1,D0) to specify the same state =
110.
-
The following table shows one possible contents of the first 32
locations of the ROM; assume that all other locations have the value
"0010". The location is listed as A5,A4,A3,A2,A1,A0, the data is listed as
D3,D2,D1,D0.
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.
State stays the same since all addresses of the form XXX011 transition
to state XXX.
-
If the lock is programmed with this ROM data, what is the
shortest combination that opens the lock after "Breset" has been
pressed?
press B0, then B1.
-
Suppose that the "Breset" button breaks while the lock is
locked. Is it still possible to open the lock using a predetermined
sequence of presses of the "B0" and "B1" buttons? Assume you know
nothing about the lock's state (except that it's locked!) when you
start.
Yes, you can open the lock. Noting that the UNLOCK state loops
to iteself, B1-B0-B1 is one of many sequences that takes us from
any state to UNLOCK.
Problem 7.
Use the following circuit in answering the questions below.
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.
-
In order for the circuit shown above to operate correctly what
constraints on tH and tS are necessary? Express them in terms of
tCD, tPD and the clock period.
ensure hold time is met at each register: tH <= tCD
-
What is the minimum clock period at which this circuit can be
clocked and still be guaranteed to work? Express your answer in terms
of tH, tS, tCD and tPD. Assume that timing constraints that do not
depend on the clock period are met.
ensure setup time is met at each register: tPD + tS <= tCLK
-
For just this question suppose there is skew in the CLK signal
such that the rising edge of CLK arrives at the flip-flop labeled F1
1ns before it arrives at the other three flip-flops. Assume that hold
times are not violated. How does this change the minimum clock period
at which the circuit above can be clocked and still be guaranteed to
work?
The minimum clock period increases by 1ns, i.e., we have to have
an extra 1ns between clock edges to ensure that the setup time
at F1 is met.
-
Consider following waveform plot for the circuit above. Assume
that IN is stable tS before the rising edge of CLK and tH after the
rising edge of CLK and that time T is more than tPD after the
preceding rising edge of CLK.
What is the value of OUT at time T?
At time T, OUT = 0 (ie, the value of IN four clock edges earlier).
-
View the circuit above as an FSM with one input and one output.
How many non-equivalent states does it have?
4 bits of state give us 24 = 16 states.
Problem 8.
Consider the following FSM state transition diagram:
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.
-
Start by filling in a "compatibility table" like the one shown below.
Place an "X" in square (SI,SJ) if SI produces a different output from
SJ.
-
For each non-X square (SI,SJ) write in pairs of states that have to be
equivalent in order for SI and SJ to be equivalent. For example, for
S2 to be equivalent to S5, then S1 (where S2 goes with a "0" input)
has to be equivalent to S5 (where S5 goes with a "0" input).
-
Finally, look at an entry (SI,SJ). If entry is "SM,SN" and if (SM,SN)
has an "X", put an "X" in square (SI,SJ). Repeat until no more
squares can be X'ed out. The remaining squares indicate equivalent
states. Show the final state (no pun intended) of your compatibility
table.
-
Draw the state transition diagram for the simplified FSM.
Here's the state transition diagram for the simplified FSM (w/o state 3).