Anda di halaman 1dari 31

PERANCANGAN SISTEM DIGITAL

Bab II.1 Pendekatan Mesin Keadaan


(Lanjutan)

Contoh Contoh Mesin Keadaan


(1) Pencacah Naik Modulus-4

count
clock

Input :

Q1

Q0

En
Pencacah
Mod-8

aktif, operasi mencacah


count =
non-aktif, tidak mencacah
Pencacahan
Output :
Q1 Q0 = keadaan pencacah.

Q1

Q0

Keadaan

S0 (awal)

S1

20

S2

Diagram keadaan :
reset : pada saat rangkaian dihubungkan ke catu-daya, FSM akan
tereset ke keadaan awal S0 (Q0 = Q1 = 0).
reset
count

count

Tabel transisi keadaan :

S0/
00

S1/
01

count

Next State

count
count
S3/
11

count

count
count

S2/
10

Pr. Out.

Pr.
State

count

count

Q1

Q0

S0

S0

S1

S1

S1

S2

S2

S2

S3

S3

S3

S0

Pencacah naik modulus- 5

Output

Q2 Q1 Q0
x
clock

Q2 Q1 Q0

up counter
mod.5

S0

S1

Keadaan S
2

S3

S4

1, FSM mencacah
x=
0, FSM tak-mencacah
x

x
S0/
000

S1/
001

x
x

S2/
010

x
x

S3/
011

x
S4/
100

x
4

Bagaimana Diagram Keadaan untuk Pencacah modulus-M yg dapat


dioperasikan sebagai pencacah naik atau pencacah turun ?
1. Tentukan output pencacah : log2M bit output ,
Q

log2M -1

Q1 Q0

2. Tentukan input x untuk menentukan ragam operasi pencacah :


input
x

ragam operasi

mencacah naik

mencacah turun

tak-mencacah

3 ragam log23 bit input = 2 bit,


x1 x0

3. Gambarkan Diagram Keadaannya.

(2) Pendeteksi ganjilnya jumlah nilai 1 dalam runtun


input
x
clock

FSM

0, bila #x(t) = genap


y(t) =

#x(t) : jumlah harga x = 1


sampai dengan x(t)

1, bila #x(t) = ganjil


present
x: 1

x: 1
0

0
#x(t) = ganjil = 3

1
#x(t) = genap = 4

Keadaan yg dibutuhkan :
past
x: 1

present
1

0/1
t

#x(t-1) ganjil & x(t) = 1 maka #x(t) genap y(t) = 0


#x(t-1) ganjil & x(t) = 0 maka #x(t) ganjil y(t) = 1
Sgjl
past

x: 1
0

present
1

0/1
t

#x(t-1) genap & x(t) = 1 maka #ganjil y(t) = 1


#x(t-1) genap & x(t) = 0 maka #genap y(t) = 0
Sgnp

Dibutuhkan dua keadaan


1. Sgnp : keadaan yg mengingat

#x(t-1) = genap

2. Sgjl : keadaan yg mengingat

#x(1-1) = ganjil

(a) Untuk FSM Moore :

Diagram keadaan

Reset
x=1

Sgnp /
0
x=0

Tabel transisi keadaan

S(t)

x(t)

y(t)

S(t+1)

Sgnp

Sgnp

Sgjl

Sgjl

Sgnp

Sgjl

x=1

Sgjl /
1
x=0

S(t)

S(t+1) / y(t)
x(t) = 0

x(t) = 1

Sgnp

Sgnp / 0

Sgjl / 1

Sgjl

Sgjl / 1

Sgnp / 0

(b) Bagaimana untuk FSM Mealy ?


Reset

x=?/y=?

x=?/y=?

Sgnp

x=?/y=?

Sgjl
x=?/y=?

(3) Pengenal Pola (detektor runtun)

Pengenal

Contoh :
Input x adalah runtun biner, output y akan
diaktifkan ketika pola 1 0 1 muncul pada
runtun inputnya

Pola

a. FSM Mealy :
past
x:

present
1

0/1
t

0
x:

1 pola 1 0 1 terdeteksi, y = 1

x:

pola 1 0 1 tak-terdeteksi, y = 0

Pola 1 0 1 dibentuk oleh x(t-2) x(t-1) x(t)


Keadaan ditentukan oleh x(t-2) x(t-1)

10

x(t-2)

x(t-1)

Keadaan

Sawal

S00

-/0/1

Sd1

S10

Keadaan awal, x(t-2) & x(t-1) blm


ada.
x(t-2) dont care , atau 0 atau 1

reset

x=1
Transisi yg mendeteksi 101:
Sawal Sd1 S10 Sd1

Sawal

x=1

Sd1

x=0

x=0
x=1
x = 1/ y = 1
S00

x=0

x=0

S10
11

reset

Transisi yg mendeteksi 101:


