Anda di halaman 1dari 17

Laporan Pendahuluan

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

Laboratorium Elektronika – Departemen Fisika


Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Indonesia
2022
1

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.

Universitas Indonesia 2022


2

Logika kombinasional yang memberikan sinyal input ke flip-flop memperoleh


inputnya dari dua sumber: input utama, W, dan output saat ini dari flip-flop, Q. Dengan
demikian perubahan keadaan tergantung pada keadaan saat ini (Q) dan nilai-nilai input
utama (W).

Gambar 9.1. Bentuk umum dari rangkaian berurutan.


Gambar 9.1 menunjukkan bahwa output dari rangkaian berurutan dihasilkan
oleh rangkaian kombinasi lain, sehingga output adalah fungsi dari keadaan flip-flop
saat ini, dan input utama. Namun, terkadang output hanya tergantung pada keadaan
saat ini. Dengan demikian koneksi yang ditunjukkan dalam warna hitam pada gambar
mungkin ada atau mungkin tidak ada. Untuk membedakan antara dua kemungkinan
ini, adalah kebiasaan untuk mengatakan bahwa sirkuit berurutan yang outputnya hanya
bergantung pada keadaan sirkuit adalah tipe Moore, sedangkan yang outputnya
bergantung pada keadaan saat ini dan input utama adalah tipe Mealy.
Sirkuit berurutan juga disebut finite state machines (FSM), yang merupakan
nama yang lebih formal yang sering ditemukan dalam literatur teknis. Nama ini berasal
dari fakta bahwa perilaku fungsional dari sirkuit ini dapat direpresentasikan
menggunakan jumlah keadaan yang terbatas. Dalam bab ini kita akan sering
menggunakan istilah mesin keadaan terbatas, atau hanya mesin, ketika mengacu pada
sirkuit berurutan.

Tabel 9.1. Urutan sinyal input dan output.


Langkah pertama dalam merancang mesin keadaan terbatas adalah menentukan
berapa banyak keadaan yang dibutuhkan dan transisi mana yang mungkindari satu

Universitas Indonesia 2022


3

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.

Gambar 9.2. Diagram status dari rangkaian berurutan sederhana


Ketika sirkuit dalam keadaan B, itu akan berubah menjadi keadaan C jika w
masih sama dengan 1 di tepi clock aktif berikutnya. Dalam keadaan C output z menjadi
sama dengan 1. Jika w tetap pada 1 selama siklus clock berikutnya, sirkuit akan tetap
dalam keadaan C mempertahankan z = 1. Namun, jika w menjadi 0 ketika sirkuit berada
di status B atau di status C, tepi clock aktif berikutnya akan menyebabkan transisi ke
status A terjadi.
Pada Gambar 9.2, kami menunjukkan bahwa input Reset digunakan untuk
memaksa sirkuit ke status A, yang dimungkinkan terlepas dari keadaan sirkuit yang
terjadi. Kita dapat memperlakukan Reset hanya sebagai input lain ke sirkuit, dan
menunjukkan transisi dari setiap status ke status awal A di bawah kendali input Reset.
Keadaan dalam mesin keadaan terbatas diimplementasikan menggunakan flipflops.
Karena flip-flop biasanya memiliki kemampuan reset, kita dapat mengasumsikan
bahwa input Reset digunakan untuk menghapus semua flip-flop ke 0 dengan
menggunakan kemampuan ini. Kami akan menunjukkan ini seperti yang ditunjukkan
pada Gambar 9.2 untuk menjaga diagram sesederhana mungkin.
TEORI TAMBAHAN

Universitas Indonesia 2022


5

Mesin keadaan adalah abstraksi matematika yang digunakan untuk merancang


