Praktikum Elektronika II
Modul Praktikum
Mesin Keadaan (State Machine) dengan VHDL
Nama : Abdulhaqi Hamdi
NPM : 2106724050
Rekan Kerja : Muhammad Aliza
Kelompok : 13
Hari : Kamis (A)
Tanggal : 17 November 2022
Modul ke :9
MODUL 9
Mesin Keadaan (State Machine) dengan VHDL
TUJUAN
1. Untuk mempelajari tentang konsep mesin keadaan dan teknik desainnya.
2. Untuk merancang dan membangun mesin keadaan Lampu Lalu Lintas
menggunakan VHDL.
TEORI DASAR
Mesin Keadaan
Dalam percobaan ini, kita akan berurusan dengan sirkuit berurutan. Rangkaian
berurutan adalah rangkaian logis, di mana output tergantung pada nilai sekarang dari
sinyal input serta urutan input masa lalu. Sirkuit berurutan dibagi menjadi dua jenis,
sirkuit berurutan sinkron dan sirkuit berurutan asinkron. Beda keduanya adalah sinkron
menggunakan sinyal clock untuk mengontrol operasinya, sedangkan asinkron tidak
menggunakan sinyal clock. Sirkuit sinkron lebih mudah dirancang dan digunakan
dalam sebagian besar aplikasi praktis.
Sirkuit berurutan sinkron direalisasikan menggunakan logika kombinasional
dan satu atau lebih flip-flop. Struktur umum dari rangkaian semacam itu ditunjukkan
pada Gambar 9.1. Sirkuit ini memiliki satu set input utama, W, dan menghasilkan satu
set output, Z. Nilai-nilai output flip-flop disebut sebagai status, Q, dari rangkaian. Di
bawah kendali sinyal clock, output flip-flop mengubah statusnya sebagaimana
ditentukan oleh logika kombinasional yang diberikan pada input flip-flop ini. Dengan
demikian sirkuit bergerak dari satu keadaan ke keadaan lain. Untuk memastikan bahwa
hanya satu transisi dari satu keadaan ke keadaan lain yang terjadi selama satu siklus
clock, flip-flop harus dari jenis edge-triggered, yaitu dapat dipicu oleh tepi clock positif
(0 hingga 1) atau oleh tepi clock negatif (transisi 1 hingga 0). Disini akan digunakan
istilah tepi clock aktif untuk merujuk ke tepi clock yang menyebabkan perubahan
status.
keadaan ke keadaan lainnya. Cara yang baik untuk memulai adalah dengan memilih
satu keadaan tertentu sebagai keadaan awal; Ini adalah keadaan bahwa sirkuitharus
masuk ketika daya pertama kali dihidupkan atau ketika sinyal reset diterapkan. Sebagai
contoh, mari kita asumsikan bahwa keadaan awal disebut keadaan A. Selama input w
adalah 0, sirkuit tidak perlu melakukan apa-apa, sehingga setiap tepi clock aktif harus
menghasilkan sirkuit yang tersisa di status A. Ketika w menjadi sama dengan 1, mesin
harus mengenali ini, dan pindah ke keadaan yang berbeda, yang akan kita sebut
keadaan B. Transisi ini terjadi pada tepi clock aktif berikutnya setelah w menjadi sama
dengan 1. Dalam keadaan B, seperti dalam keadaan A, rangkaian harus menjaga nilai
output z pada 0, karena belum melihat w = 1 untuk dua siklus clock berturut-turut.
Ketika dalam keadaan B, jika w adalah 0 pada tepi clock aktif berikutnya, sirkuit harus
kembali ke keadaan A. Namun, jika w = 1 ketika dalam keadaan B, rangkaian harus
berubah ke keadaan ketiga, yang disebut keadaan C, dan kemudian harus menghasilkan
output z = 1. Sirkuit harus tetap dalam keadaan C selama w = 1 dan harus terus
mempertahankan z = 1. Ketika w menjadi 0, mesin harus kembali ke keadaan A. Karena
deskripsi sebelumnya menangani semua nilai input yang mungkin jika mesin dapat
temui di berbagai statusnya, kita dapat menyimpulkan bahwa tiga status diperlukan
untuk mengimplementasikan mesin yang diinginkan.
Sekarang kita telah menentukan secara informal kemungkinan transisi antar
keadaan, kita akan menjelaskan prosedur yang lebih formal yang dapat digunakan
untuk merancang sirkuit berurutan yang sesuai. Perilaku sirkuit berurutan dapat
dijelaskan dengan beberapa cara berbeda. Metode yang paling sederhana secara
konseptual adalah dengan menggunakan representasi bergambar dalam bentuk diagram
keadaan, yang merupakan grafik yang menggambarkan keadaan sirkuit sebagai simpul
(lingkaran) dan transisi antar keadaan sebagai busur terarah. Diagram status pada
gambar 9.2 mendefinisikan perilaku yang sesuai dengan spesifikasi kita Menyatakan
A, B, dan C muncul sebagai node dalam diagram. Node A mewakili keadaan awal, dan
juga merupakan keadaan yang akan dicapai sirkuit setelah input w = 0 diterapkan.
Dalam keadaan ini output z harus 0, yang ditunjukkan sebagai A/z = 0 di node. Sirkuit
harus tetap dalam keadaan A selama w = 0, yang ditunjukkan oleh busur dengan label
Universitas Indonesia 2022
4
w = 0 yang berasal dan berakhir pada node ini. Kejadian pertama w = 1 (mengikuti
kondisi w = 0) dicatat dengan berpindah dari keadaan A ke keadaan B. Transisi ini
ditunjukkan pada grafik oleh an yang berasal dari A dan berakhir pada B. Label w = 1
pada busur ini menunjukkan nilai input yang menyebabkan transisi. Dalam keadaan B
output tetap pada 0, yang ditunjukkan sebagai B/z = 0 di node.
SIMULASI
REFERENSI
• “What is a state machine?”, https://www.itemis.com/en/yakindu/state-
machine/documentation/user-guide/overview_what_are_state_machines.
Diakses pada 17 November 2022
• “Penerapan Finite State Machine Pada Perancangan Game”,
https://www.gamelab.id/news/206-penerapan-finite-state-machine-pada-
perancangan-game. Diakses pada 17 November 2022
• “State machine”, https://developer.mozilla.org/en-
US/docs/Glossary/State_machine. Diakses pada 17 November 2022