Tee217 Bab II.2 Sintesis FSM

49
PERANCANGAN SISTEM DIGITAL II.2 SINTESIS FSM 1 Bab II Pendekatan Mesin Keadaan Reduksi Keadaan. Penyandian level biner Flipflop dan Eksitasi keadaan Tabel Keadaan level Biner. Analisis FSM

description

xxxxx

Transcript of Tee217 Bab II.2 Sintesis FSM

PERANCANGAN SISTEM DIGITAL

PERANCANGAN SISTEM DIGITALII.2 SINTESIS FSM

1Bab II Pendekatan Mesin Keadaan

Reduksi Keadaan. Penyandian level biner Flipflop dan Eksitasi keadaanTabel Keadaan level Biner. Analisis FSM2Spesifikasi MasalahDiskripsi Keadaan,Input & OutputDiagram/Tabel Keadaanlevel simbolisReduksi keadaanPenyandian BinerPemilihan elemen pengingat keadaanTabel Keadaan & Eksitasi level binerPenurunan : Fungsi output, fungsi eksitasikonseptualisasiBab II.1Bab II.2REDUKSI KEADAAN Reduksi dilakukan dengan mengidentifikasikan keadaan-keadaan ekivalen, mengelompokkan keadaan-keadaan ekivalen, merepresentasikan tiap kelompok dengan satu keadaan.Reduksi akan menghasilkan FSM yang secara fungsional sama tetapi dengan jumlah keadaan lebih kecil.Manfaat : Dapat (tidak selalu) mengurangi #flipflop dan, #gerbang logika di bagian kombinatorialnya. 3N KeadaanM KeadaanDiskripsi awal : Reduksi M < NDiskripsi akhir :4Diskripsi awal :Identifikasi & Pengelompokan keadaan-keadaan ekivalen :Sa , Sb , Sc , Sd , Se , Sf , Sg , Sh Sa , Sh , Sc , Sb , Sd , Sf , Se , Sg Reduksi keadaan-keadaan ekivalen :S1 , S2 , S3 8 keadaan 3 keadaanContoh :5Q0 D0clkQ1 D1clkQ2 D2clkQ0 D0clkQ1 D1clkBag.KombinatorialBag.Kombinatorialclockclock3 eksitasi2 eksitasi3 FF2 FF8 keadaan3 keadaanContoh : Proses reduksi dilakukan secara iteratif.Dari Tabel Keadaan, identifikasikan keadaan-keadaan ekivalen-1 , yaitu keadaan-keadaan saat ini S(t) yang menghasilkan output Y(t) yang sama untuk input X(t) yang sama Kelompokkan keadaan-keadaan tsb dalam kelompok ekivalen-1 :6Iterasi 1 : A , C, E 1 , B, D, F 1Hasil iterasi 1: S(t)S(t+1), Y(t) X(t) = a X(t) = bX(t) = cAE , 0D , 1B , 0BF , 0D , 0A , 1CE , 0B , 1D , 0DF , 0B , 0C , 1EC , 0F , 1F , 0FB , 0C , 0F , 1Untuk tiap kelompok ekivalen-1 (yg terbentuk pada iterasi 1) dicari keadaan keadaan ekivalen-2, yaitu keadaan-keadaan yang untuk input sama akan menghasilkan keadaan berikutnya S(t+1) yg sama atau yg sekelompok di kelompok ekivalen-1. Kelompokkan keadaan-keadaan tsb kedalam kelompok ekivalen-2.7Iterasi 2 : S(t)S(t+1)X(t) = a X(t) = b X(t) = c AEDBCEBDECFF(a) ( A, C, E )1(A, C, E)2 = (A, C, E)1 Untuk input yg sama, keadaan A, C atau E menghasilkan S(t+1) yg sama atau yg sekelom-pok dalam kelompok ekivalen-1 ,sehinggasekelompoksekelompoksekelompok8S(t)S(t+1)X(t) = a X(t) = b X(t)= c BFDAD FBCFBCFHasil iterasi-2 : ( A, C, E )2 , ( B, D )2 , dan ( F )2(b) ( B, D, F )1( B, D, F )1 (B, D)2 dan (F)2Untuk input yg sama, keadaan B dan D menghasilkan S(t+1) yg sama atau yg sekelompok dalam kelompok ekivalen-1 ,sedangkan keadaan F tidak. Dengan demikian ( B, D, F)1 pecah menjadi 2 kelompok ekivalen-2. 3 kelompok ekivalen-2B dan D sekelompok ek-1A dan C sekelompok ek-1Iterasi 3 : Untuk tiap kelompok ekivalen-2 , ( A, C, E )2 , ( B, D )2 , dan ( F )2 ,dicari keadaan keadaan ekivalen-3, yaitu keadaan-keadaan yang utk input yg sama menghasilkan S(t+1) sama atau yang sekelompok dalam iterasi 2. 9 S(t) S(t+1)X(t) = a X(t) = b X(t) = c AEDBCEBDECFF( A, C )3 dan ( E )3(a) Kelompok ek-2, ( A, C, E)2B dan D sekelompok ek-110S(t)S(t+1)X(t) = a X(t) = b X(t) = c BFDA D FBCHasil iterasi-3 : ( A, C)3 , ( E )3 , ( B, D )3 dan ( F )3 4 kelompok ek-3 ( B, D )3(b) ( B, D )2B dan D sekelompok ek-2A dan C sekelompok ek-2Iterasi-4 : Dari kelompok2 ekivalen-3 ( A, C)3 , ( E )3 , ( B, D )3 dan ( F )3 , S(t) S(t+1)X(t) = a X(t) = b X(t) = c AEDB CE B DS(t)S(t+1)X(t) = a X(t) = b X(t)= c BFDA D FBC11( A, C)3 ( A, C)4 ( B, D )3 ( B, D )4 Hasil iterasi-4 : ( A, C)4 , ( B, D )4 , ( E )4 dan ( F )4 Iterasi dihentikan karena hasil iterasi-4 = hasil iterasi- 3 12Kelompoke ekivalen : ( A, C) , ( B, D ) , ( E ) , ( F )

