Вы находитесь на странице: 1из 99

Asynchronous Machine

Types of Asynchronous Sequential Machines

Pulse-Mode

Pulse will not occur simultaneously on two or more inputs


Memory Element transitions are initiated by input pulses
Input variables are used only in the uncomplemented or
complemented forms, but not both
x1

z1

xn

zm

Combinational
logic

y1 yr

Yr Y1

Flip-Flop
memory
Pulse Mode circuit model

Types of Asynchronous Sequential Machines

Fundamental Mode

Level inputs and unclocked memory element


Assume delay is lumped and equal (t)

In reality often not necessary

Only one input is allowed to change at any instant of time


x1

z1

xn

zm

Combinational
logic

y1 yr

Yr Y1

Delay, t

Fundamental Mode circuit model

berarti klo
awalnya 00 gk
mungkin
inputnya jadi 11

Types of Asynchronous Sequential Machines

In all types: State must be stable before input can be


change

Behavior is unpredictable (nondeterministic) if circuit not


allowed to settle

Stable State

PS = present state
NS = next state
PS = NS = Stability

Machine may pass through none or more intermediate


states on the way to a stable state
Desired behavior since only time delay separates PS from NS

Oscillation

Machine never stabilizes in a single state

Races

A Race Occurs in a Transition From One State to the Next


When More Than One Next State Variables Changes in
Response to a Change in an Input
Slight Environment Differences Can Cause Different State
Transitions to Occur

Supply voltage
Temperature, etc.
Race terjadi pada saat transisi dari satu state ke next state KETIKA lebih dari satu variabel next state berubah sebagai respon pada perubahan
Input.

Races
Present State : PS (Y1Y2)

if Y1 changes
first

01

11

if Y2 changes
first

00

10
Desired Next State: NS

Types of Races

Non-Critical

Machine stabilizes in desired state, but may transition through


other states on the way

Critical

Machine does not stabilize in the desired state

Races
Present State : PS (Y1Y2)

if Y1 changes
first

01

11

if Y2 changes
first

00
Critical Race

Non-Critical Race

10
Desired Next State: NS

00

Asynchronous FSM Benefits

Fastest FSM
Economical

No need for clock generator

Output Changes When Signals Change, Not When Clock


Occurs
Data Can Be Passed Between Two Circuits Which Are Not
Synchronized
In some technologies, like quantum, clock is just not
possible to exist, no clocks in live organisms.

Asynchronous FSM Example

input

present
state

next
state
y1

y2

Next State Variables

x y y x y

Y1 x , y1 , y2 x y1

x y1 x y1 y2 x y2
Y2 x , y1 , y2 y2 x y
y2 x y1

Asynchronous State Tables

States are either Stable or Unstable.

Stable states encircled with


Present
state

symbol.

Next state, output

x=0

x=1

Q0

Q0,0

Q1,0

Q1

Q2,0

Q1,0

Q2

Q2,0

Q3,1

Q3

Q0, 0

Q3,1

Oscillations occur if all states are unstable for an input value.


Total State is a pair (x, Qi)
Terjadi Osilasi jika untuk semua nilai input, semua statenya tidak stabil.

Constraints on Asynchronous Networks

If the next input change occurs before the previous


ones effects are fed back to the input, the machine
may not function correctly.

Thus, constraints are needed to insure proper


operation.

Fundamental Mode Input changes only when the


machine is in a stable state.

Normal Fundamental Mode A single input change


occurring when the machine is in a stable state
produces a single output change

Intinya kalau FUNDAMENTAL MODE, INPUT HANYA bisa berubah ketika Machine dalam stable state, kalau khasus khusus INPUT yang
berubah hanya satu, maka disebut NORMAL FUNDAMENTAL MODE

Analysis Pulse-Mode Asynch. Circuit

Assumptions

Pulse do not occur simultaneously on two or more input lines


State transition only occurs only if an input pulse occurs
All devices trigger on the same edge of each pulse

Intinya dari Analysis Pulse-Mode Asynch. Circuit:


1. Ada rangkaian, tentukan dan assign statenya (liat jumlah elemen memorynya), Input ke
elemen memorynya (Kalau rangkaian dengan 2 input, maka 11 tidak ada, karena pulse do
not occur simultan), dan persamaan untuk output, dan persamaan Flip-flop/Latchnya--> Dari
karakteristik elemen memory yang bersangkutan (Khusus pers. ini kita buat di K-MAP saja).
2. Dari sini, bisa kita buat timing diagram, misalkan saja kita mulai dengan memberikan
input X1 beberapa kali, lalu baru X2. Yang perlu diingat disini adalah state berubah saat
pulsa input berubah (Misal: ada pulsa X1, setelah Delay beberapa saat, state y berubah, lalu
saat pulsa X1 telah tiada dan ada pulsa X2, maka state Y berubah kembali)
3. Lalu buat K-Map untuk Next state dan output sekaligus (Y/z), lalu kita buat state tabelnya
(Flow Tabel).

Analysis Pulse-Mode Asynch. Circuit


z
x1

States:
y=0=A
y=1=B

Yang harus ada:


1. States
2. Inputs
3. Persamaan Output
4. Persamaan Elemen Memory

x2

y Q

SET

y
Q

CLR

Karena cuma 1 Flip-Flop


maka dia cuma punya 2 state

Inputs:
[x1,x2] = 00 = I0
[x1,x2] = 10 = I1
[x1,x2] = 01 = I2

z x1 y
S x1 y
R x2 y

Analysis Pulse-Mode Asynch. Circuit


States:
y=0=A
y=1=B

Inputs:
[x1,x2] = 00 = I0
[x1,x2] = 10 = I1
[x1,x2] = 01 = I2

z x1 y
S x1 y
R x2 y

x1
x2
y

S
R
z
State transition only occurs only if an input pulse occurs

Pulse do not occur simultaneously on two or more input lines, All devices
trigger on the same edge of each pulse

Analysis Pulse-Mode Asynch. Circuit


States:
y=0=A
y=1=B

z x1 y

Inputs:
[x1,x2] = 00 = I0
[x1,x2] = 10 = I1
[x1,x2] = 01 = I2

