Presentation is loading. Please wait.

Presentation is loading. Please wait.

EE121 John Wakerly Lecture #11

Similar presentations


Presentation on theme: "EE121 John Wakerly Lecture #11"— Presentation transcript:

1 EE121 John Wakerly Lecture #11
Sequential-circuit design Sequential-circuit synthesis

2 State-machine design and synthesis
The creative part, like writing a program Turning the crank, like a compiler does Example: Design a combination lock with two inputs, X1 and X2. Open for the sequence X1, X2, X2 (one input per clock).

3 Specification ambiguities are resolved in the state table.
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 Meaning Name 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) (C) (B) (D)

4 State 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 ==> 00 B ==> 01 C ==> 10 D ==> 11 Up to this point is “art”, the rest is just “turning the crank.”

5 Transition table Substitute state-variable combinations for states in the state table. State X1 X2 Meaning Q1 Q UNLOCK Q1 Q2 Start Got X Got X1,X Got X1,X2,X

6 Transition 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. D Q Q1 Q2 X1 X2 CLK Q1 Q2 UNLOCK

7 Design using ABEL state diagrams
state_diagram LOCKST state A: if X1&!X2 then B else A; state B: if !X1&X2 then C else A; state C: if !X1&X2 then D else C; state D: if X1&!X2 then B else A; equations UNLOCK = (LOCKST==D); LOCKST = [Q1,Q2]; A = [ 0, 0]; B = [ 0, 1]; C = [ 1, 0]; D = [ 1, 1]; State assignment LOCKST = [Q1,Q2]; A = [ 0, 0]; B = [ 0, 1]; C = [ 1, 1]; D = [ 1, 0]; Different order LOCKST = [Q1,Q2,Q3,Q4]; A = [ 1, 0, 0, 0]; B = [ 0, 1, 0, 0]; C = [ 0, 0, 1, 0]; D = [ 0, 0, 0, 1]; One-hot assignment

8 Another 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

9 State 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:

10 Transition/output table (decomposed assignment)
Simple textual substitution With D flip-flops, excitation table is identical to transition table.

11 Develop excitation equations
Assume unused states have next-state = 000

12 Same 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).

13 “State Diagram” This essentially mimics the state table.

14 State assignment Note definition of “extra” states.

15 Odds ’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.

16 ABEL-derived excitation equations
Equivalent to what was derived by hand, with the addition of the RESET input.

17 And now for something completely different...
ABEL’s 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

18 Simpler, more natural state machine
Really an example of “state-machine decomposition.”

19 Equations and state assignments

20 Wrap-up Next time: PLD-based state-machine design examples
Discussion of Lab #5 How to deal with pushbuttons, edge detection, etc.


Download ppt "EE121 John Wakerly Lecture #11"

Similar presentations


Ads by Google