Sequential Logic Optimization

Slides:



Advertisements
Similar presentations
Escola Politécnica da Universidade de São Paulo GSEIS - LME Logic Synthesis in IC Design and Associated Tools Sequential Synthesis Wang Jiang Chau Grupo.
Advertisements

Chapter 9 -- Simplification of Sequential Circuits.
Synthesis For Finite State Machines. FSM (Finite State Machine) Optimization State tables State minimization State assignment Combinational logic optimization.
Introduction to Sequential Circuits
Lecture 21 State minimization via implication charts.
L9 – State Assignment and gate implementation. States Assignment  Rules for State Assignment  Application of rule  Gate Implementation  Ref: text.
Some Slides from: U.C. Berkeley, U.C. Berkeley, Alan Mishchenko, Alan Mishchenko, Mike Miller, Mike Miller, Gaetano Borriello Gaetano Borriello Introduction.
COE 405 Sequential Circuit Design Review
Chapter #10: Finite State Machine Implementation
Lecture 15 Finite State Machine Implementation
Implementation Strategies
General Sequential Design
Sequential Circuits Storage elements
State-machine structure (Mealy)
VIII - Working with Sequential Logic © Copyright 2004, Gaetano Borriello and Randy H. Katz 1 Finite state machine optimization State minimization  fewer.
Analysis of Clocked Sequential Circuits
TOPIC : Finite State Machine(FSM) and Flow Tables UNIT 1 : Modeling Module 1.4 : Modeling Sequential circuits.
CMPUT Computer Organization and Architecture II1 CMPUT329 - Fall 2003 Topic C: State Assignment José Nelson Amaral.
No. 9-1 Chapter #9: Finite State Machine Optimization.
CS 151 Digital Systems Design Lecture 25 State Reduction and Assignment.
Sequential Circuit Design
ECE 331 – Digital System Design Introduction to and Analysis of Sequential Logic Circuits (Lecture #20) The slides included herein were taken from the.
ECE C03 Lecture 111 Lecture 11 Finite State Machine Optimization Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
CS Spring 2008 – Lec #24: Seq Logic Optimization - 1 Sequential Logic Optimization zState Minimization yAlgorithms for State Minimization zState,
ECE C03 Lecture 101 Lecture 10 Finite State Machine Design Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
ECE C03 Lecture 131 Lecture 13 Finite State Machine Optimization Prith Banerjee ECE C03 Advanced Digital Design Spring 1998.
Sequential Circuits and Finite State Machines Prof. Sin-Min Lee
Give qualifications of instructors: DAP
1 COMP541 State Machines Montek Singh Feb 6, 2007.
Sequential Circuit Design
Overview Sequential Circuit Design Specification Formulation
Spring 2002EECS150 - Lec15-seq2 Page 1 EECS150 - Digital Design Lecture 15 - Sequential Circuits II (Finite State Machines revisited) March 14, 2002 John.
CS Fall 2005 – Lec #19: Seq Logic Optimization - 1 Sequential Logic Optimization zState Minimization yAlgorithms for State Minimization zState, Input,
Contemporary Logic Design Two-Level Logic © R.H. Katz Transparency No. 4-1 Chapter #2: Two-Level Combinational Logic Section 2.3, Switches and Tools.
Contemporary Logic Design FSM Optimization © R.H. Katz Transparency No Chapter #9: Finite State Machine 9.4 Choosing Flip-Flops 9.5 Machine Partitioning.
ECE 301 – Digital Electronics Introduction to Sequential Logic Circuits (aka. Finite State Machines) and FSM Analysis (Lecture #17)
ECE 331 – Digital Systems Design Introduction to Sequential Logic Circuits (aka. Finite State Machines) and FSM Analysis (Lecture #19)
ENGIN112 L25: State Reduction and Assignment October 31, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 25 State Reduction and Assignment.
Zvi Kohavi and Niraj K. Jha 1 Capabilities, Minimization, and Transformation of Sequential Machines.
1 COMP541 State Machines Montek Singh Feb 8, 2012.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Lecture 12 – Design Procedure.
L10 – State Machine Design Topics. States Machine Design  Other topics on state machine design Equivalent sequential machines Incompletely specified.
1 Lecture 22 State encoding  One-hot encoding  Output encoding State partitioning.
Module : FSM Topic : types of FSM. Two types of FSM The instant of transition from the present to the next can be completely controlled by a clock; additionally,
Introduction to State Machine
9-1 Introduction Chapter #9: Finite State Machine Optimization.
2-1 Introduction Gate Logic: Two-Level Simplification Design Example: Two Bit Comparator Block Diagram and Truth Table A 4-Variable K-map for each of the.
DLD Lecture 26 Finite State Machine Design Procedure.
1 Finite State Machines (FSMs) Now that we understand sequential circuits, we can use them to build: Synchronous (Clocked) Finite State Machines Finite.
1 State Reduction Goal: reduce the number of states while keeping the external input-output requirements unchanged. State reduction example: a: input 0.
ENG241 Digital Design Week #7 Sequential Circuits (Part B)
EEE515J1_L4-1/12 EEE515J1 ASICs and DIGITAL DESIGN EGBCDCNT.pdf An example of a synchronous sequential machine.
FIGURES FOR CHAPTER 16 SEQUENTIAL CIRCUIT DESIGN
Finite state machine optimization
Finite state machine optimization
David Culler Electrical Engineering and Computer Sciences
Lecture 14 Reduction of State Tables
Synthesis of sequential circuits
CSE 370 – Winter Sequential Logic-2 - 1
Lecture 25 Logistics Last lecture Today HW8 posted today, due 12/5
DESIGN OF SEQUENTIAL CIRCUITS
Synthesis and Verification of Finite State Machines
Lecture 25 Logistics Last lecture Today HW8 posted today, due 12/5
CSE 370 – Winter Sequential Logic-2 - 1
Lecture 22 Logistics Last lecture Today
Lecture 23 Logistics Last lecture Today HW8 due Wednesday, March 11
CSE 370 – Winter Sequential Logic-2 - 1
Implementation Strategies
Chapter 9 -- Simplification of Sequential Circuits
Presentation transcript:

Sequential Logic Optimization State Minimization Algorithms for State Minimization State, Input, and Output Encodings Minimize the Next State and Output logic CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 1

Optimization in Context Understand the word specification Draw a picture Derive a state diagram and Symbolic State Table Determine an implementation approach (e.g., gate logic, ROM, FPGA, etc.) Perform STATE MINIMIZATION Perform STATE ASSIGNMENT Map Symbolic State Table to Encoded State Tables for implementation (INPUT and OUTPUT encodings) You can specify a specific state assignment in your Verilog code through parameter settings CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 2

Finite State Machine Optimization State Minimization Fewer states require fewer state bits Fewer bits require fewer logic equations Encodings: State, Inputs, Outputs State encoding with fewer bits has fewer equations to implement However, each may be more complex State encoding with more bits (e.g., one-hot) has simpler equations Complexity directly related to complexity of state diagram Input/output encoding may or may not be under designer control CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 3

Algorithmic Approach to State Minimization Goal – identify and combine states that have equivalent behavior Equivalent States: Same output For all input combinations, states transition to same or equivalent states Algorithm Sketch 1. Place all states in one set 2. Initially partition set based on output behavior 3. Successively partition resulting subsets based on next state transitions 4. Repeat (3) until no further partitioning is required states left in the same set are equivalent Polynomial time procedure CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 4

State Minimization Example Sequence Detector for 010 or 110 Input Next State Output Sequence Present State X=0 X=1 X=0 X=1 Reset S0 S1 S2 0 0 0 S1 S3 S4 0 0 1 S2 S5 S6 0 0 00 S3 S0 S0 0 0 01 S4 S0 S0 1 0 10 S5 S0 S0 0 0 11 S6 S0 S0 1 0 S0 S3 S2 S1 S5 S6 S4 1/0 0/0 0/1 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 5

Method of Successive Partitions Input Next State Output Sequence Present State X=0 X=1 X=0 X=1 Reset S0 S1 S2 0 0 0 S1 S3 S4 0 0 1 S2 S5 S6 0 0 00 S3 S0 S0 0 0 01 S4 S0 S0 1 0 10 S5 S0 S0 0 0 11 S6 S0 S0 1 0 ( S0 S1 S2 S3 S4 S5 S6 ) ( S0 S1 S2 S3 S5 ) ( S4 S6 ) ( S0 S1 S2 ) ( S3 S5 ) ( S4 S6 ) ( S0 ) ( S1 S2 ) ( S3 S5 ) ( S4 S6 ) S1 is equivalent to S2 S3 is equivalent to S5 S4 is equivalent to S6 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 6

CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 7 Minimized FSM State minimized sequence detector for 010 or 110 Input Next State Output Sequence Present State X=0 X=1 X=0 X=1 Reset S0 S1' S1' 0 0 0 + 1 S1' S3' S4' 0 0 X0 S3' S0 S0 0 0 X1 S4' S0 S0 1 0 S0 S1’ S3’ S4’ X/0 1/0 0/1 0/0 7 States reduced to 4 States 3 bit encoding replaced by 2 bit encoding CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 7

CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 8 Another Example 4-Bit Sequence Detector: output 1 after each 4-bit input sequence consisting of the binary strings 0110 or 1010 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 8

State Transition Table Group states with same next state and same outputs S’10 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 9

Iterate the Row Matching Algorithm S’7 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 10

CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 11 Iterate One Last Time S’3 S’4 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 11

Final Reduced State Machine 15 states (min 4 FFs) reduced to 7 states (min 3 FFs) CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 12

More Complex State Minimization Multiple input example inputs here 10 01 11 00 S0 [1] S2 [1] S4 [1] S1 [0] S3 S5 present next state output state 00 01 10 11 S0 S0 S1 S2 S3 1 S1 S0 S3 S1 S4 0 S2 S1 S3 S2 S4 1 S3 S1 S0 S4 S5 0 S4 S0 S1 S2 S5 1 S5 S1 S4 S0 S5 0 symbolic state transition table CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 13

CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 14 Minimized FSM Implication Chart Method Cross out incompatible states based on outputs Then cross out more cells if indexed chart entries are already crossed out present next state output state 00 01 10 11 S0 S0 S1 S2 S3 1 S1 S0 S3 S1 S4 0 S2 S1 S3 S2 S4 1 S3 S1 S0 S4 S5 0 S4 S0 S1 S2 S5 1 S5 S1 S4 S0 S5 0 S1 S2 S3 S4 S5 S0 S0-S1 S1-S3 S2-S2 S3-S4 S0-S1 S3-S0 S1-S4 S4-S5 minimized state table (S0==S4) (S3==S5) present next state output state 00 01 10 11 S0' S0' S1 S2 S3' 1 S1 S0' S3' S1 S3' 0 S2 S1 S3' S2 S0' 1 S3' S1 S0' S0' S3' 0 S0-S0 S1-S1 S2-S2 S3-S5 S1-S0 S3-S1 S2-S2 S4-S5 S0-S1 S3-S4 S1-S0 S4-S5 S4-S0 S5-S5 S1-S1 S0-S4 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 14

Minimizing Incompletely Specified FSMs Equivalence of states is transitive when machine is fully specified But its not transitive when don't cares are present e.g., state output S0 – 0 S1 is compatible with both S0 and S2 S1 1 – but S0 and S2 are incompatible S2 – 1 No polynomial time algorithm exists for determining best grouping of states into equivalent sets that will yield the smallest number of final states CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 15

Minimizing States May Not Yield Best Circuit Example: edge detector - outputs 1 when last two input changes from 0 to 1 X Q1 Q0 Q1+ Q0+ 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 – 1 0 0 0 00 [0] 11 [0] 01 [1] X’ X Q1+ = X (Q1 xor Q0) Q0+ = X Q1’ Q0’ CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 16

Another Implementation of Edge Detector "Ad hoc" solution - not minimal but cheap and fast 00 [0] 10 [0] 01 [1] X’ X 11 [0] CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 17

CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 18 State Assignment Choose bit vectors to assign to each “symbolic” state With n state bits for m states there are 2n! / (2n – m)! [log n <= m <= 2n] 2n codes possible for 1st state, 2n–1 for 2nd, 2n–2 for 3rd, … Huge number even for small values of n and m Intractable for state machines of any size Heuristics are necessary for practical solutions Optimize some metric for the combinational logic Size (amount of logic and number of FFs) Speed (depth of logic and fanout) Dependencies (decomposition) CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 18

State Assignment Strategies Possible Strategies Sequential – just number states as they appear in the state table Random – pick random codes One-hot – use as many state bits as there are states (bit=1 –> state) Output – use outputs to help encode states Heuristic – rules of thumb that seem to work in most cases No guarantee of optimality – another intractable problem CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 19

One-hot State Assignment Simple Easy to encode, debug Small Logic Functions Each state function requires only predecessor state bits as input Good for Programmable Devices Lots of flip-flops readily available Simple functions with small support (signals its dependent upon) Impractical for Large Machines Too many states require too many flip-flops Decompose FSMs into smaller pieces that can be one-hot encoded Many Slight Variations to One-hot One-hot + all-0 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 20

State Maps and Counting Bit Changes Bit Change Heuristic S0 1 S1 S2 S3 S4 S0 -> S1: 2 1 S0 -> S2: 3 1 S1 -> S3: 3 1 S2 -> S3: 2 1 S3 -> S4: 1 1 S4 -> S1: 2 2 Total: 13 7 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 21

Adjacency Heuristics for State Assignment Adjacent codes to states that share a common next state Group 1's in next state map Adjacent codes to states that share a common ancestor state Adjacent codes to states that have a common output behavior Group 1's in output map i / j i / k a b c I Q Q+ O i a c j i b c k c = i * a + i * b a b c i / j k / l I Q Q+ O i a b j k a c l b = i * a c = k * a I Q Q+ O i a b j i c d j b d i / j a c j = i * a + i * c b = i * a d = i * c CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 22

Heuristics for State Assignment Successor/Predecessor Heuristics High Priority: S’3 and S’4 share common successor state (S0) Medium Priority: S’3 and S’4 share common predecessor state (S’1) Low Priority: 0/0: S0, S’1, S’3 1/0: S0, S’1, S’3, S’4 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 23

Heuristics for State Assignment CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 24

CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 25 Another Example High Priority: S’3, S’4 S’7, S’10 Medium Priority: S1, S2 2 x S’3, S’4 S’7, S’10 Low Priority: 0/0: S0, S1, S2, S’3, S’4, S’7 1/0: S0, S1, S2, S’3, S’4, S’7, S10 CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 25

CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 26 Example Continued Choose assignment for S0 = 000 Place the high priority adjacency state pairs into the State Map Repeat for the medium adjacency pairs Repeat for any left over states, using the low priority scheme Two alternative assignments at the left CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 26

Why Do These Heuristics Work? Attempt to maximize adjacent groupings of 1’s in the next state and output functions CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 27

General Approach to Heuristic State Assignment All current methods are variants of this 1) Determine which states “attract” each other (weighted pairs) 2) Generate constraints on codes (which should be in same cube) 3) Place codes on Boolean cube so as to maximize constraints satisfied (weighted sum) Different weights make sense depending on whether we are optimizing for two-level or multi-level forms Can't consider all possible embeddings of state clusters in Boolean cube Heuristics for ordering embedding To prune search for best embedding Expand cube (more state bits) to satisfy more constraints CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 28