Keadaan tereduksi : S1 S2 S3 S4S(t)S(t+1), Y(t) X(t) = a X(t) = bX(t) = cAE , 0D , 1B , 0CE , 0B , 1D , 0BF , 0D , 0A , 1DF , 0B , 0C , 1EC , 0F , 1F , 0FB , 0C , 0F , 1S(t)S(t+1), Y(t) X(t) = a X(t) = bX(t) = cS1S3 , 0S2 , 1S2 , 0S2S4 , 0S2 , 0S1 , 1S3S1 , 0S4 , 1S4 , 0S4S2 , 0S1 , 0S4 , 113S(t)S(t+1), Y(t) X(t) = a X(t) = bX(t) = cAE , 0D , 1B , 0CE , 0B , 1D , 0BF , 0D , 0A , 1DF , 0B , 0C , 1EC , 0F , 1F , 0FB , 0C , 0F , 1S(t)S(t+1), Y(t) X(t) = a X(t) = bX(t) = cS1S3 , 0S2 , 1S2 , 0S2S4 , 0S2 , 0S1 , 1S3S1 , 0S4 , 1S4 , 0S4S2 , 0S1 , 0S4 , 114ABCDEFa/0b/1c/0a/0b/0c/1a/0b/1c/0a/0b/0c/1a/0b/0c/1a/0b/1c/0Diagram Keadaan sebelum Reduksi :15x ?abcA :y = 1y = 0y = 0E :D :acbx ?acy = 1y = 0by = 1y = 0y = 0x ?B :x ?abcy = 0y = 1y = 0x ?C :aby = 0y = 1y = 0y = 0cF :x ?abcy = 0y = 0y = 1ASM chartsebelum Reduksi :16x ?baS1 :x ?cabS2 :x ?baS3 :x ?cbaS4 :y = 1y = 1y = 0cy = 0y = 0y = 0bcy = 0y = 0y = 1y = 0y = 1y = 0ASM chartsesudah Reduksi :PENYANDIAN KEADAANPenyandian SederhanaM = 4Simbolis Binerx1 x0 Sa 0 0 Sb 0 1 Sc 1 0 Sd 1 1 17Beberapa ragam penyandian keadaan,Penyandian sederhana 2. Penyandian "one shot" 3. Penyandian lokus minimalPenyandian sederhana :Jumlah keadaan = MJumlah variabel-keadaan biner n = log2 M

Sandi : 0 0 0 0 0 1 0 1 0 0 1 1 1 1 118Penyandian SederhanaM = 6Simbolis Binerx2 x1 x0 Sa 0 0 0 Sb0 0 1 Sc0 1 0 Sd0 1 1 Se1 0 0 Sf1 0 1 -1 1 0-1 1 1kombinasi tak-terpakaiJumlah keadaan : M = 6 Kode sederhananya membutuhkanlog2 6 = 3 bit , 3 variabel-keadaan biner,Pengingat keadaannya membutuhkan 3 flipflop.PENYANDIAN ONE-SHOT

Jumlah var. keadaan = jumlah keadaan, n = MSembarang transisi keadaan hanya akan mengakibatkan perubahan pada 2 bit.