S x1 y
R x2 y
R

y\x1x2

00

01

11

10

y\x1x2

00

01

11

10

z
y\x1x2

00

01

11

10

Analysis Pulse-Mode Asynch. Circuit


S

R
y\x1x2

00

01

11

10

y\x1x2

00

01

11

10

y\x1x2

00

01

11

10

SR State assigned table --> Excitation


Table
y\x1x2 00 01 11 10

00

00

10

00

01

00

Y/z
y\x1x2

00

01

11

10

z
y\x1x2

00

01

11

10

0 0/0 0/0

1/0

1 1/0 0/0

1/1

Untuk mengisi K-MAP Next state Y, kita lihat karakteristik dari SR LATCH. Karakteristiknya, saat SRnya 00--> Q(t),
Saat SRnya 01--> 0, Saat SRnya 10-->1, saat SRnya 11-->d

Analysis Pulse-Mode Asynch. Circuit


z

States:
y=0=A
y=1=B

x1
x2

Inputs:
[x1,x2] = 00 = I0
[x1,x2] = 10 = I1
[x1,x2] = 01 = I2

z x1 y
y Q

SET

S x1 y

R x2 y

y
Q

CLR

State Table, Kalo Di Asynch jadi Flow Table

Y/z
y\x1x2

10

Present
State

0 0/0 0/0 1/0

A/0

A/0

B/0

B/0

A/0

1 1/0 0/0 1/1

B/0

A/0

B/1

B/1

A/0

00

01

I0

I2

I1

Present
State

x1

x2

Exercise
x

y2

SET

Inputs:
I0 = no pulse on x
I1 = pulse on x

CLR

SET

x
Q

D2 y1 , C2 x
z xy1 y2

xy2
y1

D1 y1 , C1 xy 2

Karena ada 2 Flip-Flop maka


dia bisa punya 4 state
Yang harus ada:
1. States
2. Inputs
3. Persamaan Output (z)
4. Persamaan Elemen Memory

States (y1, y2)


A = 00
B = 01
C = 10
D = 11

CLR

Assume A as initial state

Exercise Complete the timing diagram for 4


pulse on x
D1 y1 , C1 xy 2
D2 y1 , C2 x
z xy1 y2

Inputs:
I0 = no pulse on x
I1 = pulse on x

States (y1, y2)


A = 00
B = 01
C = 10
D = 11

x
y1

y2

D1=D2
C1
C2
z

Exercise

Karakteristik D Flip-Flop:
Nilai output Q akan sama dengan Nilai input D jika Clock1 = 1 (Negative Edge D Flip-Flop)
-->Jadi, dalam kasus ini D Flip-Flop 1 mendapatkan input not y1 (D1 = not y1), maka Q akan
menghasilkan D1 jika C1, dan menghasilkan not D1 saat C1 not

y1

SET

Y
Q

y2

CLR

SET

CLR

D1 y1 , C1 xy 2
D2 y1 , C2 x
z xy1 y2

C1=xy2

C2=x

We need to construct the K-map


for the State Table.
DFF clock input will see a transition
1 to 0 if the input pulse occurs
From the DFF Characteristics
equation and this observation, the
next state equations are:

Y1 D1C1 y1C1
y1 xy2 y1 (x y2 )
xy1 y2 xy1 y1 y2
Y 2 D2C2 y2C2
xy1 xy2

y1
y1y2\x
00
01
11
10

Y1 D1C1 y1C1

Exercise

Y 2 D2C2 y2C2

D1

C1
y1y2\x

00 1

00 0

01 1

01 0

11 0

10 0

D2

y1y2\x

D1C1
1
y1y2\x

0
0
0
1
1

1
0
0
1
1

Not x or Not y2
Not C1--> 0 1
1 1
1 0
1 0
1 1

Y1
0

00 10 10

00 0

01 10 11

01 0

11 0

11 00 01

11 1

10 0

10 00 00

10 1

C2
y1y2\x 0

y1y2\x 0

00 1

00 0

01 1

01 0

11 0

10 0

D2C2
y1y2\x

y1y2\x

Y2
0

00 10 11

00 0

01 10 11

01 1

11 0

11 00 01

11 1

10 0

10 00 01

10 0

y2
y1y2\x
00
01
11
10

0
0
1
1
0

1
0
1
1
0

y1y2\x

Not x
Not C1--> 0
1
1
1
1

1
0
0
0
0

z
y1y2\x
00
01
11
10

Exercise
Y1
y1y2\x

Y1Y2
y1y2\x

0
0
0
0
0

1
0
0
1
0

Y1 D1C1 y1C1
Y 2 D2C2 y2C2
z xy1 y2

00 0

00 00 01

Y1Y2/z
y1y2\x

01 0

01 01 11

11 1

10 1

Y2

I0

I1

00

00/0

01/0

11 11 00

01

01/0

11/0

10 10 10

11

11/0

00/1

10

10/0

10/0

Y1Y2/z
y1y2\x

00 0

01 1

y1y2\x

00

00/0

01/0

01

01/0

11/0

11 1

11

11/0

00/1

10 0

10

10/0

10/0

Y1Y2/z
y1y2\x

Setelah terbentuk tabel Y1Y2/z diatas ini,


maka kita ganti nilai x dengan sinyal I0
dan I1, lalu kiya lihat mana yang next
statenya tidak sama dengan presentstate,
lalu ambil itu jadi tabel baru.

00

01/0

01

11/0

11

00/1

10

10/0

Exercise

Kemudian buat state tabelnya

y1

y2

SET

Y1Y2/z
y1y2\x

I1

A/0

B/0

B/0

D/0

C/0

C/0

D/0

A/1

I0/0

CLR

SET

I0

States (y1, y2)


A = 00
B = 01
C = 10
D = 11

I0/0

CLR

I1/1

D
I0/0

I1/0

I1/0

B
I0/0

I1/0

Design of Pulse-Mode Circuit

Step 1. Derive state diagram or state table


Step 2. Minimize the state table
Step 3. Choose state assignment and generate the
transition output table
Step 4. Select type of latch or flip-flop to be used and
determine excitation equation
Step 5. Determine the output equation
Step 6. Draw the circuit