Output-Based Encoding Reuse outputs as state bits - use outputs to help distinguish states Why create new functions for state bits when output can serve as well Fits in nicely with synchronous Mealy implementations Inputs Present State Next State Outputs C TL TS ST H F 0 – – HG HG 0 00 10 – 0 – HG HG 0 00 10 1 1 – HG HY 1 00 10 – – 0 HY HY 0 01 10 – – 1 HY FG 1 01 10 1 0 – FG FG 0 10 00 0 – – FG FY 1 10 00 – 1 – FG FY 1 10 00 – – 0 FY FY 0 10 01 – – 1 FY HG 1 10 01 HG = ST’ H1’ H0’ F1 F0’ + ST H1 H0’ F1’ F0 HY = ST H1’ H0’ F1 F0’ + ST’ H1’ H0 F1 F0’ FG = ST H1’ H0 F1 F0’ + ST’ H1 H0’ F1’ F0’ HY = ST H1 H0’ F1’ F0’ + ST’ H1 H0’ F1’ F0 Output patterns are unique to states, we do not need ANY state bits – implement 5 functions (one for each output) instead of 7 (outputs plus 2 state bits) CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 29

Current State Assignment Approaches For tight encodings using close to the minimum number of state bits Best of 10 random seems to be adequate (averages as well as heuristics) Heuristic approaches are not even close to optimality Used in custom chip design One-hot encoding Easy for small state machines Generates small equations with easy to estimate complexity Common in FPGAs and other programmable logic Output-based encoding Ad hoc - no tools Most common approach taken by human designers Yields very small circuits for most FSMs CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 30

Sequential Logic Implementation Summary Implementation of sequential logic State minimization State assignment Implications for programmable logic devices When logic is expensive and FFs are scarce, optimization is highly desirable (e.g., gate logic, PLAs, etc.) In Xilinx devices, logic is bountiful (4 and 5 variable TTs) and FFs are many (2 per CLB), so optimization is not so crucial an issue as in other forms of programmable logic This makes sparse encodings like One-Hot worth considering CS 150 - Spring 2007 – Lec #21: Seq Logic Optimization - 31