(+) Sistem lebih handal (keadaan mal- fungsi mudah terdeteksi) Untai eksitasi lebih sederhana ( - ) Elemen pengingat keadaan (flipflop) lebih banyak #FF = #keadaan.x3 x2 x1 x0Sa0 0 0 1Sb0 0 1 0Sc0 1 0 0 Sd1 0 0 0 19Contoh : untuk M = 4Penyandian lokus minimal meminimalkan jumlah variabel yang berubah pada saat transisi-keadaan meningkatkan kehandalan.Contoh : Sa, Sb, Sc, Sd, Se x1 x0x20 00 1 1 11 00 So - S2 S11- S4 S3-keadaan sandix2 x1 x0 So 0 0 0 S1 0 1 0 S2 0 1 1 S3 1 1 1 S4 1 0 120pemetaan untuk penyandianAlternatif-1Dengan diagram keadaan sbb. dan penyandian alternatif-1 , Penyandian dari pemetaan alternatif-1 S(t) S(t+1)Perubahan variabel keadaanjaraklogika S0 S10 0 0 0 1 01 S0 S20 0 0 0 1 12 S1 S30 1 0 1 1 12 S2 S30 1 1 1 1 11 S3 S41 1 1 1 0 11 S4 S11 0 1 0 1 03Jarak total :1021SoS2S4S3S1Jarak logika = jumlah variabel yg berubah. x1x0 x20 0 0 1 1 11 00 S0 S2 1 S1 S3S4keadaansandix2 x1 x0S0 0 0 0S1 1 0 0S2 0 0 1S3 1 0 1S4 1 1 1S(t) S(t+1)Perubahan variabeljarak S0 S10 0 0 1 0 01 S0 S20 0 0 0 0 11 S1 S31 0 0 1 0 11 S2 S30 0 1 1 0 11 S3 S41 0 1 1 1 11 S4 S11 1 1 1 0 02Jarak total :1022Alternatif-2 :PenyandianJarak total :- Alternatif-2 : 7 Alternatif-1 : 10Penyandian dengan alt.2 lebih baik !PemetaanPrinsip umum pemetaan keadaan : Usahakan agar 1. Keadaan keadaan yang mempunyai Next State sama ditempatkan bersebelahan pada peta (berjarak logika-1). 2. Keadaan keadaan yang merupakan Next State dari sebuah keadaan ditempatkan bersebelahan (pada peta). 23SaSbScSeSd Sa, Sb, Sc dan Se dipetakan bersebelahan. Sd, Sc, dan Se dipetakan bersebelahanSaSbSeScSdIMPLEMENTASI KANONIS FSM SINKRONImplementasi Kanonis (baku) FSM sinkron Bagian pengingat keadaannya terdiri dari beberapa flip-flop (dalam konfigurasi sebagai register paralel-in paralel-out)24Bag.Kombinatorial

FFoFF1FFnInput X(t)Keadaan S(t)Output F(t)Eksitasi E(t)clockPengingat keadaanELEMEN ELEMEN PENGINGATElemen elemen bagian pengingat FSM adalah flipflopTransisi keadaan FSM ditentukan oleh transisi keadaan flipflop-flipflopnya.Keadaan berikutnya sebuah flipflop : 0 atau 1, ditentukan oleh eksitasi pada inputnya Q(t) Input(t) S(t) R(t)Q(t+1) 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 125Flipflop SRS Q

clk

R QQ(t) : Present StateQ(t+1) : Next StateS(t), R(t) : Eksitasi Q(t) Input(t) S(t) R(t)Q(t+1) 0 0 00 0 0 10 0 1 01 0 1 1- 1 0 01 1 0 10 1 1 01 1 1 1-Transisi Eksitasi(t)Q(t) Q(t+1)S(t)R(t)0 0 0 0/10 1 1 01 0 0 11 1 1/0 026Flipflop SRS Q

clk

R Q Dont care dFlipflop JK27 Q(t) Input(t) J(t) K(t)Q(t+1) 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1J Q

clk

K Q28 Q(t) Input(t) J(t) K(t)Q(t+1) 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0J Q

clk

K Q Transisi Eksitasi(t)Q(t) Q(t+1) J K0 0 0 0/1 0 1 1 0/1 1 0 0/1 1 1 1 1/0 0Dont care d berguna dalam minimisasi untai pembangkit eksitasi pada bagian kombinatorial FSM29Flipflop TPresentState Q(t)Present input T(t)NextState Q(t+1) 000 011 101 110T Q

clk