Sawal

S00 Sd1 S10 Sd1

x=1

x=1

x=0

Sd1
x=0

x=1
x=0

S10

reset

Transisi yg mendeteksi 101:


Sawal

Sd1 Sd1 S10 Sd1

x=0

S00

x = 1/ y = 1

x=1

x=1

x=0

Sd1
x=0

x=1
x=0

S00

x=0

x = 1/ y = 1
S10
12

Pr.
State
Sawal

Tabel Transisi Keadaan :

x(t)

y(t)

Next
State

0
1

S00

0
1

Sd1

0
1

S10

0
1

Pola yg overlap juga terdeteksi :


dua pola 101 yang overlapped
akan terdeteksi dua kali

x: 0

y: 0

113 0

b. FSM Moore :
present
past
x:

y(t) = 0 , pola 101 tak-terdeteksi


t

y(t) = 1 , pola 101 terdeteksi


t

x:
0

1,

bila x(t-3) x(t-2) x(t-1) =

101

0,

bila x(t-3) x(t-2) x(t-1) =/= 1 0 1

y(t) =

Input x(t) tidak ikut menentukan output y(t)


Pola 1 0 1 dibentuk oleh x(t-3) x(t-2) x(t-1)14

Keadaan :
1. Sawal : Keadaan awal.
2. Sd1

: Sistem mempunyai ingatan x(t-1) = 1

3. S00

: Sistem mempunyai ingatan x(t-2) x(t-1) = 0 0

4. S10

: Sistem mempunyai ingatan x(t-2) x(t-1) = 1 0

5. S101 : Sistem mempunyai ingatan x(t-3) x(t-2) x(t-1) = 1 0 1

Sawal

x=1

/0

Sd1

x=1

/0

x=0

x=0
x=1
S00

x=0

/0

x=1
x=0

S10

/0

x=1

S101

/1
15

x=0

FSM Mealy vs FSM Moore


FSM Mealy
#keadaan

Perubahan output

FSM Moore

lebih kecil
dibandingkan FSM
Moore
Bila terjadi beberapakali perubahan input
pada suatu keadaan,
maka output juga akan
berubah-ubah dalam
suatu keadaan.

#gerbang-logika
-

Terjadi hanya pada saat


FSM masuk ke suatu
keadaan. Perubahan
dalam suatu keadaan
hanya terjadi sekali,
output lebih sinkron.
Pada umumnya lebih
banyak dibandingkan
FSM Mealy.
16

(3) PENGENAL POLA BLOK


Bila runtun input adalah runtun data dengan format N-bit, maka untuk
deteksi pola data N-bit dibutuhkan pengenal pola blok (pola N-bit).

data1
N-bit

data2
N-bit

data3
N-bit

data4
N-bit

clock
Contoh : Pengenal pola blok 3-bit 1 0 1
3-bit

3-bit

3-bit

3-bit

x:

y:

akan terdeteksi pada pengenal pola


17 non-blok

Sawal : Keadaan awal


S0

: Keadaan yg mengingat digit pertama = 0

S0d : Keadaan yg mengingat digit pertama = 0, digit kedua = d


S1

: Keadaan yg mengingat digit pertama = 1

S10 : Keadaan yg mengingat digit pertama = 1, digit kedua = 0


Sawal

/0
x=0
S0

/0

Jalur merah =
jalur terdeteksinya
pola blok 101.

x=1

x=1

S1

/0

x=d

x=0

x=d
S0d

/0

x=0

S10

x=1/y=1

18

Soal :

unlock
x

Harga harga x :

FSM

x=

a, b, c

Rancanglah diagram keadaan untuk pembuka pintu otomatis


berdasarkan kombinasi runtun input x(t-2) x(t-1) x(t) = c b c
Output : unlock = 1 akan membuka pintu.
1, bila kombinasi x(t-2) x(t-1) x(t) = c b c
unlock =
0, untuk kombinasi lainnya
19

(4) Pengenal Kejadian (Event Recognizer)


Mengenali munculnya suatu kejadian dalam runtun inputnya.
x

Pengenal
peristiwa

Contoh :

Himpunan harga input

x = a, b, c

Himpunan harga output

f = 0, 1

Kejadian yang harus dikenali :


Genapnya #kemunculan harga x = a + #kemunculan harga x = b
dalam runtun input
syarat 1
Input terakhir, x = b
syarat 2
1 , bila syarat 1 & syarat 2 terjadi.
f =
20
0. bila kedua syaraatau salah satu t tidak
dpenuhi.

Diskripsi keadaan : Perhatikan berbagai kemungkinan hasil


penjumlahan munculnya input x = a dan x = b
#a + #b
s/d (t 1)

input
x(t)

#a + #b
s/d (t)

output
f(t)

ganjil

syarat 1 & 2 tidak


dipenuhi

ganjil