Inti:
State tabel--> minimisasi-->state assignment--> buat persamaan output (z) dan dari
elemen memory dengan mengacu data pada state assignment sebelumnya (Pecah
state assignment tabel ini menjadi bagian-bagianya, yaitu next state dan output)-->
gambar rangkaian.. JANGAN LUPA, KITA BUAT JUGA PERSAMAAN UNTUK
CLOCK KALAU KITA MAKE FLIP-FLOP/LATCH DENGAN CLOCK!!!

Do it yourself

Design a pulse-mode circuit having two input lines x1 and


x2, and one output line z. The circuit should produce an
output pulse coincide with the last input pulse in the
sequence x1-x2-x2. No other input sequence should
produce an output pulse. (Sequence detector x1-x2-x2)

Use T-FF: T = 1, C acts as input

Alur Mendesign :
Buat state tabel,state diagram (Pahami apa yang mau kita desain)--> Klo mungkin, minimisasi
tabel --> Pilih state assignmentnya, lalu buat tabel transisi output--> Pilih elemen memory yang
digunakan--> Tentukan persamaan outputnya (z) dan pers elemen memory--> gambar rangkaiannya.
Persamaan untuk elemen memory bisa
didapat dari hubungan antara present state
dengan Next statenya

Step 1

Dari soal saja sudah terlihat bahwa output z akan sama dengan 1 jika
BERTEPATAN dengan input terakhir (x2) dengan sequence input
x1-x2-x2, maka dia bergantung input dan present state (Mealy
Machine)--> Ingat kembali karakteristik mealy machine (Cara
menggambar state diagram dan state tabelnya).

States
A : indicates that the last input was x1
B : indicates that the sequence x1-x2 occurs
C : indicates that the sequence x1-x2-x2 occurs
Present
State

x1

x2

A/0

B/0

A/0

C/1

A/0

C/0

x1/0

x1/0

A
x1/0

C
x2/0

x2/0

x2/1

Step 2 and 3

Step 2. State table is minimize as given


Step 3. State assignment A=00, B=01, and C=10
Y1Y2/z
y1y2

x1

x2

00

00/0

01/0

01

00/0

10/1

10

00/0

10/0

Keterangan Khusus di Soal:


Nilai input ke T selalu 1.Karena
kita maunya Q = y, maka
clocknya negative edge.

Step 4 and 5

Y1

C1
y1y2

Use T-FF: T = 1
Y1Y2/z
y1y2

x1

x2

00

00/0

01/0

01

00/0

10/1

10

00/0

10/0

Y2

Karakteristik T Flip Flop :


(Saat C=1)
T: 0 -->Next State : Q(t)
T: 1 -->Next State : Not Q(t)

x1 x2

y1y2

x1 x2

00

00

01

01

11

11

10

10

y1y2

x1 x2

C2

y1y2

x1 x2

00

00

x1 x2

01

01

00

11

11

01

10

10

11

C1 x1 y1 x2 y2

10

C2 x1 y2 x2 y1

z
y1y2

Dari nilai next state Y1, kita lihat untuk present state y1.
Analisis untuk input x2, saat y1=0, dan Y1nya 0/Q(t)-->
T=0, y1=0 dan Y1nya 1-->T=1, y1=1 dan Y1nya 1/(t)-->
T=0

z x2 y 2

Step 6
C1 x1 y1 x2 y2
C2 x1 y2 x2 y1
z x2 y 2

y1
x1

Q
Q
z

1
x2

Q
Q

y2

Do it yourself

Design a pulse-mode circuit with inputs x1,x2, x3 and


output z. The output must change from 0 to 1 iff the input
sequence x1-x2-x3 occurs while z = 0. The output must
change from 1 to 0 only after an x2 input occur.

Use SR Latch

Step 1

Moore machine because output must remain high


between pulses
x2,x3

Present
State

x1

x2

x3

x1

x1

A/0

B/0

x3

x2

x1

x2
x2

D/1
x1,x3

C/0
x3

Step 2 and 3

Step 2. State table is minimize as given


Step 3. State assignment A=00, B=01, C=11, and D =10
Y1Y2
y1y2

x1

x2

x3

00

01 00 00

01

01 11 00

11

01 00 10

10

10 00 10

Step 4

Use SR Latch

Y1
y1y2

Untuk S1
Y1Y2
y1 Y1
0--> 0 disini yang perlu
kita lihat adalah Y1 dan S R Q (t+1)
Q(t)
y1 pada tabel Y1 . Karena 0 0
output 0, dan y1 0, maka 0 1
0
pada tabel karakteristik
1 0
1
SR, kemungkinanya
1 1
d
adalah Q(t) dan 0, berarti
dua2nya itu Snya 0. PADA Gunakanlah Gated
tabel karakteristik SR, lihat SR Latch
saja Q(t+1) biar tidak
bingung
S1
R1

x1 x2 x3

y1y2

x1 x2 x3

y1y2

y1y2

x1

x2

x3

00

01 00 00

01

01 11 00

11

01 00 10

10

10 00 10

x 1 x2 x3

00

00

00

S1 x2 y1 y2

01

01

01

11

11

11

R1 x1 y2 x2 y1

10

10

10

Y2

S2
y1y2

x1 x2 x3

R2
y1y2

x1 x2 x3

y1y2

y1
0
0
1
1

Y1
0
1
0
1

S1
0
1
0
d

R1
d
0
1
0

x 1 x2 x3

00

00

00

S 2 x1 y1

01

01

01

11

11

11

R1 x2 y1 x3

10

10

10

Step 5
Y1Y2
y1y2

x1

x2

x3

00

01 00 00

01

01 11 00

11

01 00 10

10

10 00 10

z y1 y 2
Membuat persamaan z disini (Moore
machine) dengan melihat kombinasi y1y2
yang membuat z=1--> karena Moore itu
OUTPUT -nya hanya bergantung dari
present state (y1y2).

Step 6
S1 x2 y1 y2

S 2 x1 y1

R1 x1 y2 x2 y1

R1 x2 y1 x3

z y1 y 2

SET

CLR

x1
x2
S

x3

