Anda di halaman 1dari 15

Perancangan Sistem Digital Modul Pertemuan 14 Analisa dan Sintesa Rangkaian Sekuensial Disusun oleh : Setiyo Budiyanto, ST.

MT

Pada modul ini akan dibahas mengenai analisa dan sintesa rangkaian sekuensial. Proses analisa dan sintesa rangkaian sekuensial ini dilakukan dalam beberapa tahap.

Analisa Rangkaian Sekuensial Untuk menganalisis rangkaian sekuensial diperlukan: State table (tabel state) menunjukkan input, output, dan perubahan state pada rangkaian sekuensial. State diagram (diagram state) merupakan alternatif cara untuk menunjukkan informasi yang sama.

Gambar 1 berikut ini adalah rangkaian sekuensial dengan 2 buah JK flip-flop. Pada rangkaian ini terdapat 1 buah input, X dan 1 buah output, Z. Nilai flip-flop (Q1Q0) adalah dari state, atau memori rangkaian. Output flip-flop pun kembali ke gerbang sebelah kiri. Hal ini sesuai dengan diagram umum rangkaian sekuensial pada gambar 2.

Gambar 1 Contoh Rangkaian Sekuensial

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Inputs

Combinational circuit Memory Q1


Q0

Outputs

Gambar 2 Diagram Umum Rangkaian Sekuensial

Untuk menganalisis rangkaian kombinasional digunakan tabel kebenaran. Sebuah state table merupakan analogi sekuensial dari tabel kebenaran. Dimana

memperlihatkan input dan state saat itu (current state) di sebelah kiri tabel dan output dan state selanjutnya (next state) di sebelah kanan. Untuk rangkaian sekuensial, outputnya tergantung dari input dan juga current state dari flip-flop. Dalam rangka penentuan output, kita pun perlu menentukan keadaan/state flip-flop pada siklus clock selanjutnya. Tabel state dasar untuk rangkaian pada gambar 1 di atas ditunjukkan pada tabel 1 berikut. Ingat bahwa hanya ada 1 input yaitu X dan 1 output Z, dan 2 buah flip-flop Q1Q0. Present state Q1Q0 dan menentukan next state dan output rangkaian. input akan

Tabel 1 Tabel State Dasar untuk Rangkaian Contoh pada Gambar 1


Present State Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 Inputs X 0 1 0 1 0 1 0 1 Next State Q1 Q0 Outputs Z

Menentukan Output Hal yang paling mudah untuk dilakukan adalah menentukan output. Output rangkaian sekuensial pada contoh ini tergantung dari current state Q0 dan Q1 dan input. Dari diagram pada gambar 1, kita dapat melihat bahwa output pada waktu tertentu (current time) : Z = Q1Q0X.(1)

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Dengan demikian tabel statenya menjadi seperti tabel 2 berikut. Tabel 2 Tabel State untuk Rangkaian Contoh pada Gambar 1 Setelah Ditentukan Output
Present State Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 Inputs X 0 1 0 1 0 1 0 1 Next State Q1 Q0 Outputs Z 0 0 0 0 0 0 0 1

Menentukan State Selanjutnya (Next State) Menentukan next state lebih sulit dibandingkan menentukan output. Untuk mendapatkannya kita harus mengetahui bagaimana flip-flop berubah. Terdapat beberapa langkah proses yang harus dilakukan. Langkah 1: Tentukan persamaan Boolean dari input flip-flop, yaitu bagaimana input (mis: J & K) untuk flip-flop tergantung pada current state dan input . Langkah 2: Gunakan persamaan ini untuk menentukan nilai aktual dari input flip-flop untuk setiap kombinasi yang memungkinkan dari present state dan input, yaitu mengisi tabel state (dengan kolom tengah baru). Langkah 3: Gunakan tabel karakteristik atau persamaan flip-flop untuk menentukan Next state, berdasarkan pada nilai input flip-flop dan present state.

Langkah 1: Menentukan Persamaan Input Flip-flop Dari gambar 1 di atas dapat ditentukan persamaan input flip-flop adalah: J1 = X Q0(2) K1 = X + Q0..(3) J0 = X + Q1..(4) K0 = X..(5) Tiap JK flip-flop mempunyai 2 buah input, J dan K. (D dan T flip-flop memiliki 1 input).

