1 / 20

EE121 John Wakerly Lecture #11

EE121 John Wakerly Lecture #11. Sequential-circuit design Sequential-circuit synthesis. The creative part, like writing a program. Turning the crank, like a compiler does. State-machine design and synthesis.

mbobo
Download Presentation

EE121 John Wakerly Lecture #11

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. The creative part, like writing a program Turning the crank, like a compiler does State-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. (B) (C) (D) • 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 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)

  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 log2n • 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 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

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

  7. State assignment Different order LOCKST = [Q1,Q2]; A = [ 0, 0]; B = [ 0, 1]; C = [ 1, 0]; D = [ 1, 1]; LOCKST = [Q1,Q2]; A = [ 0, 0]; B = [ 0, 1]; C = [ 1, 1]; D = [ 1, 0]; 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 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);

  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.

More Related