SET

CLR

Analysis Fundamental-Mode Asynch. Circuit

Assumptions

Fundamental Mode Input changes only when the machine is


in a stable state.
Normal Fundamental Mode A single input change occurring
when the machine is in a stable state produces a single output
change

This type of circuit is most difficult to analyze


Asumsi:
Fundamental mode--> Input berubah hanya saat
machine sudah stabil (stable state).
Klo normal--> kondisi khusus, yaitu single input yang
berubah untuk single output.

Introduction to Fundamental mode


x1

z1

xn

zm

Combinational
logic

z g(x , y )
t

Y h( x , y )
t

y1 yr

Yr Y1

Delay, t

t t

present state setelah ditambah


delay akan sama dengan Next
state.

Fundamental Mode circuit model

x=(x1, , xn) : input state


y =(y1, , yr) : secondary state present state
z=(z1, , zm) : output state
Y=(Y1, , Yr) : excitation state next state
(x,y) : total state

Example

x1

Set of equations
z t g ( x1t , x2t , y t ) x1t x2t x2t y t

x2

Y t zt
y

t t

Delay
dt

x1
x2
y
z=Y
t1

t2

t3 t4

t5 t6 t7

Unstable at t3 (y Y)
t5 jga unstable
z tdk ada delay

t8

t9 t10

tunggu delta t dlu

t11

t12

t13 t14 t15

Tabular Representation

Excitation Table

Excitation state and output


It is a function of total space (x1, ,xn, y1, , yr)
K-map of

Row of secondary state


Column of unique input state

z t g ( x1t , x2t , y t ) x1t x2t x2t y t


Y t zt
y

t t

next state: excitation

y\x1x2

00

01

11

10

0 0/0

0/0

1/1

0/0

1 1/1

0/0

1/1

1/1

Tabular Representation

Flow Table

Replace the secondary state and excitation state by letters or


nonbinary characters
It represents the behavior of the circuit but does not specify
the realization of the circuit
y\x1x2

00

01

11

10

0 0/0 0/0

1/1

0/0

1 1/1 0/0

1/1

1/1

y\x1x2

00

01

11

10

a a/0

a/0 b/1

a/0

b b/1

a/0 b/1 b/1

Tabular Representation

perhtikan dr t3 ke t4
perubahan dr unstable
ke stable-> gnti state

Flow Table

Can be used to determine


the output behavior given
an input sequence
Input change produce
horizontal movement
State changes produce
vertical movement

y\x1x2

00
t1
a

01
t6

t7

a/0

a/0
t5

b/1

a/0

11

10

t3

t2

b/1

a/0

t4
b/1

b/1

x1
x2
y
z=Y
t1

t2

t3 t4

t5 t6 t7

stable. dlm flow table saat input 00

t8

t9 t10

t11

t12

t13 t14 t15

Analysis of Fundamental-Mode Asynch. Circuit

Determine the excitation and output equations from the


circuit diagram
Plot the excitation and output K-map for Y and z and from
these K-map construct the excitation table
Locate and circle all stable state in the excitation table
Assign a unique nonbinary symbol for each row of the
excitation table.
Construct the flow table

Example

Step 1

Y1 x y2

Y2

Y2 xy1

Y1

z x y1
Delay
dt

y1
y2

Delay
dt

Example

Step 2
Y1

Y1 x y2

Y2

y1y2\x

y1y2\x

y1y2\x

00

00

00

01

01

01

11

11

11

10

10

10

Y2 xy1
z x y1

Y1 Y2/z

Y1 Y2/z

Y1 Y2/z

y1y2\x

y1y2\x

y1y2\x

00

10/0

01/0

3/0

2/0

3/0

2/0

01

00/0

01/0

1/0

2/0

1/0

2/0

11

00/1

00/0

1/1

1/0

3/1

1/0

10

10/1

00/0

3/1

1/0

1/1

1/0

Example

Timing Diagram

Y1 Y2/z
y1y2\x

00

10/0

01/0

01

00/0

01/0

11

00/1

00/0

10

10/1

00/0

Start from (2) and input changes from 1 to 0


State (2) 1 (3)
dt
x
y1

Y1 Y2/z
y1y2\x

y2

00

10/0

01/0

Y1

01

00/0

01/0

11

00/1

00/0

10

10/1

00/0

Y2
z

dt

Example

Step 1
Let Q0 be state when y1 = 0 and Q1 be state when y1 = 1.
x1

z1

x2
z2
y1

Delay
dt

Y1

Y1 ( x2 ( x1 y1 )) ( x2 x1 y1 )
x2 ( x1 y1 ) x1 x2 x2 y1
z1 x1 y1
z 2 y1

Example

Step 2 through 5
Let Q0 be state when y1 = 0 and Q1 be state when y1 = 1.
Y1
x1

z1

y1\x1 x2 00 01 11 10

x2
z2
Y1

Input x1,x2

Q0

Q0,10 Q0,10 Q0,00 Q1,00

Q1

Q1,01 Q0,01 Q0,01 Q1,01

01

y1\x1 x2 00 01 11 10

Present
State

00

z1

Delay
dt

y1

11

z2

10

z1z2

y1\x1 x2 00 01 11 10
0

Do it Yourself
x1

x1

R
S

x1
x2

Analyze this circuit!

Q1
z

x1
x2

x1

SET

CLR

SET

CLR

x1

Q
Q

Q2

Example (Excitation Table)


z Q1Q2 x1Q2

S1 x1Q2
R1 x1Q2
S 2 x1 x2Q1
R1 x1 x2 x1Q1
Present State
(Q1Q2)
00

Excitation
(S1R1,S2R2)

Output
(z)

Inputs State (x1x2)

Inputs State (x1x2)

01

10

11

00

01

10

11

00 00,01

00,01

10,00

10,00

01 00,01

00,01

01,00

01,00

10 00,01

00,10

10,00

10,00

11 00,01

00,10

01,00

01,00

Example (Transition Table)


Present State
(Q1Q2)

Next State
(Q+1Q+2)

Output
(z)

Inputs State (x1x2)

Inputs State (x1x2)

00

01

10

11

00

01

10

11

00