Langkah 2: Menentukan Nilai Input Flip-flop Dengan persamaan 2 s/d 5 di atas, kita dapat membuat tabel yang menunjukkan nilai J1, K1, J0 dan K0 untuk kombinasi yang berbeda dari present state Q1Q0 dan input X (dapat dilhat pada tabel 3).

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Tabel 3 Tabel Input Flip-flop untuk Rangkaian pada Gambar 1


Present State Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 Inputs X 0 1 0 1 0 1 0 1 J1 0 0 1 0 0 0 1 0 Flip-flop Inputs K1 J0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 K0 1 0 1 0 1 0 1 0

Langkah 3 : Menentukan State Selanjutnya (Next State) Terakhir, gunakan tabel atau persamaan karakteristik JK flip-flop untuk menentukan state selanjutnya (next state) untuk setiap flip-flop, berdasarkan pada present state dan input.

Persamaan karakteristik umum JK flip-flop adalah: Q(t+1) = KQ(t) + JQ(t)..(6) Dalam rangkaian contoh, kita menggunakan 2 JK flip-flop, sehingga kita harus mengaplikasikan persamaan ini untuk keduanya: Q1(t+1) = K1Q1(t) + J1Q1(t)...(7) Q0(t+1) = K0Q0(t) + J0Q0(t)...(8)

Selain dengan cara di atas kita pun dapat menentukan next state untuk setiap kombinasi input/current state secara langsung dari tabel karakteristik. karakteristik JK fli-flop ditunjukkan pada tabel 4 di bawah ini. Tabel

Tabel 4 Tabel Karakteristik JK Flip-flop


J 0 0 1 1 K 0 1 0 1 Q(t+1) Q(t) 0 1 Q(t) Operation No change Reset Set Complement

Dengan demikian akan didapatkan nilai state selanjutnya (next state) untuk Q1 dan Q0, seperti yang ditunjukkan pada tabel 5 berikut.

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Tabel 5 Tabel untuk Menentukan Next State untuk Rangkaian pada Gambar 1
Present State Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 Inputs X 0 1 0 1 0 1 0 1 J1 0 0 1 0 0 0 1 0 FF Inputs K1 J0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 K0 1 0 1 0 1 0 1 0 Next State Q1 Q0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1

Mendapatkan Langsung Kolom pada Tabel State Tabel dimulai dengan Present State dan Input. Present State dan Input akan menghasilkan input flip-flop (FF Input). Present State dan FF Input menghasilkan Next State, berdasarkan pada tabel karakteristik flip-flop. Present State dan Input menghasilkan Output.

Kita hanya mempedulikan FF Input untuk memperoleh Next State. Catatan: Output terjadi pada siklus saat ini dan Next State pada siklus selanjutnya. Dengan demikian akan diperoleh tabel state lengkap untuk rangkaian contoh di atas seperti yang ditunjukkan pada tabel 6.

Tabel 6 Tabel State Lengkap untuk Rangkaian Contoh pada Gambar 1

Present State Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

Inputs X 0 1 0 1 0 1 0 1

J1 0 0 1 0 0 0 1 0

FF Inputs K1 J0 K0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0

Next State Q1 Q0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1

Outputs Z 0 0 0 0 0 0 0 1

Membuat Diagram State Kita dapat merepresentasikan tabel state dalam bentuk grafik dengan sebuah diagram state. Diagram ini tergantung pada tabel state rangkaian contoh di atas

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

(tabel 7). Dengan demikian akan dihasilkan diagram state seperti pada gambar 3 berikut. Tabel 7 Tabel State untuk Rangkaian Contoh pada Gambar 1
Present State Inputs Next State Outputs Q1 Q0 X Q1 Q0 Z 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1

input A 00 0/0 D 11

output 0/0 1/0 1/1 0/0 1/0 B 01 1/0 10 0/0 C

state
Gambar 3 Diagram State untuk Rangkaian Contoh pada Gambar 1

Periksa selalu ukuran dari diagram state . Jika terdapat n flip-flop, akan ada 2n node dalam diagram. Jika terdapat m input, maka tiap node akan memiliki 2m panah keluar dari setiap state. Dalam contoh ini, rangkaian memiliki 2 buah flip-flop dengan demikian memiliki 4 buah state atau node. Rangkaian in hanya memiliki 1 buah input, sehingga setiap node memiliki 2 panah keluar.