syarat 1 tidak
dipenuhi

genap

syarat 2 tidak
dipenuhi

genap

syarat 2 tidak
dipenuhi

genap

syarat 1 & 2
dipenuhi

ganjil

syarat 1 & 2 tidak


dipenuhi

genap

ganjil

21

Keadaan

Diskripsi

Sa

Keadaan awal, FSM siap menerima input pertama.

S0

Ingatan : (#a + #b) sampai dengan t-1 berjumlah genap.

S1

Ingatan : (#a + #b) sampai dengan t-1 berjumlah ganjil.

Sa

a atau b

a atau b
S0

a
b/f

S1

22

(5) PEMBANGKIT POLA


Pembangkit pola menghasilkan runtun output dengan pola
tertentu.
a. Pembangkit pola pola non-periodis.
Pembangkitan satu pola dipicu oleh input x = 1.
x: 1
0
y: -

0
t

b. Pembangkit pola pola periodis.


Pembangkitan satu pola dipicu oleh input x = 1 yang hanya
diberikan sekali
x: 1
0
y: -

0
t

23

(a)

start
Sa

start

S1/

S2/

A
d
start

start

S4/
O

S3/
L

start

(b)

Sa

start

S1/

S2/

A
d
d

S4/
O

S3/
24L

(6) PENJUMLAH SERIAL n BIT


n
A
B

Bilangan yang dijumlahkan

n
Penjumlah
Paralel

Sum

A = xn xn-1 xn-2 . . . x0

Carry

B = yn yn-1 yn-2 . . . Y0
clock

xn xn-1 xn-2 . . . x0
yn yn-1 yn-2 . . . y0

Penjumlah
Serial

Sum
Carry

Penjumlahan per pasangan bit input dilakukan dalam satu


keadaan (satu periode clock) dibutuhkan n periode clock.
clock

xi
yi

Penjumlah
Serial

Sumi
carryi
25

Sum(t) = x(t) + y(t) + carry(t-1)


input saat ini

output carry sebelumnya


* Perlu keadaan yg mengingat carry
sebelumnya.
input(t)

output(t)

Carry(t-1)

x(t)

y(t)

Carry(t)

Sum(t)

26

0
1

Keadaan

Deskripsi

S0

Keadaan dengan ingatan carry(t-1) = 0

S1

Keadaan dengan ingatan carry(t-1) = 1

x(t) y(t) / carry(t) sum(t)


00 / 01
01 / 01 ,
00 / 00 ,
10 / 01.

S0

01 / 10 ,
10 / 10 ,
11 / 11.

S1
11 / 10

27

(7) PENGENDALI

Dalam aplikasinya sebagai pengendali, FSM akan


membangkitkan sinyal sinyal pengendali.

Direkomendasikan menggunakan FSM tipe Moore.

c0

FSM

c1
cN

start

clock

Bag. yg
dikendalikan
(datapath)

sinyal kendali

28

Contoh : Sebuah FSM digunakan untuk mengendalikan vending


machine yang menyediakan ,
1. Teh
2. Kopi

Rp 500,Rp 1000,-

Uang yang dapat diterima : Rp 500,-an dan Rp 1000,-an.


Langkah-langkah pembelian : Pembeli
1. Menekan tombol start.
2. Memasukkan kepingan uang satu persatu,
3. Menekan tombol pilihan TEH atau KOPI.
- Bila uang yang dimasukkan mencukupi, Vending machine akan
mengeluarkan minuman (bila stock ada).
Bila stock kosong, uang yg sudah dimasukkan akan dikeluarkan.
- Bila uang yg dimasukkan tidak cukup, vending machine akan
memuntahkan uang yang sudah terlanjur dimasukkan.
- Bila uangnya berlebih, mesin penjual ini akan memberikan uang
29
kembalian (bila stock uang kembalian ada).

Bila stock uang kembalian tidak ada maka uang yg terlanjur


dimasukkan akan dikeluarkan.
c1

uang

teh
c2

FSM

start

kopi

reset
cN
clock

kosong
kembalian

Bagian Pengendali
{ ci } : sinyal sinyal
kendali

Bagian yg
dikendalikan
30
(datapath)

pilihan

Untuk pengendali vending machine diatas,


1. Identifikasikan komponen2 vending machine yang harus
dikendalikan ( = identifiksi sinyal2 kendali {ci } = identifikasi output
bagian pengendali )
2. Identifikasikan input bagian pengendali.
- start, reset, on/off,...
- nilai uang yang dimasukkan, pilihan,...
- kondisi kondisi internal vending machine ...
3. Diskripsikan keadaan keadaan yang harus dimiliki oleh bagian
pengendali agar vending machine dapat bekerja sesuai spesifikasi
fungsionalnya. Berikan asumsi asumsinya.
4. Gambarkan diagram keadaannya.
31