00

00

10

10

01

00

00

01

01

10

10

11

10

10

11

10

11

01

01

Example (State Table)


Present State
(Q1Q2)

Next State
(Q+1Q+2)

Output
(z)

Inputs State (x1x2)

Inputs State (x1x2)

00

01

10

11

00

01

10

11

00 A

01 B

10 C

11 D

Example (Flow Table)


Present State
(Q1Q2)

Next State
(Q+1Q+2)

Output
(z)

Inputs State (x1x2)

Inputs State (x1x2)

00

01

10

11

00

01

10

11

Tables, tables and tables.

Excitation table
Transition Table
State Table
Flow Table

Careful with unreachable state because input is restricted


Output only at stable state

Design of Fundamental-Mode Circuit

Step 1. Construct a primitive flow table from word


description of the problem
Step 2. Derive a reduced primitive flow table
Step 3. Make secondary state assignment
Step 4. Construct excitation table and output table
Step 5. Determine the logic equations for each state
variable and output state variable
Step 6. Realize the logic equation with the appropriate
logic devices
A primitive flow table is a flow table that contains only
one stable state per row

Example

A two input (x1,x2) and one output (z) asynchronous sequential


circuit is to be designed to meet the following specifications.
1.
2.
3.

Whenever x1 = 0, z = 0.
The first change to input x2 that occurs while x1 = 1 must cause the
output to become z = 1.
A z = 1 output must not change to z = 0 until x1 = 0.

A typical input-output response of the desired circuit is


shown below.
x1
x2
z

Example

Step 1. Create a primitive table that satisfy the


requirement of the circuit.
Note:
Given only one stable state then we can only have 2 other
unstable state and one unspecified state.

x1
x2
z

Example
Next State, Output

Present
State

00

a,0

01

10

11

Possible input x1x2 = 00

Since the circuit is operating


on fundamental mode, then
there must be a stable state
at x1x2 = 00
Create a state a in the next
state at 00 column.
Circle it because it must be
stable.
Since z = 0 when x1 = 0, then
the output is set to 0

Example
Present
State

00

01

10

11

a,0

b,-

c,-

-,-

c,0

When x1x2 = 10,

At state (a),

b,0

Next State, Output

the next state must be an


unstable state, named c with
output.
We must add a new row for
state b, where c is stable for
x1x2 = 10
For x1 = 1, x2 must change
thus the output is 0

Since there can be only one


stable state in each row, this
implies that x1x2 = 11 can not
follow x1x2 = 00.
Place -,- at column x1x2 = 11

When x1x2 = 01,

the next state must be an


unstable state, named b with
output.
We must add a new row for
state b, where b is stable for
x1x2 = 01
Since z = 0 for x1 = 0 then the
output is zero

Example
Present
State

00

01

10

11

a,0

b,-

c,-

-,-

a,-

b,0

-,-

d,-

c
d

Next State, Output

c,0
d,0

At state (b),

When x1x2 = 00,

When x1x2 = 11,

the next state must be an


unstable state, named d with
output.
We must add a new row for
state d, where d is stable for
x1x2 = 11
For x1 = 1, x2 must change
thus the output is 0

x1x2 = 10 can not follow x1x2


= 01.
Place -,- at column x1x2 = 10

the next state must be an


unstable state
For x1x2 = 00, we already
have a stable state (a). We
must consider this.
From specification, z=0
when x1 = 0, thus go to a
with - output

Example

Next State, Output

Present
State

00

01

10

11

a,0

b,-

c,-

-,-

a,-

b,0

-,-

d,-

a,-

-,-

c,0

e,-

At state (c),

d,0

e,1

When x1x2 = 00,

x1x2 = 01 can not follow x1x2 = 10.


Place -,- at column x1x2 = 01
From specification, z=0 when x1
= 0, thus go to a with - output

When x1x2 = 11,

Already have a stable state (d),


we must consider this.
For x1 = 1, x2 changes from 0 to 1
thus the output must be 1. Thus
we can not go to state (d)
the next state must be a new
unstable state, named e with
output.
We must add a new row for state
e, where e is stable for x1x2 = 11
and the output is 1

Example

Next State, Output

Present
State

00

01

10

11

a,0

b,-

c,-

-,-

a,-

b,0

-,-

d,-

a,-

-,-

c,0

e,-

-,-

b,-

f,-

d,0

e
f

At state (d),

When x1x2 = 01,

From specification, z=0 when x1


= 0, thus go to b with - output

When x1x2 = 10,

e,1
f,1

x1x2 = 00 can not follow x1x2 = 11.


Place -,- at column x1x2 = 00

Already have a stable state (c),


we must consider this.
For x1 = 1, x2 changes from 1 to 0
thus the output must be 1. Thus
we can not go to state (c)
the next state must be a new
unstable state, named f with
output.
We must add a new row for state
f, where f is stable for x1x2 = 10
and the output is 1

Example

Next State, Output

Present
State

00

01

10

11

a,0

b,-

c,-

-,-

a,-

b,0

-,-

d,-

a,-

-,-

c,0

e,-

-,-

b,-

f,-

d,0

-,-

b,-

f,-

e,1

f,1

At state (e),

When x1x2 = 01,

x1x2 = 00 can not follow x1x2 =


11.
Place -,- at column x1x2 = 00
From specification, z=0 when
x1 = 0, thus go to b with output

When x1x2 = 10,

Already have a stable state (c)


and (f), we must consider this.
For x1 = 1, x2 changes from 1 to
0 thus the output must be 1.
Thus we can not go to state (c)
the next state must be unstable
state f with output.

Example

Next State, Output

Present
State

00

01

10

11

a,0

b,-

c,-

-,-

a,-

b,0

-,-

d,-

a,-

-,-

c,0

e,-

-,-

b,-

f,-

d,0

-,-

b,-

f,-

e,1

a,-

-,-

f,1

e,-

At state (f),

When x1x2 = 00,

x1x2 = 01 can not follow x1x2 =


10.
Place -,- at column x1x2 = 01
From specification, z=0 when
x1 = 0, thus go to a with output

When x1x2 = 11,

Already have a stable state (d)