Sintesa Rangkaian Sekuensial Proses sintesa kebalikan dari proses analisa:

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Pertama kita buat tabel dan diagram state untuk menunjukkan komputasi. Kemudian kita buat rangkaian sekuensialnya.

Berikut ini merupakan prosedur sintesa rangkaian sekuensial : Langkah 1: Buat tabel state berdasarkan pernyataan masalah (problem statement). Tabel harus memperlihatkan present state, input, next state dan output. Dapat juga lebih mudah dibuat diagram state terlebih dahulu kemudian dikonversikan dalam bentuk tabel. Langkah 2: Menetapkan kode biner untuk state pada tabel state. Jika terdapat n state, kode biner memiliki sekurangnya log2 n digit, dan rangkaiannya akan memiliki sekurangnya log2 n flip-flop. Langkah 3: Untuk setiap flip-flop dan setiap baris pada tabel state, tentukan nilai input flip-flop yang diperlukan untuk menghasilkan next state dari present state. Disini kita dapat menggunakan tabel eksitasi flip-flop. Langkah 4: Tentukan persamaan sederhana dari input dan output flip-flop. Langkah 5: Buat rangkaiannya!

Sebagai contoh, kita akan merancang rangkaian Sequence Recognizer. Sequence recognizer adalah jenis rangkaian sekuensial yang mencari pola bit khusus pada inputnya. Rangkaian ini hanya memiliki satu input, X. Satu bit input disediakan pada setiap siklus clock. Sebagai contoh, diperlukan 20 siklus untuk membaca input 20-bit. Merupakan cara yang mudah untuk memasukan input sekuensial yang panjang. Terdapat 1 buah output, Z, dimana akan bernilai 1 jika didapatkan pola yang diinginkan. Contoh: rangkaian mendeteksi pola bit 1001: Input: 11100110100100110

Output: 00000100000100100 Disini, satu bit input dan output muncul tiap siklus clock. Dengan demikian memerlukan rangkaian sekuensial karena rangkaian harus mengigat input dari siklus clock sebelumnya, untuk mengetahui apakah ada pola bit yang cocok atau tidak.

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Langkah 1: Membuat Tabel State Hal terpenting yang harus dipahami adalah bagaimana state digunakan secara tepat untuk memecahkan masalah yang diberikan. Buat tabel state berdasarkan pernyataan masalah. Tabel harus

memperlihatkan present state, input, next state dan output. Terkadang lebih mudah untuk membuat diagram state terlebih dahulu kemudian dikonversikan dalam bentuk tabel.

Ini merupakan langkah yang paling sulit. Setelah kita dapatkan tabel state, prosedur perancangan selanjutnya adalah sama untuk semua rangkaian sekuensial.

Menentukan State dan Diagram State Dasar State apa yang dibutuhkan untuk sequence recognizer? Input dari siklus clock sebelumnya harus diingat. Contoh: jika input sebelumnya adalah 100 dan input saat ini (current input) adalah 1, maka outputnya harus bernilai 1. Secara umum, kita harus mengingat kemunculan dari bagian pola yang diinginkan- dalam kasus ini, 1, 10, dan 100. Dimulai dengan diagram state dasar (label input/output) pada gambar 4 dengan keterangan state pada tabel 8.

1/0

0/0

0/0

Gambar 4 Daigram State Dasar Rangkaian Sequence Recognizer

Tabel 8 Keterangan State


State A B C D Artinya Belum ada pola yang diinginkan (1001) yang telah dimasukkan. Telah terlihat bit pertama (1) dari pola yang diinginkan. Telah terlihat 2 bit pertama (10) dari pola yang diinginkan. Telah terlihat 3 bit pertama (100) dari pola yang diinginkan.

Mendeteksi Kemunculan Overlapping Apa yang terjadi jika kita ada dalam state D (input ketiga terakhir 100), dan nilai current input adalah 1? Outputnya harus 1, karena kita menemukan pola yang diinginkan. Namun demikian, nilai 1 terakhir ini harus dapat menjadi nilai awal bagi

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

kemunculan pola selanjutnya. Sebagai contoh, 1001001 berisi 2 kemunculan 1001. Untuk mendeteksi kemunculan pola yang overlapping, nilai next state harus B. Perhatikan panah pada diagram state (gambar 5) berikut.

1/0

0/0

C 1/1

0/0

Gambar 5 Diagram State Mendeteksi Pola Overlapping