QTransisi Q(t)Q(t+1)Eksitasi(t) T(t)0 000 111 011 10Flipflop DPresentState Q(t)Present input D(t)NextState Q(t+1)000011100111 Transisi Q(t)Q(t+1)Eksitasi(t) D(t)0 000 111 001 1130D Q

clk

Q Q(t+1) = D(t)31S(t)E(t)S(+1)Q2(t)Q1(t)Q0(t)D2(t)D1(t)D0(t)Q2(t+1)Q1(t+1)Q0(t+1)011101101001110110110110???011101???110???011111???101Q0 D0clkQ2 D2clkQ1 D1clkclockS(t)E(t)SINTESIS LEVEL BINERDiagram keadaan Pengenal Pola 10132So SaSbxSc/ yxxxxx x xInput x : 0 atau 1 (1 variabel biner)Output y : 0 atau 1 (1 variabel biner) Keadaan : So, Sa, Sb, Sc. (2 variabel biner untuk penyandian sederhana)Keadaan Sandi Q1 Q0 S0 0 0 Sa 0 1 Sb 1 0 Sc 1 1Penyandian :TABEL KEADAAN BINERPresent State S(t)Pr.input x(t)Pr.output y(t) Eksitasi E(t) Next State S(t+1) Q1(t) Q0(t)J1(t) K1(t)J0(t) K0(t) Q1(t+1) Q0(t+1)S0 0 0 0 0 S0 0 0 0 0 1 0 Sa 0 1Sa 0 1 0 0 Sb 1 0 0 1 1 0 Sa 0 1Sb 1 0 0 0 S0 0 0 1 0 1 0 Sc 1 1Sc 1 1 0 1 S0 0 0 1 1 1 1Sa 0 1??lts34S(t)E(t) S(t+1) Q1(t) Q0(t) J1(t) K1(t) J0(t) K0(t) Q1(t+1) Q0(t+1)S00 0S0 0 00 0Sa 0 1Sa0 1Sb 1 00 1Sa 0 1Sb1 0S0 0 01 0Sc 1 1Sc1 1S0 0 01 1Sa 0 1J0(t)=? K0(t) = ? Utk Q0(t) Q0(t+1)J1(t)=? K1(t) = ? Utk Q1(t) Q1(t+1)Transisi Q0(t) Q0(t + 1) menentukan harga J0(t) K0(t) Transisi Q1(t) Q1(t + 1) menentukan harga J1(t) K1(t)Present State S(t)Pr. input Pr. output Eksitasi E(t)Next State S(t+1) Q1(t) Q0(t) x(t) y(t)J1(t) K1(t)J0(t) K0(t) Q1(t+1) Q0(t+1)S00 00 0 0 d 0 dS00 00 01 0 0 d 1 dSa0 1Sa0 10 0 1 d d 1Sb1 00 11 0 0 d d 0Sa0 1Sb1 00 0 d 1 0 dS00 01 01 0 d 0 1 dSc1 1Sc1 10 1 d 1 d 1S00 01 11 1 d 1 d 0Sa0 135TABEL KEADAAN BINERDari Tabel Keadaan biner diturunkan fungsi fungsi : Output : y(t) = F( S(t), x(t))

Eksitasi : J0(t) = G0 ( S(t), x(t)) K0(t) = H0 ( S(t), x(t)) J1(t) = G1 ( S(t), x(t)) K1(t) = H1( S(t), x(t))