and (e), we must consider this.
For x1 = 1, x2 changes from 0 to
1 thus the output must be 1.
Thus we can not go to state (d)
the next state must be unstable
state e with output.

Example

Step 2. Reduce primitive flow table


It is an incompletely specified machine.
Start with implication chart to produce compatible pairs
Determine maximal compatibles
Determine minimal collection of maximal compatibles

Reduction of input-restricted flow table

Dashed entries are allowed to take different values

Implication chart

Find compatible pairs


Next State, Output

Present
State

00

01

10

11

a,0

b,-

c,-

a,-

b,0

a,-

-,-

-,-

d,-

cf

-,-

c,0

e,-

cf

cf
de
de cf

-,-

b,-

f,-

d,0

-,-

b,-

f,-

e,1

cf

de

a,-

-,-

f,1

e,-

de

de

Implication chart

Determine Maximal Compatible


Column

List of Compatible Classes

{e,f}

{e,f}

cf

de

{e,f}

{e,f}, {b,d}

cf

cf
de
de cf

{e,f}, {b,d},{a,b},{a,c}

cf

de

No single state is added since


every state already appear at least
once.

de

Implication chart

Determine minimal collection of maximal compatible


Apply the concept of prime-implicant to reduce flow table
Column

List of Compatible Classes

{e,f}

{e,f}

{a,b}

{e,f}

{a,c}

{e,f}, {b,d}

{b,d}

{e,f}, {b,d},{a,b},{a,c}

{e,f}

x
x

*
x

*
x

Minimal collection of MC is {a,c} {b,d} {e,f}

Constructing Minimal Row Flow Table

Next State, Output

Present
State

00

01

10

11

a,0

b,-

c,-

-,-

a,-

b,0

-,-

a,-

-,-

-,-

e
f

Present
State

Next State
00

01

10

11

{a,c} :

,0

,-

,0

,-

d,-

{b,d} :

,-

,0

,-

,0

c,0

e,-

{e,f} :

,-

,-

,1

,1

b,-

f,-

d,0

-,-

b,-

f,-

e,1

a,-

-,-

f,1

e,-

Secondary State Assignment

Step 3. State Assignment


The goal is to avoid race
Present
State

Next State

State Assignment Possibility


(,) (,) (,)
Choose!
(,) (,)

00

01

10

11

{a,c} :

,0

,-

,0

,-

y1\y2

{b,d} :

,-

,0

,-

,0

{e,f} :

,-

,-

,1

,1

Assignment
: 00
: 11
: 10

Constructing State Transition Table (Step 4)


Present
State

Next State
00

01

10

11

{a,c} :

,0

,-

,0

,-

{b,d} :

,-

,0

,-

,0

{e,f} :

,-

,-

,1

,1

Assignment
: 00
: 11
: 10

Replace all stable state with its assignment

Present
State
: 00
: 11

: 10

Next State
00

01

00,0

10

11

00,0
11,0

11,0
10,1

10,1

ingat, untuk transition jgn sampe ada races... pd 11 ke


00

Constructing State Transition Table


Present
State

Next State
00

01

10

11

{a,c} :

,0

,-

,0

,-

{b,d} :

,-

,0

,-

,0

{e,f} :

,-

,-

,1

,1

Assignment
: 00
: 11
: 10

Now we need to replace the unstable states

Present
State

Next State
00

: 00

00,0

: 11

10,-

: 10

00,-

01

10

11

00,0
11,0

Input 00:
Total State (00,11) (00,00)
Create a cycle
(00,11) (00,10) (00,00)

11,0
10,1

10,1

Remember if a state changes


more than 1 bit at a time we have a race

Constructing State Transition Table


Present
State

Next State
00

01

10

11

{a,c} :

,0

,-

,0

,-

{b,d} :

,-

,0

,-

,0

{e,f} :

,-

,-

,1

,1

Assignment
: 00
: 11
: 10

Now we need to replace the unstable states

Present
State

Next State
00

01

10

: 00

00,0

10,-

00,0

: 11

10,-

11,0

: 10

00,-

11,-

11

Input 01:
Total State (01,00) (01,11)
Create a cycle
(01,00) (01,10) (01,11)

11,0
10,1

10,1

Remember if a state changes


more than 1 bit at a time we have a race

Constructing State Transition Table


Present
State

Next State
00

01

10

11

{a,c} :

,0

,-

,0

,-

{b,d} :

,-

,0

,-

,0

{e,f} :

,-

,-

,1

,1

Assignment
: 00
: 11
: 10

Now we need to replace the unstable states

Present
State

Next State
00

01

10

11

: 00

00,0

10,-

00,0

: 11

10,-

11,0

10,-

11,0

: 10

00,-

11,-

10,1

10,1

Input 10:
Total State (10,11) (10,10)
No problem here!
Only 1 bit need to change

Remember if a state changes


more than 1 bit at a time we have a race

Constructing State Transition Table


Present
State

Next State
00

01

10

11

{a,c} :

,0

,-

,0

,-

{b,d} :

,-

,0

,-

,0

{e,f} :

,-

,-

,1

,1

Assignment
: 00
: 11
: 10

Now we need to replace the unstable states

Present
State

Next State
00

01

10

11

: 00

00,0

10,-

00,0

10,-

: 11

10,-

11,0

10,-

11,0

: 10

00,-

11,-

10,1

10,1

Input 11:
Total State (11,00) (11,10)
No problem here!
Only 1 bit need to change

Remember if a state changes


more than 1 bit at a time we have a race

Constructing State Transition Table (variant 1)


Present
State

Next State
00

01

10

11

{a,c} :

,0

,-

,0

,-

{b,d} :

,-

,0

,-

,0

{e,f} :

,-

,-

,1

,1

Assignment
: 00
: 11
: 10

cara laiinnn pake


unused

Used the unused state 01

Present
State

Next State
00

: 00

00,0

: 11

01,-

: 10

00,-

01

00,-

01

10

11

00,0
11,0

11,0
10,1

10,1

Input 00:
Total State (00,11) (00,00)
Create a cycle
(00,11) (00,01) (00,00)

Constructing State Transition Table (variant 1)


Present
State