algoritma. Mesin keadaan membaca serangkaian input dan perubahan ke status yang
berbeda berdasarkan input tersebut. Mesin keadaan terdiri dari sejumlah keadaan yang
terbatas dan oleh karena itu juga disebut finite state machines (FSM). Berdasarkan
keadaan saat ini dan masukan yang diberikan, mesin melakukan transisi keadaan dan
menghasilkan keluaran.
Blok bangunan dasar dari mesin keadaan adalah status dan transisi. Keadaan
adalah situasi sistem yang bergantung pada input sebelumnya dan menyebabkan reaksi
pada input berikutnya. Satu keadaan ditandai sebagai keadaan awal; disinilah eksekusi
mesin dimulai. Transisi status menentukan untuk input mana status diubah dari satu ke
yang lain. Bergantung pada jenis mesin status, status atau transisi menghasilkan output.
Salah satu penerapan FSM yaitu dalam merancang game. FSM juga dapat kita
gunakan untuk menyederhanakan kode program AI kita, terutama untuk karakter-
karakter pendukung yang bergerak secara konstan pada kondisi tertentu. Contohnya
pada game Mario. FSM digunakan untuk menentukan kondisi mario. Jika mario
mendapatkan jamur, maka akan menjadi mario besar. Apabila mario besar
mendapatkan bunga, maka akan menjadi mario penembak api.
ALAT DAN BAHAN
1. ZYBO Zynq7000
2. Micro-USB Power USB Cable
3. PC/Laptop dengan VivadoTM
4. Resistors 200-220ohm
5. 2 LED Hijau, 2 LED Kuning, 3 LED Merah, dan 1 LED Putih
PROSEDUR PERCOBAAN
Mesin Keadaan
1. Gambar dan rancang grafik status untuk Pengontrol Lampu Lalu Lintas, lalu ubah
grafik status menjadi Bagan Mesin Status. Transisi status akan secara otomatis
terjadi setelah waktu tunda yang ditentukan.
2. Buat proyek baru, berikan deskripsi tentang definisi, entitas, dan port modul yang
akan digunakan.
Universitas Indonesia 2022
6

3. Rancang logika Pengontrol Lampu Lalu Lintas menggunakan VHDL. Tetapkan


definisi I/O dan constraint:
• input di tombol0 dan tombol1 untuk rst (reset) dan mode (mode pemeliharaan);
dan
• dan PMOD untuk semua LED yang akan digunakan (hijau, kuning, merah, dan
putih)
4. Uraikan desainnya. Verifikasi skema dengan inisial logika desain.
5. Simulasikan desain. Periksa simulasi perilaku Pola untuk:
• mode = 0 dan reset = 0;
• mode = 1 dan reset = 0; dan
• reset = 1.
6. Bangun sirkuit menggunakan LED, resistor, dan breadboard yang disediakan.
Hubungkan sirkuit ke PMOD menggunakan kabel, sesuai dengan batasannya.
7. Sintesis, implementasikan, dan program perangkat. Catat status output untuk setiap
kemungkinan input dalam tabel 9.4, tabel 9.5, dan tabel 9.6.

Gambar 9.3. Diagram lampu lalu lintas.


Tabel 9.2. Urutan lampu lalu lintas.

Universitas Indonesia 2022


7

Tabel 9.3. Waktu urutan lampu lalu lintas.

Tabel 9.4. Hasil eksperimen untuk mode = 0 dan reset = 0.

Tabel 9.5. Hasil eksperimen untuk mode = 1, reset = 0.

Tabel 9.6. Hasil eksperimen untuk reset = 1.

Universitas Indonesia 2022


8

Universitas Indonesia 2022


9

SIMULASI

Universitas Indonesia 2022


10

Universitas Indonesia 2022


11

Universitas Indonesia 2022


12

Universitas Indonesia 2022


13

Universitas Indonesia 2022


14

Hasil eksperimen untuk mode = 0 dan reset = 0.

Output t0t1t2t3...t15 (spasi tiap 4-bit)


GA 1111 1111 1111 1111
YA 0000 0000 0000 0000
RA 0000 0000 0000 0000
GB 0000 0000 0000 0000
YB 0000 0000 0000 0000
RB 1111 1111 1111 1111
WP 0000 0000 0000 0000
RP 1111 1111 1111 1111
Hasil eksperimen untuk mode = 1, reset = 0.

Universitas Indonesia 2022


15

Output t0t1t2t3...t15 (spasi tiap 4-bit)


GA 1111 1111 1111 1111
YA 0000 0000 0000 0000
RA 0000 0000 0000 0000
GB 0000 0000 0000 0000
YB 0000 0000 0000 0000
RB 1111 1111 1111 1111
WP 0000 0000 0000 0000
RP 1111 1111 1111 1111

Hasil eksperimen untuk reset = 1.

Universitas Indonesia 2022


16

Output t0t1t2t3...t15 (spasi tiap 4-bit)


GA 1111 1111 1111 1111
YA 0000 0000 0000 0000
RA 0000 0000 0000 0000
GB 0000 0000 0000 0000
YB 0000 0000 0000 0000
RB 1111 1111 1111 1111
WP 0000 0000 0000 0000
RP 1111 1111 1111 1111

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

Universitas Indonesia 2022

Anda mungkin juga menyukai