Perencanaan Rangkaian Urutan Menurut Waktu
Perencanaan Mesin Keadaan Berhingga
Kita lihat lagi model klasik mesin keadaan berhingga atau finite state machine (FSM) pada Gambar 9.1. Elemen penunda dapat diimplementasi dengan flip-flop tuan-hamba dan sinyal sinkronisasi dengan detak. Umumnya, untuk implementasi umpan balik digunakan flip-flop.
Perencanaan Mesin Keadaan Berhingga
Perlu diketahui bahwa kita dapat melabeli flip-flop menurut kemauan kita, asal artinya jelas. Pada Gambar 9.1 posisi masukan Di dan keluaran Qi saling dipertukarkan dari posisi normal yang kita bahas sebelumnya. Misalnya, FSM pencacah sinkron modulo 4 mencacah dari 00 hingga 11 dan berulang lagi.
Perencanaan Mesin Keadaan Berhingga
Diagram blok FSM pencacah ditunjukkan pada Gambar 10.1.
sinkron
Fungsi RESET (logika positif) mengakibatkan nilai keluaran q0q1 adalah 00 jika diaktifkan. Keluaran akan berurutan sesuai nilai pada jalur q0 dan q1 pada waktu yang bersesuaian dengan detak. Setiap nilai baru keluaran muncul, maka nilai umpan balik s0s1 juga berubah.
Perencanaan Mesin Keadaan Berhingga
Kita perhatikan bahwa desain pencacah dapat dilakukan dengan mendaftar semua kemungkinan masukan dan keluaran yang terjadi pada 4 jalur q1q0 dan keadaan s1s0. Berdasarkan daftar tersebut kemudian dibuat rangkaian logika kombinasional yang merupakan implementasi pencacah. Dua flip-flop digunakan untuk mencatat bit keadaan.
Perencanaan Mesin Keadaan Berhingga
Gambar 10.1: Pencacah modulo 4
Perencanaan Mesin Keadaan Berhingga
Bagaimana kita tahu bahwa dibutuhkan 2 bit sebagai pencacat keadaan untuk umpan balik? Kenyataannya adalah bahwa kita tidak tahu dari awal jumlah bit yang dibutuhkan untuk mencatat keadaan, sehingga untuk bahasan berikutnya kita akan melihat pendekatan yang lebih umum dalam perancangan mesin keadaan berhingga.
Perencanaan Mesin Keadaan Berhingga
Untuk pencacah kita dapat mulai dari penyusunan diagram transisi keadaan seperti Gambar 10.2 dengan keadaan A sampai dengan D dan garis berarah menunjukkan transisi. Dalam kasus ini keadaan A untuk nilai pencacah 00, B untuk 01, C untuk 10, dan D untuk 11.
Perencanaan Mesin Keadaan Berhingga
Gambar 10.2: Diagram transisi keadaan pencacah modulo 4
Perencanaan Mesin Keadaan Berhingga
Misalnya, FSM diinisialisasi pada keadaan A. Ada 2 kemungkinan masukan yaitu: 0 dan 1. Jika masukan (RESET) bernilai 0, maka FSM akan berpindah ke keadaan B dan menghasilkan keluaran 01. Jika RESET bernilai 1, FSM tetap pada keadaan A dan menghasilkan keluaran 00.
Perencanaan Mesin Keadaan Berhingga
Mirip dengan ini, jika FSM di keadaan B, akan berpindah ke keadaan C dengan keluaran 10 jika RESET 0, jika tidak akan kembali ke keadaan A dengan keluaran 00. Demikian juga untuk keadaan yang lain, dapat diinterpretasikan dengan cara yang sama. Sekali kita berhasil membuat diagram transisi keadaan, kita dapat menulisnya dalam bentuk tabel keadaan seperti Gambar 10.3.
Perencanaan Mesin Keadaan Berhingga
Keadaan sekarang terlihat di bagian kiri, dan kondisi masukan ada di bagian atas. Isi tabel adalah pasangan keadaan/keluaran berikutnya yang diambil langsung dari diagram transisi keadaan pada Gambar 10.3. Ambil salah satu bari misalnya keadaan sekarang B dan masukan kondisi adalah 0, maka keadaan berikutnya adalah C dan keluaran berikutnya adalah 10.
Perencanaan Mesin Keadaan Berhingga Gambar 10.3: Tabel keadaan untuk pencacah modulo-4
Setelah kita membuat tabel keadaan, kita tentukan nilai biner untuk setiap keadaan. Karena ada 4 keadaan, kita membutuhkan paling tidak 2 bit untuk mengkodekan keadaan menjadi biner secara unik.
Perencanaan Mesin Keadaan Berhingga
Kita tentukan saja pengkodeannya: A = 00, B = 01, C = 10, dan D = 11, dan mengganti setiap label A,B,C, dan D dengan kode keadaannya, seperti pada Gambar 10.4. Dalam praktiknya, penetapan kode keadaan ini akan berpengaruh terhadap bentuk rangkaian akhir, namun secara logika pengkodean ini mengakibatkan hasil akhir yang sama.
Perencanaan Mesin Keadaan Berhingga Gambar 10.4: Tabel keadaan untuk pencacah modulo-4 dengan pengkodeannya
Dari tabel keadaan, dapat dihasilkan tabel kebenaran untuk keadaan berikutnya dan fungsi keluaran seperti pada Gambar 10.5. Subskrip untuk variabel menunjukkan waktu.
keadaan
Perencanaan Mesin Keadaan Berhingga
Keadaan sekarang ditulis dengan st dan keadaan berikutnya ditulis dengan st+1. Biasanya subskrip ini diabaikan dengan pengertian bahwa ruas kanan dari persamaan memuat keadaan sekarang dan ruas kiri memuat keadaan berikutnya.
Perencanaan Mesin Keadaan Berhingga
Perlu dicatat bahwa s0(t+1) = q0(t+1) dan s1(t+1) = q1(t+1), sehingga cukup diimplementasikan s0(t + 1) dan s1(t + 1) saja sedang q0(t + 1) dan q1(t + 1) dapat diambil langsung padanya.
Perencanaan Mesin Keadaan Berhingga
Gambar 10.5: Tabel kebenaran untuk keadaan berikutnya dan fungsi keluaran pencacah modulo-4
Perencanaan Mesin Keadaan Berhingga
Akhirnya, kita implementasikan keadaan berikutnya dan fungsi keluaran dengan menggunakan gerbang logika dan flip-flop D tuan-hamba untuk variabel keadaan seperti pada Gambar 10.6.
Contoh Detektor Urutan
Contoh lain, kita akan merancang mesin yang mengeluarkan nilai 1 saat 2 dari 3 masukan terakhir bernilai 1. Contohnya, masukan dengan 011011100 mengeluarkan hasil urutan 001111010.
urutan dengan
Contoh Detektor Urutan
Ada satu jalur masukan seri dan kita asumsikan bahwa pada awalnya tidak ada masukan. Untuk kasus ini, kita akan menggunakan flipflop D dan MUX 8-ke-1.
Contoh Detektor Urutan
Gambar 10.6: Desain logika untuk pencacah modulo-4
Contoh Detektor Urutan
Kita mulai dengan menyusun diagram transisi keadaan, seperti pada Gambar 10.7. Ada 8 kemungkinan urutan 3 bit yang masuk ke dalam mesin: 000, 001, 010, 011, 100, 101, 110, dan 111. Keadaan A adalah keadaan awal, yang kita asumsikan belum ada data yang masuk. Pada keadaan B dan C baru masuk 1 bit data sehingga keluarannya 0.
Contoh Detektor Urutan
Keadaan D,E, F, dan G paling tidak menerima 2 bit masukan kalau keadaan sebelumnya adalah B atau C. Setelah masuk pada keadaan D,E, F, atau G maka sistem akan berkutat di keadaan ini saja. Keadaan D akan dikunjungi masukan terakhir bernilai 00.
saat
dua
Contoh Detektor Urutan
Keadaan E, F, dan G dikunjungi jika dua masukan terakhir adalah 01, 10, dan 11. Langkah berikutnya adalah membuat tabel keadaan seperti tertera pada Gambar 10.8, yang dituangkan dari diagram transisi keadaan. Selanjutnya, kita akan membuat penetapan kode keadaan seperti Gambar 10.9a.
Contoh Detektor Urutan
Berdasarkan penetapan kode keadaan kita dapat membuat tabel kebenaran untuk keadaan berikutnya dan fungsi keluaran. Lihat Gambar 10.9b. Dua baris terakhir pada tabel berisi keadaan 111, yang dalam praktiknya tidak akan pernah muncul, karena keadaan 111 untuk kasus ini tidak ada.
Contoh Detektor Urutan
Dengan demikian keadaan berikutnya dan keluaran pada 2 baris tersebut tidak perlu diperhatikan, dan ditulis sebagai ’d’ yang berarti don’t care, abaikan saja. Akhirnya, kita susun rangkaiannya seperti Gambar 10.10. Perlu 1 flip-flop untuk setiap variabel keadaan, sehingga seluruhnya perlu 3 flip-flop.
Contoh Detektor Urutan
Ada 3 fungsi keadaan berikutnyadan 1 fungsi keluaran, sehingga kita membutuhkan 4 MUX. Pemilihan s2, s1, dan s0 sebagai pengendali MUX merupakan pilihan begitu saja. Pilihan kombinasi lain juga dapat digunakan.
Contoh Detektor Urutan
Gambar 10.7: Diagram transisi keadaan untuk detektor urutan
Gambar 10.8: Tabel keadaan detektor urutan
Contoh : Pengendali mesin Penjualan
Kita akan merancang pengendali mesin penjualan menggunakan flip-flop dan ’kotak hitam’ yang mewakili PLA seperti pada Gambar 10.11. Mesin penjualan menerima tiga macam koin Rp 100, Rp 200, dan Rp 500.
Contoh : Pengendali mesin Penjualan
Jika nilai yang dimasukkan sama atau lebih besar dari Rp 400, maka mesin akan mengeluarkan barang dagangan, dan mengembalikan uang kelebihan, kemudian menunggu transaksi berikutnya. Kita mulai menyusun diagram keadaan seperti Gambar 10.11.
transisi
Contoh : Pengendali mesin Penjualan
Di keadaan A, belum ada koin yang dimasukkan, sehingga uang yang masuk adalah Rp 0. Jika koin seratusan atau duaratusan dimasukkan maka keadaan akan berubah ke B atau C. Jika koin limaratusan yang dimasukkan maka uang yang masuk sejumlah Rp 500.
Contoh : Pengendali mesin Penjualan
Mesin akan mengeluarkan barang dagangan dan mengeluarkan kembalian koin seratusan, dan keadaan tetap di A. Hal ini ditandai dengan ”L/110” dalam kalang memutar di keadaan A. Dari keadaan B atau C dapat berpindah ke keadaan D. Dari D kembali ke A atau B.
Contoh : Pengendali mesin Penjualan
Gambar 10.9: Penetapan kode keadaan dan tabel kebenaran detektor urutan
Contoh : Pengendali mesin Penjualan
Gambar 10.10: Diagram logika detektor urutan
Contoh : Pengendali mesin Penjualan
Perhatikan saat koin limaratusan dimasukkan pada keadaan D. Mestinya mesin akan mengeluarkan barang dagangan, mengembalikan Rp 400, dan kembali ke A, tetapi menurut diagram tersebut mesin akan mengeluarkan barang, mengembalikan Rp 300, dan menuju ke keadaan B.
Contoh : Pengendali mesin Penjualan
Mesin tetap menahan uang sebesar Rp 100. Dari diagram transisi keadaan dapt disusun tabel keadaan seperti pada Gambar 10.12a. Kemudian dapat ditentukan kode keadaan untuk simbol S, D, dan L dalam bentuk biner, seperti pada Gambar 10.12b. Akhirnya, kita buat diagram rangkaiannya seperti Gambar 4.13a.
Contoh : Pengendali mesin Penjualan
Kode keadaan terdiri atas 2 bit sehingga diperlukan 2 flip-flop D. Empat masukan pada PLA digunakan 2 bit untuk keadaan sekarang dan 2 bit koin x1x0. PLA menghasilkan 5 keluaran untuk 2 bit keadaan berikutnya, bit pengeluaran barang, dan bit kembalian seratusan dan duaratusan.
Contoh : Pengendali mesin Penjualan
Kita asumsikan bahwa pemasukan dianggap masukan dan detak juga.
koin
Rancangan PLA pada Gambar 4.25a, dapat diikuti prosesnya dengan melihat Gambar 4.25b dan 4.25c, yang disusun secara manual. Namun untuk kasus yang kompleks biasanya menggunakan alat bantu komputer.
Contoh : Pengendali mesin Penjualan
Gambar 10.11: Diagram transisi keadaan pengendali mesin penjualan
Contoh : Pengendali mesin Penjualan
Gambar 10.12: (a) Tabel keadaan pengendali mesin penjualan (b) penetapan kode keadaan pengendali mesin penjualan
Contoh : Pengendali mesin Penjualan
Gambar 10.13: Mesin penjualan (a) rangkaian, (b) tabel kebenaran (c) realisasi PLA
Mesin Mealy dan Moore
Keluaran dari rangkaian FSM yang kita bahas sebelumnya sejauh ini ditentukan oleh keadaan sekarang dan masukan. Keadaan dikelola oleh flip-flop picuan tepi surut, maka perubahan keadaan hanya terjadi saat tepi surut pada detak. Apapun perubahan yang terjadi pada masukan tidak mempunyai efek terhadap keadaan selama detak rendah.
Mesin Mealy dan Moore
Masukan langsung menghasilkan keluaran tanpa melewati flip-flop. Dengan demikian perubahan masukan dapat mengakibatkan perubahan keluaran, tanpa memperhatikan detak dalam keadaan rendah atau tinggi.
Mesin Mealy dan Moore
Pada Gambar 10.13, perubahan salah satu masukan x1 atau x0 dapat mengakibatkan perubahan keluaran z2z1z0 tanpa tergantung pada detak. Model seperti ini dinamakan model FSM Mealy.
Mesin Mealy dan Moore
Dalam model Mealy, keluaran berubah segera setelah masukan berubah, sehingga tidak ada tundaan yang diakibatkan oleh detak. Pada model FSM Moore, keluaran menyatu pada bit keadaan, sehingga perubahan keluaran terjadi pada pulsa detak setelah perubahan masukan.
Mesin Mealy dan Moore
Kedua model ini digunakan oleh perancang rangkaian dan pada bagian ini akan kita bahas perbedaannya dengan mengemukakan contoh. Sebagai contoh model FSM Moore adalah pencacah biner 2 bit seperti pada Gambar 10.14. Mesin ini mencacah dari 0 sampai dengan 3 dan berulang dari 0 lagi, mirip dengan pencacah modulo-4.
Mesin Mealy dan Moore
Mesin hanya mencacah jika x = 1, jika tidak mesin akan bertahan pada keadaan sekarang. Perlu diperhatikan bahwa keluaran menyatu pada variabel keadaan, sehingga tidak ada jalur langsung antara masukan dan keluaran yang tidak melewati flip-flop.
Mesin Mealy dan Moore
Model Mealy dianggap lebih berdaya guna daripada model Moore sebab satu detak saja dapat mengakibatkan perubahan keluaran suatu mesin. Perubahan keluaran ini dapat mengubah keluaran mesin lain, jika dihubungkan dengan masukan mesin lain tersebut, demikian seterusnya.
Mesin Mealy dan Moore
Dalam model Moore, perubahan selalu sinkron dengan detak, sehingga perubahan beruntun antar mesin tidak dapat terjadi. Perubahan keluaran suatu mesin mempunyai efek yang kecil terhadap mesin berikutnya pada model Moore. Oleh karena itu, analisis dan pelacakan kesalahan dapat ditelusuri bagian perbagian dengan lebih mudah. Pada praktiknya kedua model ini digunakan.
Mesin Mealy dan Moore
Gambar 10.14: FSM Moore pencacah biner 2 bit
Register
Informasi yang terdiri atas tersimpan dalam flip-flop D.
bit
tunggal
Sejumlah N bit informasi membentuk satu word dengan panjang N-bit dapat disimpan dalam N flip-flop D. Contoh word dengan panjang 4-bit dapat dilihat pada Gambar 10.15. Susunan flip-flop yang digunakan untuk menyimpan data disebut register.
Register
Dalam konfigurasi pada gambar tersebut data masukan Di dimasukkan ke register saat jalur Write dan Enable tinggi, sinkron dengan detak. Isi register dapat dibaca pada keluaran Qi hanya saat jalur Enable tinggi, karena buffer tiga keadaan terputus secara elektronis saat Enable rendah. Kita sederhanakan penggambaran register menjadi seperti Gambar 10.16.
Register
Register geser akan menggeser isi pada setiap flip-flop ke flip-flop sesudahnya, dan menerima masukan pada ujung masukan serta memuntahkan isinya pada ujung keluaran, sehingga memungkinkan untuk disusun secara bersambungan. Perhatikan register geser pada Gambar 10.17. Register dapat digeser ke kiri, digeser ke kanan, menerima masukan secara paralel, atau dibiarkan isinya tetap, semunya sinkron dengan detak.
Register
Fasilitas pemasukan paralel dan pembacaan paralel memungkinkan register geser berfungsi sebagai pengubah serial ke paralel atau pengubah paralel ke serial.
Register
Gambar 10.15: Register 4-bit
Register
Gambar 10.16: Register 4-bit disederhanakan
Pencacah
Pencacah adalah bentuk lain dari register yang keluarannya mempunyai pola dalam rentang bilangan biner tertentu. Gambar 4.30 menunjukkan konfigurasi pencacah modulo 8 dengan pola biner tiap langkah adalah: 000, 001, 010, 011, 100, 101, 110, 111 dan diulang lagi.
Pencacah
Jika pola Qi dengan i = 2 sampai dengan 0 disusun hasilnya adalah 000, 001, ... ,111. Dalam rangkaian tersebut juga ditambahkan jalur RESET tak sinkron, yang akan melakukan pengisian 000 pada pencacah, dan tidak tergantung pada keadaan, jalur detak, maupun jalur EN. Selain flip-flop pada LSB, keadaannya berubah karena keadaan flip-flop tetangganya, tidak sekedar karena detak.
Pencacah
Rangkaian ini mirip dengan Gambar 4.18 tetapi lebih mudah diperluas menjadi ukuran yang lebih besar karena tinggal menghubungkan keluaran dari MSB unit ini ke masukan LSB unit berikutnya.
Pencacah
Gambar 10.17: Register geser
Pencacah
Gambar 10.18: Pencacah modulo 8 Yohanes Suyanto