Next State
00

01

10

11

{a,c} :

,0

,-

,0

,-

{b,d} :

,-

,0

,-

,0

{e,f} :

,-

,-

,1

,1

Assignment
: 00
: 11
: 10

Used the unused state 01

Present
State

Next State
00

01

10

11

: 00

00,0

01,-

00,0

10,-

: 11

01,-

11,0

10,-

11,0

: 10

00,-

11,-

10,1

10,1

01

00,-

11,-

Input 01:
Total State (01,00) (01,11)
Create a cycle
(01,00) (01,01) (01,00)
All other inputs are the same as
before!

Constructing State Transition Table (variant 2)


Present
State

Next State
00

01

10

11

{a,c} :

,0

,-

,0

,-

{b,d} :

,-

,0

,-

,0

{e,f} :

,-

,-

,1

,1

Assignment
: 00
: 11
: 10

Create non-critical race

Present
State

Next State
00

: 00

00,0

: 11

00,-

: 10

00,-

01

00,-

01

10

11

00,0
11,0

11,0
10,1

10,1

Input 00:
Total State (00,11) (00,00)
Non critical race
(00,11) (00,01) (00,00)
(00,11) (00,10) (00,00)

Constructing State Transition Table (variant 2)


Present
State

Next State
00

01

10

11

{a,c} :

,0

,-

,0

,-

{b,d} :

,-

,0

,-

,0

{e,f} :

,-

,-

,1

,1

Assignment
: 00
: 11
: 10

Create non-critical race

Present
State

Next State
00

01

10

11

: 00

00,0

11,-

00,0

10,-

: 11

00,-

11,0

10,-

11,0

: 10

00,-

11,-

10,1

10,1

01

00,-

11,-

Input 01:
Total State (01,00) (01,11)
Non critical race
(01,00) (01,01) (01,11)
(01,00) (01,10) (01,11)
All other input are the same!

Constructing State Transition Table (output)

Now we need to set the output of the unstable states


If for some stable state the output is 0 and after input
changes the resulting stable state the output is 0, then all
unstable state that might be encountered during the time
between the two stable state must have an output of 0.
The same for stable state with output of 1.
Present
State

Next State
00

01

10

11

: 00

00,0

10,0

00,0

10,-

: 11

10,0

11,0

10,-

11,0

: 10

00,0

11,0

10,1

10,1

klo output dr stable state ke state yg lain itu sama,


maka transition output kita set sama dgn yg stable
klo beda, set dont care

The unstable state (01,00) is


reachable from (00,00) having an
output 0 and eventually reaches
(01,11) which also have an output
of 0 then (01,00) must have an
output of 0.
The same for (00,11), (00,10) and
(01,10)

Constructing State Transition Table (output)

What about the others?


Consider (11,11) (10,11) (10,10)

(11,11) have an output of 0


(10,10) have an output of 1
The output of (10,11) can be left unspecified (dont care) as it
provides more flexibility in implementation as it does not violates
that no more than a single output can change.

Present
State

Next State
00

01

10

11

: 00

00,0

10,0

00,0

10,-

: 11

10,0

11,0

10,-

11,0

: 10

00,0

11,0

10,1

10,1

Note: no more than a single output


can change at a time!
You can do the same for variant 1
and 2

Determine Logic Equations (Step 5)


Present
State
y1y2

Next State
Y1Y2,z

y1y2\x1x2

00 01 11 10

00

01

10

11

00

: 00

00,0

10,0

00,0

10,-

01

: 11

10,0

11,0

10,-

11,0

11

: 10

00,0

11,0

10,1

10,1

10

Y1

Y2
y1y2\x1x2

00 01 11 10

y1y2\x1x2

00 01 11 10

00

00

01

01

11

11

10

10

Y1 x2 y2 x1 y1

Y2 x2 y2 x1 x2 y1

z x1 y1 y2

dibuat dont
care biar bsa
disederhanaka
n

Realize logic equation (Step 6)


Y1 x2 y2 x1 y1
Y2 x2 y2 x1 x2 y1

z
x1

Y1

z x1 y1 y2
x2
Y2

y2

Delay
dt

y1

Delay
dt

Realize logic equation (Step 6)


With SR Latch?
Y1 x2 y2 x1 y1

Y2 x2 y2 x1 x2 y1
z x1 y1 y2
SR Excitation Property
00 SR 0d
01 SR 10
10 SR 01
11 SR d0

Next State
Y1Y2,z

Present
State
y1y2

00

01

10

11

: 00

00,0

10,0

00,0

10,-

: 11

10,0

11,0

10,-

11,0

: 10

00,0

11,0

10,1

10,1

Present
State
y1y2

Next State
(S1R1,S2R2),z
00

01

10

11

: 00

(0d,0d),0

(10,0d),0

(0d,0d),0

(10,0d),d

: 11

(d0,01),0

(d0,d0),0

(d0,01),d

(d0,d0),0

: 10

(01,0d),0

(d0,10),0

(d0,0d),1

(d0,0d),1

Realize logic equation (Step 6)


Next State
(S1R1,S2R2),z

Present
State
y1y2

00

01

10

11

: 00

(0d,0d),0

(10,0d),0

(0d,0d),0

(10,0d),d

: 11

(d0,01),0

(d0,d0),0

(d0,01),d

(d0,d0),0

: 10

(01,0d),0

(d0,10),0

(d0,0d),1

(d0,0d),1

S1

R1
y1y2\x1x2

00 01 11 10

y1y2\x1x2

00 01 11 10

00

00

01

01

11

11

10

10

S1 x2

R1 x1 x2 y2

Realize logic equation (Step 6)


Next State
(S1R1,S2R2),z

Present
State
y1y2

00

01

10

11

: 00

(0d,0d),0

(10,0d),0

(0d,0d),0

(10,0d),d

: 11

(d0,01),0

(d0,d0),0

(d0,01),d

(d0,d0),0

: 10

(01,0d),0

(d0,10),0

(d0,0d),1

(d0,0d),1

S2

R2
y1y2\x1x2

00 01 11 10

y1y2\x1x2

00 01 11 10

00

00

01

01

11

11

10

10