Melengkapi Diagram State Hal selanjutnya adalah melengkapi diagram state dengan mengisi panah yang lain. Ingat bahwa diperlukan 2 buah panah keluar untuk setiap node, untuk mengatasi kemungkinan dari X=0 dan X=1. Dengan demikian akan didapatkan diagram state pada gambar 6 di bawah ini.

1/0 A 0/0 1/0 B

0/0

0/0 1/0

C 1/1

0/0

Gambar 6 Diagram State Rangkaian Sequence Recognizer

Membuat Tabel State dari Diagram State Terakhir buat tabel state dari diagram state di atas. Ingat bagaimana hubungan panah diagram state dengan baris pada tabel state. Perhatikan gambar 7 berikut. Dengan demikian akan dihasilkan tabel state seperti yang ditunjukkan pada tabel 9 di bawah ini.
present state input/output next state

Gambar 7 Hubungan Panah Diagram State dengan Baris Tabel State

Tabel 9 Tabel State Rangkaian Sequence Recognizer

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Present State A A B B C C D D

Input 0 1 0 1 0 1 0 1

Next State A B C B D B A B

Output 0 0 0 0 0 0 0 1

Langkah 2: Menetapkan Kode Biner untuk State Kita memiliki 4 state ABCD, dengan demikian kita memerlukan sekurangnya 2 buah flip-flop Q1Q0. Hal yang mudah untuk dilakukan adalah merepresentasikan state A dengan Q1Q0 = 00, B dengan 01, C dengan 10, dan D dengan 11. Penetapan state ini mempengaruhi kompleksitas dari rangkaian. Isi kolom present state pada tabel di atas diganti dengan nilai kode biner untuk state A, B, C dan D. Sehingga akan diperoleh tabel state sebagai berikut (tabel 10). Tabel 10 Tabel State Rangkaian Sequence Recognizer dengan Present State dalam Kode Biner
Present State Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 Input X 0 1 0 1 0 1 0 1 Next State Q1 Q0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1 Output Z 0 0 0 0 0 0 0 1

Langkah 3: Menentukan Nilai Input Flip-flop Selanjutnya, kita harus mengetahui bagaimana membuat flip-flop berubah dari present state ke dalam next state yang diinginkan. Hal ini tergantung dari jenis flipflop yang kita gunakan. Jika kita gunakan JK Flip-flop. Setiap flip-flip Qi, lihat nilai present dan next state, dan tentukan berapa seharusnya input Ji dan Ki untuk membuat state berubah.

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Lihat kembali karakteristik tabel JK (tabel 4). Jika present state dari JK flip-flop adalah 0 dan kita menginginkan nilai next state menjadi 1, maka terdapat 2 pilihan untuk input JK: Kita dapat menggunakan JK=10, untuk secara eksplisit membuat set flip-flop next state menjadi 1. Kita pun dapat menggunakan JK=11, untuk melakukan complement pada current state 0. Jadi untuk mengubah dari 0 menjadi 1, kita harus men-set J=1, tetapi K dapat bernilai 0 atau 1. Dengan cara yang sama, transisi state yang mungkin lainnya dapat dilakukan dalam dua cara yang berbeda.

Tabel eksitasi (excitation table) menunjukan berapa nilai input flip-flop input yang diperlukan untuk membuat perubahan state yang diinginkan. Informasinya sama seperti yang diberikan dalam tabel karakteristik tetapi dipresentasikan dalam arah kebalikan. Tabel eksitasi JK flip-flop ditunjukkan pada tabel 11.

Tabel 11 Tabel eksitasi JK flip-flop

Q(t) 0 0 1 1

Q(t+1) 0 1 0 1

J 0 1 x x

K x x 1 0

Operation No change/reset Set/complement Reset/complement No change/set

Kita dapat menggunakan tabel eksitasi JK di atas untuk mencari nilai yang benar untuk setiap input flip-flop, berdasarkan present dan next state. Semua nilai input JK flip-flop dimasukkan pada kolom tabel 12 berikut.

12

10

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Tabel 12 Tabel State Rangkaian Sequence Recognizer dengan Input JK Flip-flop

Present State Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

Input X 0 1 0 1 0 1 0 1

Next State Q1 Q0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1

Flip flop inputs J1 K1 J0 K0 0 0 1 0 x x x x x x x x 0 1 1 1 0 1 x x 1 1 x x x x 1 0 x x 1 0

Output Z 0 0 0 0 0 0 0 1