(1) y(t) = Q1 Q0 (2) J0(t) = x K0(t) = x (3) J1(t) = Q0 x K1(t) = x + Q0 36Fungsi fungsi logika penyusun bagian kombinatorial FSM, untuk pengenal pola 1 0 1eksitasi flipflop 0eksitasi flipflop 137Output :y(t) = Q1 Q0 Eksitasi FF0 :J0(t) = xK0(t) = x Eksitasi FF1 : J1(t) = Q0 xK1(t) = x + Q0 Diagram SkematikQ0 J0ClkK0 Q1 J1ClkK1 Q0 xx + Q0 Q1 Q0 x xxyclockContoh sintesis FSMInput : huruf a, b, atau c perlu dua variabel biner untuk menyandikan input, misal x1 dan x2Output : 0 atau 1 perlu satu variabel biner untuk menyandikan output, misal variabel yKeadaan : Sa, S0, dan S1 perlu dua variabel biner untuk menyandikan keadaan38a atau bccSaS0S1a atau bb/1 caPenyandian Input : Output : Keadaan : simbol inputsandi x1 x0a 0 0 b 0 1c 1 0simboloutputSandiy001139SimbolKeadaanSandiQ1 Q0Sa0 0So 0 1S11 1?Misalkan elemen pengingatnya flipflop D : Transisi Q(t)Q(t+1)Eksitasi(t) D(t)0 000 111 001 11S(t)X(t) Y(t)E(t)S(t+1)Q1(t) Q0(t)x1(t) x0(t)y(t)D1(t) D0(t)Q1(t+1) Q0(t+1)Sa0 00 00 1 1 S11 1 0 1 0 1 1S11 1 1 00 0 1S00 1S00 10 00 1 1S11 10 10 1 1S11 11 00 0 1S00 1S11 10 00 0 1S00 10 11 0 1S00 11 00 1 1S11 140Tabel Transisi Keadaan level binernya :Tabel Transisi Keadaan level biner lengkap (termasuk kombinasi yg tidak dipakai) : slide berikutnya Q1(t)Q0(t) x1(t) x0(t) y(t)D1(t) D0(t) Q1(t+1) Q0(t+1) Sa0 00 00 1 1 S11 1 0 1 0 1 1S11 1 1 00 0 1S00 11 1dd ddd dS00 10 00 1 1S11 10 10 1 1S11 11 00 0 1S00 11 1dd ddd d-1 00 0dd ddd d0 1dd ddd d1 0dd ddd d1 1dd ddd dS11 10 00 0 1S00 10 11 0 1S00 11 00 1 1S11 11 1dd ddd d41S(t)Q1(t) Q0(t)x1(t) x0(t) y(t)Sa0 00 000 1 01 001 1dS00 10 000 101 001 1d-1 00 0d0 1d1 0d1 1dS11 10 000 111 001 1d42Misal harga d = 0,maka output :

y (t) = Q1(t) Q0(t) x1(t) x0(t)

y = Q1 Q0 x1 x0Fungsi output :Fungsi logika output : Q1(t)Q0(t)x1(t) x0(t)D1(t) D0(t)Sa0 00 0 1 1 0 1 1 11 0 0 11 1d dS00 10 0 1 10 1 1 11 0 0 11 1d dS?1 00 0d d0 1d d1 0d d1 1d dS11 10 0 0 10 1 0 11 0 1 11 1d d43 Misal harga d = 0, maka eksitasi :

D1(t) = ..?..

D0(t) = ..?..Fungsi Eksitasi :44Output : y = Q1 Q0 x1 x2 Eksitasi : D0 = 1 , D1 = Q1 x1 + Q1 Q0 x1 x2Q0 D0 clk Q1 D1 clk x1

x0y1clockDiagram Skematik :lts45Contoh 3 : Pencacah Modulo-5, dengan flipflop T sebagai elemen pengingat keadaan, dan runtun pencacahan : 000, 001, 010, 011, 100, 000, . . - Himpunan nilai Input x(t) : { 0, 1 } 1 , pencacah dalam mode mencacah x = 0 , pencacah dalam mode tak-mencacah- Himpunan nilai Output z(t) : { 0, 1, 2, 3, 4}- Himpunan Keadaan S(t) : { S0, S1, S2, S3, S4}S0/001S1/101S0/201S0/301S0/401Diagram Keadaanlts46input x 0 0 1 1outputz2 z1 z000 0 010 0 120 1 030 1 141 0 0Penyandian : stateQ2 Q1 Q0S00 0 0S10 0 1S20 1 0S30 1 1Dengan FF T sebagai elemen pengingat keadaannya.Bag.KombinatorialT2 clk

Q2T1 clk

Q1T0 clk

Q0clockxz2 z1 z047S(t)S(t+1)T2(t) T1(t) T0(t)z2(t) z1(t) z0(t)x = 0x = 1x = 0x = 10 0 00 0 00 0 10 0 00 0 10 0 00 0 10 0 10 1 00 0 00 1 10 0 10 1 00 1 00 1 10 0 00 0 10 1 00 1 10 1 11 0 00 0 01 1 10 1 11 0 01 0 00 0 00 0 01 0 01 0 0Tabel Keadaan level binernya :4801100110dddd00ddT0 :Q0 Q1 Q2 x00100010dddd00ddT1 :Q0 Q1 Q2 x00000010dddd01ddT0 :Q0 Q1 Q2 xUntuk kode kode keadaan yang tidak terpakai, output dan eksitasinya kita beri nilai dont care (d) dan harga d kita tentukan untuk mengoptimalkan minimisasi- Fungsi Eksitasi : z0 = Q0 z1 = Q1 z2 = Q2 Fungsi Output : (carilah dengan peta karnaugh !)T0 = x Q2T1 = x Q0T2 = x Q2 + x Q1 Q0 49T0 Q0

clk T1 Q1

clk T2 Q2

clkz2z1z0xQ2Q1Q0Q0Q2clock