Sequential System Synthesis -- Finite State Machine - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Sequential System Synthesis -- Finite State Machine

Description:

Sequential System Synthesis-- Finite State Machine Outline: Finite State Machine Definitions FSM Representations State Transition Graph (STG) Flow Table Cube Table ... – PowerPoint PPT presentation

Number of Views:97
Avg rating:3.0/5.0
Slides: 34
Provided by: Gang80
Category:

less

Transcript and Presenter's Notes

Title: Sequential System Synthesis -- Finite State Machine


1
Sequential System Synthesis-- Finite State
Machine
2
Outline Finite State Machine
  • Definitions
  • FSM Representations
  • State Transition Graph (STG)
  • Flow Table
  • Cube Table
  • State Minimization
  • Completely Specified FSM
  • Incompletely Specified Machine (ISM)
  • State Encoding

3
Definition Finite State Machine
  • A Finite State Machine (FSM) of Mealy type is a 6
    tuple ltI,S,?,S0,O,?gt
  • I input alphabet, a non-empty set of input
    values
  • S a non-empty, finite set of states
  • ? SxI ? S, a function defines the next state
  • S0 ?S, the set of initial/reset states
  • O output alphabet
  • ? SxI ? O, a function defines the output.
  • A finite state machine of Moore type is defined
    in the same way except that the output function
    ? S ? O does not depend on the present inputs.

4
Example Finite State Machine
  • I x,y
  • S A,B,C
  • S0 A
  • ?(A,x) A, ?(B,x) A, ?(C,x) C
  • ?(A,y) B, ?(B,y) C, ?(C,y) A
  • O 0,1
  • ?(A,x) 0, ?(B,x) 0, ?(C,x) 0
  • ?(A,y) 1, ?(B,y) 0, ?(C,y) 1

5
FSM Representation STG
  • State Transition Graph
  • Node ? state (S)
  • Edge ? transition (? SxI ? S, ? SxI ? O, S0)
  • Direction from the current state to the next
    state
  • Label input/output information for the
    transition
  • Special edges edges without source, their ending
    nodes are initial states
  • In sum, a STG is a weighted, directed graph where
    self loops and duplicated edges are allowed. Each
    node has at most I outgoing edges and IxS
    incoming edges. Total number of edges is ?
    IxSS0.

6
Example FSM as an STG
  • I x,y
  • S A,B,C
  • S0 A
  • ?(A,x) A, ?(A,y) B,
  • ?(B,x) A, ?(B,y) C,
  • ?(C,x) C, ?(C,y) A
  • O 0,1
  • ?(A,x) 0, ?(A,y) 1,
  • ?(B,x) 0, ?(B,y) 0,
  • ?(C,x) 0, ?(C,y) 1

7
FSM Representation Flow Table
  • The flow table of an FSM ltI,S,?,S0,O,?gt is a
    SxI table, where the i-th row represents
    state Si, the j-th column represents input value
    xj. The entry at (i,j) is a 2 tuple lt?(Si,xj),
    ?(Si,xj)gt. The initial states S0 can be specified
    separately.
  • Example

A,0
8
FSM Representation Cube Table
  • The cube table of an FSM ltI,S,?,S0,O,?gt is a
    (SxI)x4 table, where in each row, the first
    column represents input value xj, second column
    is the state Si, third column is the next state
    ?(Si,xj), and the last column is the output
    ?(Si,xj). The initial states S0 can be
  • specified separately.
  • Example

9
FSM with Incomplete Specification
  • An FSM ltI,S,?,S0,O,?gt is incompletely specified
    if ? and/or ? are incompletely specified
    functions. (I.e., they are not defined on some
    combinations of inputs and present states.)
    Otherwise, it is completely specified.
  • In STG, this means there exist nodes with less
    than I outgoing edges
  • In flow table, this means there exist undefined
    entries
  • In cube table, this means there exist undefined
    rows.

10
Make Incomplete Complete
  • In STG add a dummy state called trap state.
  • In flow table leave the entry empty or fill it
    by ltdont care, dont caregt.
  • In cube table delete the undefined row or fill
    the last two columns by dont cares.

y/-
x/0
x/0
A
A
D
D
x/-
y/1
y/1
y/1
y/1
x/0
x/0
?
x/-
y/0
y/0
C
B
C
B
-/-
11
FSM Minimization
  • FSMs may contain redundant states, i.e. states
    whose function can be accomplished by other
    states.
  • Removing the redundant states decreases the
    number of states in the FSM, and in general
    results in a simplification in the final
    implementation.
  • State minimization is the transformation of a
    given FSM into an equivalent FSM with no
    redundant states (I.e. minimal number of states).

12
Binary Relations
  • Given two sets A and B, a binary relation R
    between A and B is a subset of AxB(x,y)x?A,y?B
    . We write xR y if (x,y)?R .
  • Relation R ?BxB is
  • reflexive iff xRx for any x?B
  • symmetric iff xR y ? yR x
  • anti-symmetric iff xR y, yR x ? xy
  • transitive iff xR y, yR z ? xR z.
  • A binary relation R ?BxB is an equivalent
    relation if it is reflexive, symmetric, and
    transitive.

