State table minimization

Example

Bits received on line $x$ synchronized w/ clock.

Output 2 is one if 4 consecutive 0s or 2 consecutive 1s are received.

If a 3rd 1 is received for example, the output remains 1.


           y2n      y1n      y0n    
x^n ---- D ----- D ------ D ----
         |       |        |
         ------------------------
              CLK                |
                                zn

$y_2^n = x^{n-1}$

$y_1^n = y_2^{n-1} = x^{n-2}$

$y_0^n = y_1^{n-1} = x^{n-3}$

$z^n = \bar x^n \bar y^n_2 \bar y_1^n \bar y_0^n + x^ny_2^n$

$(y_2y_1y_0)^n$ $x^n = 0$ $x^n = 1$
000 000,1 100,0
001 000,0 100,0
010 001,0 101,0
011 001,0 101,0
111 011,0 111,1
110 011,0 111,1
101 010,0 110,1
100 010,0 110,1

$(y_2y_1y_0)^{n+1}, z^n$

$q^n$ $x^n = 0$ $x^n = 1$
a a,1 d,0
b a,0 h,0
c b,0 g,0
d b,0 g,0
e d,0 e,1
f d,0 e,1
g c,0 f,1
h c,0 f,1

c equals d since they both have the same output and the same next state.

ef equivalent to gh since same output and equal next state.

$q^n$ $x^n = 0$ $x^n = 1$
A A,1 D,0
B A,0 D,0
C B,0 D,0
D C,0 D,1

We went from 8 states to 4! (Only 2 FFs).

We can systematically minimize the state tables.

We have to find equal (or equivalent states).

By implication: what states are implied by a given pair?