Title: EE121 John Wakerly Lecture
1EE121 John Wakerly Lecture 11
- Sequential-circuit design
- Sequential-circuit synthesis
2State-machine design and synthesis
- Example Design a combination lock with two
inputs, X1 and X2. Open for the sequence X1,
X2, X2 (one input per clock).
3- Example Design a combination lock with two
inputs, X1 and X2. Open for the sequence X1,
X2, X2 (one input per clock). - Specification ambiguities are resolved in the
state table.
State X1 X2 --------------------------
----------------------------------------------- Me
aning Name 00 01 10
11 UNLOCK --------------------------
-----------------------------------------------
Start A A A B A 0 Got X1 B A C A A 0 Got
X1,X2 C A D A A 0 Got X1,X2,X2 D A A B A 1
(D)
4State Assignment
- Can minimize number of states (see text), but
hardly anyone bothers anymore. - Need to assign state-variable combinations to
states. - Minimum number of variables for n states is ?log2
n? - Using more than minimum number may be
advantageous in some situations, e.g., one
variable per state (one-hot) (see text). - Example -- 4 states, 2 state variables (Q1,Q2)
A gt 00 B gt 01 C gt 10 D gt 11
Up to this point is art, the rest is just
turning the crank.
5Transition table
- Substitute state-variable combinations for states
in the state table.
State X1 X2 --------------------------
----------------------------------------------- Me
aning Q1 Q2 00 01 10
11 UNLOCK --------------------------
-----------------------------------------------
----------------------------------------------
Q1? Q2?
Start 0 0 0 0 0 0 0 1 0 0 0 Got X1 0 1 0 0 1 0 0
0 0 0 0 Got X1,X2 1 0 0 0 1 1 0 0 0 0 0 Got
X1,X2,X2 1 1 0 0 0 0 0 1 0 0 1
6Transition equations circuit
- Transition table specifies each state variable
(Q1?, Q2?) as a combinational logic function of
Q1, Q2, X1, X2. - Find a realization of each function by your
favorite means -- ad hoc, minimal
sum-of-products, etc. - Build the circuit.
7Design using ABEL state diagrams
state_diagram LOCKST state A if X1!X2 then B
else A state B if !X1X2 then C else A state
C if !X1X2 then D else C state D if X1!X2
then B else A equations UNLOCK (LOCKSTD)
8Another design example (from text)
- Design a machine with inputs A and B and output Z
that is 1 if - A had the same value at the two previous ticks
- B has been 1 since the last time the above was
true
9State assignment
- There are 6,720 different state assignments of 5
states to 3 variables. - And there are even more using 4 or more variables
- Here are a few obvious or interesting ones
10Transition/output table (decomposed assignment)
- Simple textual substitution
- With D flip-flops, excitation table is identical
to transition table.
11Develop excitation equations
- Assume unused states have next-state 000
12Same example using ABEL
- Note about reset inputs
- You always need a power-on reset input for a
sequential circuit. - Previous example did not use synchronous reset
because of manual-synthesis complexity. - Asynchronous reset is sometimes used (PR and CLR
inputs of flip-flops).
13State Diagram
This essentially mimics the state table.
14State assignment
- Note definition of extra states.
15Odds n ends
- Good behavior for extra states
- Clock and output equations
- Alternative state assignments are easy
- Modify state definitions and possibly output pins
and extra states. - Unspecified states go to 0,0,0.
16ABEL-derived excitation equations
- Equivalent to what was derived by hand, with the
addition of the RESET input.
17And now for something completely different...
- ABELs language features can be used to enable a
different, hybrid approach. - Use one register to keep track of the previous
value of A use a state machine for the rest.
Records previous value of A
18Simpler, more natural state machine
- Really an example of state-machine
decomposition.
19Equations and state assignments
20Wrap-up
- Next time PLD-based state-machine design
examples - Discussion of Lab 5
- How to deal with pushbuttons, edge detection,
etc.