13
Partition into Equivalent Classes
  • A partition of a set of B is a set of subsets
    Bi?B, such that
  • Bi?Bi?? (?i?j)
  • ?iBiB.
  • Given an equivalent relation R ?BxB, the
    equivalent class of x?B is xy?BxRy.
  • ?x,y?B, xy or x?y?
  • If B1,B2,,Bn are all the different equivalent
    classes, then B1,B2,,Bn is a partition of B.
  • An equivalent relation gives a unique partition.

14
Refinement of a Partition
  • Given two partitions P1B11,B21,,Bm1 and
    P2B12,B22,,Bn2 of a set B, P1 is a refinement
    of P2 if every subset (block) Bi1?Bj2 for some j.
  • Let P1B11,B21,,Bm1 and P2B12,B22,,Bn2 be
    two sets of subsets of a set B, the meet of P1
    and P2 is defined as the following set
    P1P2Bi1?Bj2i1,2,m,j1,2,,n
  • Theorem If P1 and P2 are partitions, then P1P2
    is also a partition of the same set B,
    furthermore, it is a refinement for both P1 and
    P2.
  • Proof

15
Equivalent States of an FSM
  • Given two states s and t in an FSM, and a
    k-string x(x0x1xk-1), suppose zs(zs0zs1zsk-1)
    and zt(zt0zt1ztk-1) are the corresponding
    output strings when states s and t are used as
    starting state respectively. x is called a
    length-k distinguishing sequence for states s and
    t iff zsk-1? ztk-1.

xk-1x1x0
zsk-1zs1zs0
xk-1x1x0
ztk-1zt1zt0
16
Equivalent States of an FSM
  • Two states s and t are k-equivalent, written as
    s?kt, iff there does not exist a distinguishing
    sequence for s and t of length k or less.
  • Two states are equivalent iff they are
    S-equivalent.
  • Define ?k(s,t) s?kt, the set of all pairs of
    k-equivalent states.
  • ?k is an equivalent relation, I.e., it is
  • Reflexive s?ks
  • Symmetric s?kt ? t?ks
  • Transitive r?ks, s?kt ? r?kt

17
Equivalent States of an FSM
  • ?1(A,C),(A,E),(C,E),(B,D),(B,F),(D,F),
    (C,A),(E,A),(E,C),(D,B),(F,B),(F,D),
    (A,A),,(F,F)
  • B11A,C,E
  • B21B,D,F
  • ?2(A,C),(A,E),(C,E),(B,D),
    (C,A),(E,A),(E,C),(D,B), (A,A),,(F,F)
  • B12A,C,E
  • B22B,D
  • B32F
  • ?3(A,C),(B,D),(C,A),(D,B),(A,A),,(F,F)

18
Equivalent States Checking Theory
  • Two states are equivalent iff they are
    S-equivalent.
  • Theorem 1.
  • Let sx and tx be the x-successors of s and t in
    an FSM, then s?k1t ? s?kt and ?x?I, sx?ktx.
  • Theorem 2.
  • Two states of a given FSM are equivalent iff
    they are (S)-equivalent.

19
State Equivalence Checking Practice
  • Goal determine ?S(S), all pairs of equivalent
    states in an FSM S.
  • Partition-Refinement procedure
  • PkB1k,B2k, the partition determined by ?k,
    the k-equivalent state pairs. (P0SB10)
  • Idea
  • For each block in Pk
  • partition it (for all x?I) if its x-successors
    are not in the same block
  • Refine the partition by taking the meet of these
    finer partitions
  • Stop when Pk1Pk

20
Example Finding Equivalent States
  • P0(A,B,C,D,E,F) (1-block)
  • P1(A,C,E),(B,D,F)
  • for block P12(A,C,E)
  • on x0 next states EEC
  • blk indices 111
  • Pb10(A,C,E)P12
  • (no refinement)
  • on x1 next states DBF
  • blk indices 222
  • Pb11(A,C,E)P12
  • (no refinement)
  • P2(A,C,E)

level
input
blk no.
21
Example Finding Equivalent States
  • P1(A,C,E),(B,D,F)
  • P2(A,C,E)
  • for block P22(B,D,F)
  • on x0 next states DBB
  • blk indices 222
  • Pb20(B,D,F)P22
  • on x1 next states FFC
  • blk indices 221
  • Pb21(B,D),(F)
  • refine P22P22 Pb21 Pb21
  • (B,D),(F)
  • P2(A,C,E),(B,D),(F)

22
Example Finding Equivalent States
  • P1(A,C,E),(B,D,F)
  • P2(A,C,E),(B,D),(F)
  • for block P13(A,C,E)
  • on x0 next states EEC
  • blk indices 111
  • Pb10(A,C,E)P13
  • on x1 next states DBF
  • blk indices 223
  • Pb11(A,C),(E)
  • refine P13P13 Pb11 Pb13
  • (A,C),(E)
  • P3(A,C),(E)