S 2 x1 x2 y1

R2 x2

Realize logic equation (Step 6)


S1 x2
R1 x1 x2 y2
S 2 x1 x2 y1
R2 x2
z x1 y1 y2

x1
x2

z
S

SET

CLR

SET

CLR

Do it yourself

Design a two input (x1, x2) and two output (z1,z2) circuit
where,

z1z2 =00 when x1x2=00


Output 10 will be produced following the occurrence of 00-0111 input sequence, and the output goes back to 00 after a 00
input.
Output 01 will be produced following the occurrence of 00-1011 input sequence, and the output goes back to 00 after a 00
input.

Step 1: Construct Primitive Flow Table


Present
State

00

01

11

10

Present
State

a/00

b/--

-/--

c/--

a/--

b/00

d/--

-/--

a/--

-/--

e/--

-/--

f/--

-/--

Input State (x1 x2)

Input State (x1 x2)


00

01

11

10

a/00 b/00

-/--

c/00

a/00 b/00

d/-0

-/--

c/00

a/00

-/--

e/0-

c/00

d/10

g/--

-/--

f/10

d/10

g/10

h/--

e/01

i/--

-/--

h/01

e/01

i/01

a/--

f/10

d/--

-/--

a/-0

f/10

d/10

-/--

a/--

-/--

d/--

g/10

a/-0

-/--

d/10

g/10

a/--

h/01

e/--

-/--

a/0-

h/01

e/01

-/--

a/--

-/--

e/--

i/01

a/0-

-/--

e/01

i/01

It might be easier if we assigned the output of the unstable states.


So that we correctly reduced the flow table.

Step 2: Construct Implication chart


Present
State

Input State (x1 x2)


00

01

11

10

a/00 b/00

-/--

c/00

a/00 b/00

d/-0

-/--

a/00

-/--

e/0-

c/00

-/--

f/10

d/10

g/10

-/--

h/01

e/01

i/01

a/-0

f/10

d/10

-/--

a/-0

-/--

d/10

g/10

a/0-

h/01

e/01

-/--

a/0-

-/--

e/01

i/01

de

Step 2: Find Maximal Compatibles


b

column List of Maximal Compatible

de

d
e

{h,i}

{h,i}

{h,i}{f,g}

{e,h,i}{f,g}

{e,h,i}{d,f,g}

{e,h,i}{d,f,g}{c,h}

{e,h,i}{d,f,g}{c,h}{b,g}

{e,h,i}{d,f,g}{c,h}{b,g}{a,b}{a,c}

h
ab ac tidak bsa
digabung pada
asynchronous,
kurang bc

Step 2: Merger Diagram

kaya distrukdis

column List of Maximal Compatible


h

{h,i}

{h,i}

{h,i}{f,g}

{e,h,i}{f,g}

{e,h,i}{d,f,g}

{e,h,i}{d,f,g}{c,h}

{e,h,i}{d,f,g}{c,h}{b,g}

{e,h,i}{d,f,g}{c,h}{b,g}{a,b}{a,c}

i
b
h
c
g
d
f
2 states

Minimal cover : {e,h,i}{d,f,g}{a,b}{a,c}


Reassignment: {a,b}
{d,f,g}
{a,c}
{e,h,i}

3 states

4
states

Step 2: Reduced Flow Table


Reassignment:

Present
State

{a,b}
{d,f,g}
{a,c}
{e,h,i}

Present
State

00

01

11

10

/00

/00

/-0

/00

/-0

/10

/10

/10

/00

/00

/0-

/00

/0-

/01

/01

/01

Input State (x1 x2)

Input State (x1 x2)


00

01

11

10

a/00 b/00

-/--

c/00

a/00 b/00

d/-0

-/--

a/00

-/--

e/0-

c/00

-/--

f/10

d/10

g/10

-/--

h/01

e/01

i/01

a/-0

f/10

d/10

-/--

a/-0

-/--

d/10

g/10

a/0-

h/01

e/01

-/--

a/0-

-/--

e/01

i/01

Row 1 includes two states and .


Any unstable state could go to either one of them.

Step 3: Secondary State Assignment


Present
State

00

01

11

10

/00

/00

/-0

/00

/-0

/10

/10

/10

/00

/00

/0-

/00

/0-

/01

/01

/01

Present
State

Input State (x1 x2)

Assignment:

Input State (x1 x2)

00

01

11

10

/00

/00

/-0

/00

/-0

/10

/10

/10

/00

/00

/0-

/00

/0-

/01

/01

/01

00
01
10
11

Look at row 4 column 1,


transition from (11 00)
Need to change (11 10)
tdk ada
races pd
psi.. jd lbh
aman drpd
ke alfa

Step 4: Constructing Transition Table


Present
State

00

01

11

10

/00

/00

/-0

/00

/-0

/10

/10

/10

/00

/00

/0-

/00

/0-

/01

/01

/01

PS
(y1 y2)

Input State (x1 x2)

Input State (x1 x2)

00

01

00

00/00 00/00

01

00/-0

10

10/00 00/00

11

10/0-

11

10

01/-0

10/00

01/10 01/10 01/10


11/0-

10/00

11/01 11/01 11/01

Assignment:

00
01
10
11

Step 4: Constructing Excitation and Output Table


PS
(y1 y2)

00

01

11

10

00

01

11

10

00

00

00

01

10

00

00

-0

00

01

00

01

01

01

-0

10

10

10

10

10

00

11

10

00

00

0-

00

11

10

11

11

11

0-

01

01

01

Next State (Y1 Y2)

Output (z1 z2)

pd asynchronous pakenya sr
synchron pk d flipflop

Step 5: Next State and Output Equations


x1x2

y1y2

x1x2

00

01

11

10

00

01

11

10

y1y2

00

01

11

10

00

01

Y1 y1 y2 x1 y1 x2 y1 x1 x2 y2

11

Y2 x1 x2 x1 y2 x2 y2

10

Y2

Y1
x1x2

y1y2

x1x2

00

01

11

10

00

01

11

10

z1

y1y2

00

01

11

10

00

01

z1 y1 y2

11

z2 y1 y2

10

z2

Вам также может понравиться