Langkah 4: Menentukan Persamaan Input dan Output Flip-flop Selanjutnya, kita dapat membuat K-map dan menentukan persamaan untuk keempat input flip-flop, dan juga output Z. Persamaan ini adalah dalam kondisi present state dan input. Keuntungan dari menggunakan JK flip-flop adalah terdapat banyak kondisi yang diabaikan (dont care), dengan demikian persamaannya lebih sederhana. Sehingga akan didapatkan : J1 = X Q0..(9) K1 = X + Q0.(10) J0 = X + Q1..(11) K0 = X...(12) Z = Q1Q0X..(13) Langkah 5: Buat Rangkaian Terakhir, kita gunakan persamaan yang sederhana tersebut untuk membangun rangkaian lengkap (gambar 8).

Gambar 8 Diagram Rangkaian Sequence Recognizer dengan JK Flip-flop

12

11

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Diagram Pewaktuan (Timing Diagram) Gambar 9 berikut ini adalah contoh diagram pewaktuan dari sequence recognizer. Flip-flop Q1Q0 mulai pada kondisi awal, 00. Pada tiga tepi clock positif pertama, X bernilai 1, 0, dan 0. Input ini

menyebabkan Q1Q0 untuk berubah, sehingga setelah tepi ketiga nilai Q1Q0 = 11. Kemudian ketika X=1, Z menjadi 1, berarti ditemukan 1001.

Output Z tidak perlu berubah pada tepi positif clock, melainkan dapat berubah ketika X berubah karena Z = Q1Q0X.

1 CLK Q1 Q0 X Z

Gambar 9 Diagram Pewaktuan Dari Sequence Recognizer

Membuat Rangkaian dengan D Flip-flop Bagaimana jika kita menggunakan D flip-flop untuk membangun rangkaian sequence recognizer/detector ? Kita telah mendapatkan tabel state dan menentukan kode biner untuk state. Dengan demikian kita mulai dari langkah 3, menentukan nilai input flipflop. D flip-flop hanya memiliki satu input, sehingga hanya diperlukan 2 kolom pada tabel untuk D1 dan D0.

Tabel eksitasi D Flip-flop ditunjukkan pada tabel 13 di bawah ini. Dari tabel eksitasi ini akan dihasilkan tabel 14 sebagai berikut. Tabel 13 Tabel Eksitasi D Flip-flop
Q(t) 0 0 1 1 Q(t+1) 0 1 0 1 D 0 1 0 1 Operation Reset Set Reset Set

12

12

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Tabel 14 Tabel State Rangkaian Sequence Recognizer dengan Input D Flip-flop

Present State Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

Input X 0 1 0 1 0 1 0 1

Next State Q1 Q0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1

Flip flop inputs D1 D0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1

Output Z 0 0 0 0 0 0 0 1

Langkah selanjutnya (langkah 4) adalah menentukan persamaan input D flip-flop. Dari K-Map didapatkan: D1 = Q1 Q0 X + Q1 Q0 X..(14) D0 = X + Q1 Q0.(15) Z = Q1 Q0 X(16)

Selanjutnya adalah membuat rangkaian berdasarkan persamaan input dan output diatas (langkah 5). Diagram rangkaian Sequence Recognizer dengan D flip-flop ditunjukkan pada gambar 10.

Gambar 10 Diagram rangkaian Sequence Recognizer dengan D flip-flop

Perbandingan Realisasi Flip-flop JK flip-flop baik digunakan karena terdapat banyak nilai yan diabaikan (dont care) dalam input flip-flop, yang membuat rangkaian akan menjadi lebih sederhana.

12

13

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

D flip-flop memiliki keuntungan yaitu kita tidak perlu men-set input flip-flop sama sekali karena nilai Q(t+1) = D. Meskipun demikain, persamaan input D biasanya lebih kompleks dibandingkan dengan persamaan input JK.

Pada parakteknya, D flip-flop lebih sering digunakan. Hanya terdapat 1 buah input untuk setiap flip-flop. Tidak ada tabel eksitasi yang perlu dikhawatirkan. D flip-flop dapat diimplementasikan dengan perangkat keras yang lebih sedikit dibandingkan dengan JK flip-flop.

12

14

Perancangan Sistem Digital Setiyo Budiyanto ST, MT

Pusat Pengembangan Bahan Ajar Universitas Mercu Buana

Anda mungkin juga menyukai