23
Example Finding Equivalent States
  • P1(A,C,E),(B,D,F)
  • P2(A,C,E),(B,D),(F)
  • P3(A,C),(E)
  • for block P23(B,D)
  • on x0 next states DB
  • blk indices 22
  • Pb10(B,D)P23
  • on x1 next states FF
  • blk indices 33
  • Pb11 (B,D)P23
  • P3(A,C),(E),(B,D)

24
Example Finding Equivalent States
  • P1(A,C,E),(B,D,F)
  • P2(A,C,E),(B,D),(F)
  • P3(A,C),(E),(B,D)
  • for block P33(F)
  • contains single state, cannot be partitioned.
  • P3(A,C),(E),(B,D),(F)
  • P3(A,C),(E),(B,D),(F)

25
Example Finding Equivalent States
  • P1(A,C,E),(B,D,F)
  • P2(A,C,E),(B,D),(F)
  • P3(A,C),(E),(B,D),(F)
  • One can compute P4 in the same way, which gives
  • P4(A,C),(E),(B,D),(F)
  • P4P3 so we stop
  • Conclusion
  • A and C are equivalent
  • B and D are equivalent

26
FSM Minimization with Equivalent States
  • STG collapse states in the same equivalent
    class to one state update edges.

Equivalent classes (A,C), (B,D), (E), (F)
27
Definition Finite State Machine
  • Recall A Finite State Machine (FSM) of Mealy
    type is a 6 tuple ltI,S,?,S0,O,?gt
  • I input alphabet, a non-empty set of input
    values
  • S a non-empty, finite set of states
  • ? SxI ? S, a function defines the next state
  • S0 ?S, the set of initial/reset states
  • O output alphabet
  • ? SxI ? O, a function defines the output.

28
FSM Equivalence Checking
  • M1ltI1,S1,?1,S01,O1,?1gt M2ltI2,S2,?2,S02,O2,?2
    gt
  • What do we mean by M1 and M2 are equivalent?
  • For any input, they should produce the same
    output.
  • I1 I2
  • O1 O2
  • How to verify that M1 and M2 are equivalent?
  • Assuming that S01s01 and S02s02, then if
    there is no input string can distinguish s01 and
    s02, we claim that M1 and M2 are equivalent.

29
The Product Machine
  • The product machine of two FSMs,
    M1ltI,S1,?1,S01,O,?1gt and M2ltI,S2,?2,S02,O,?2gt,
    is defined as M12ltI,S12,?12,S012,0,1,?12gt
  • S12S1xS2(s1,s2) s1?S1,s2?S2
  • ?12 S12xI ?S12 ?12(s12,x)t12(t1,t2)
  • ?12(s12,x)(?1(s1,x), ?2(s2,x)) (t1,t2)
  • S012 S01xS02(s01,s02) s01?S01,s02?S02
  • ?12 S12xI ?0,1 ?12(s12,x)1 iff
    ?1(s1,x)?2(s2,x)
  • M1 and M2 are equivalent?M12 always outputs 1.

30
Run and Reachable State
  • For an FSM M1ltI1,S1,?1,S01,O1,?1gt, an input
    string x0x1xk-1 produces a sequence of states
    s0s1sk (called a run, where s0 is the starting
    state) and an output string z0z1zk-1.
  • A state t is reachable from state s if there
    exists an input string that produces a run with s
    as the starting state and t as the ending state.
  • The reachable states of an FSM ltI,S,?,S0,O,?gt is
    defined as t?S t is reachable from s, s?S0
  • We only need to check the reachable states for
    FSM equivalence.

31
FSM Equivalence Checking
  • M1ltI1,S1,?1,S01,O1,?1gt M2ltI2,S2,?2,S02,O2,?2
    gt
  • If I1 ? I2 or O1 ? O2 return not equivalent
  • Build the product machine M12
  • Start with the initial state s012, traverse the
    STG of the FSM M12
  • For each reachable state in M12, if it can output
    0, return not equivalent
  • Return equivalent
  • To get a distinguishing sequence in the case of
    not equivalent, we need to store the predecessor
    information and do backtracking.

32
Example FSM Equivalence Checking
  • M1ltx,y,A,B,C,?1,A,0,1,?1gt
  • M2 ltx,y,D,E,F,?2,D,0,1,?2gt
  • M12ltx,y,S12,?12,(A,D),0,1,?12gt
  • S12 9, however, only 3 states are reachable
    (A,D),(B,E),(C,F)
  • Every reachable state outputs 1 on all inputs.
  • So M1 and M2 are equivalent.

33
Example FSM Equivalence Checking
  • Now, M1 and M2 are not equivalent.
  • Consequently, one of the reachable state (C,F)
    outputs 0 on input x.
  • Backtracking to find the distinguishing sequence.
Write a Comment
User Comments (0)
About PowerShow.com