You are on page 1of 7

MODUL 4 RANGKAIAN LOGIKA SEKUENSIAL

Iskandar Setiadi (13511073) Asisten: Anugerah Firdauzi / 13209109 Tanggal Percobaan: 12/11/2012 EL2195-Praktikum Sistem Digital

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB
Abstrak Pada percobaan-percobaan sebelumnya, kita telah menganalisis rangkaian berbasis logika kombinasional. Pada realita, sistem gerbang logika yang dibangun tidak semuanya dapat ditangani dengan logika kombinasional. Pada percobaan ini, kita akan menganalisis salah satu logika rangkaian yang lain, yaitu rangkaian logika sekuensial. Rangkaian kali ini akan dimodelkan menggunakan Finite State Machine (FSM) dalam sebuah studi kasus. FSM dari studi kasus ini akan diimplementasikan dengan FPGA dan modul VGA driver. Kata kunci: rangkaian logika sekuensial, finite state machine, FPGA, VGA driver. 1. PENDAHULUAN
digunakan dalam studi kasus ini. Ada beberapa pemodelan yang dapat digunakan untuk merepresentasikan logika sekuensial, salah satunya adalah FSM. Selain itu, kita juga akan mengenal implementasi menggunakan modul VGA driver.

2.1

RANGKAIAN SEKUENSIAL

Rangkaian logika sekuensial didefinisikan sebagai tipe rangkaian logika yang tidak hanya berpengaruh pada masukkan logika terbaru, namun juga masukkan-masukkan logika sebelumnya, [4]. Rangkaian logika sekuensial dapat dibagi menjadi dua, yaitu synchronous dan asynchronous. Salah satu aplikasi dari rangkaian logika sekuensial, yaitu counter, yang akan dijelaskan pada bagian berikut.

Implementasi fungsi gerbang logika pada rangkaian dapat dilakukan dengan berbagai cara, salah satunya adalah rangkaian logika sekuensial. Keluaran dari rangkaian logika sekuensial akan bergantung pada memori statenya. Secara sederhana, suatu rangkaian sekuensial dapat bergantung pada state dan masukkan sebelumnya (rangkaian Mealy) atau hanya bergantung pada statenya (rangkaian Moore). Pada percobaan sebelumnya, kita hanya mengimplementasikan rangkaian tanpa memperhatikan logika masukkan sebelumnya (memori state). Pada kenyataannya, banyak aplikasi-aplikasi yang membutuhkan memori state sebelumnya, seperti alarm kebakaran yang digunakan di gedung-gedung perkantoran. Percobaan ini akan mengimplementasikan sebuah studi kasus dari rangkaian sekuensial, yaitu perempatan jalan yang mempunyai 4 buah lampu lalulintas Dua implementasi berbeda akan digunakan, yaitu implementasi desain FSM dengan FPGA maupun implementasi menggunakan modul VGA driver.

2.2

COUNTER

Counter adalah rangkaian logika sekuensial yang menyimpan waktu dari suatu state, dan sering dikaitkan dengan sinyal waktu, [5]. Secara singkat, counter berfungsi sebagai rangkaian yang menghitung secara terurut, seperti 0,1,2,dst. Pada percobaan ini, fungsi kerja dari counter akan disimulasikan menggunakan clockdiv, yang menghitung lamanya waktu dalam satuan nanosekon.

2.3

FINITE STATE MACHINE

Finite state machine adalah sebuah pemodelan komputasi matematika yang digunakan untuk mendesain rangkaian logika sekuensial maupun pemrograman komputer, [6].

2.

STUDI PUSTAKA

Rangkaian gerbang logika dapat dibagi menjadi beberapa bagian, seperti rangkaian logika kombinasional maupun rangkaian logika sekuensial. Salah satu contoh aplikasi dari rangkaian sekuensial adalah counter, yang
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB


Gambar 2-1 Pemodelan Finite State Machine

Monitor LCD FPGA DE-1, catudaya, konektor tambahan kabel, serta

Perhatikan gambar (Gambar 2-1) diatas. Gambar tersebut adalah representasi dari sebuah finite state machine. Saat S1 diberikan logika 1, maka fungsi S1 akan kembali dijalankan, sedangkan saat logika S1 diberikan logika 0, maka fungsi S2 akan dijalankan. Demikian pula saat S2 diberikan logika 1, terlihat bahwa fungsi S2 akan kembali dijalankan, sedangkan saat diberikan logika 0, maka fungsi S1 akan dijalankan.
Tabel 2-1 Simulasi Finite State Machine diatas,[6]

Script VHDL yang telah dipersiapkan sebelumnya

3.2

PROSEDUR PERCOBAAN

Percobaan ini dapat dibagi menjadi 3 bagian, yaitu implementasi desain FSM dengan FPGA, implementasi modul VGA driver, serta menggabungkan desain FSM dengan VGA driver. Pada percobaan pertama, kita akan membuat sebuah rangkaian sekuensial sederhana dari studi kasus lampu lalulintas yang telah dibuat pada tugas pendahuluan sebelumnya. Studi kasus ini menggunakan 2 script VHDL, yaitu lampu.vhd serta clockdiv.vhd. Berikut ini adalah file script lampu.vhd yang kelompok kami digunakan:
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;

Logika S1 1 0

Next Function S1 S2

2.4

MODUL VGA DRIVER

Modul VGA (Video Graphics Array) driver yang digunakan kali ini adalah sebuah modul yang merepresentasikan masukkan logika FPGA kedalam tampilan warna pada layar monitor LCD. Modul ini menerima masukkan port yang ingin dinyalakan, dan mengkonversikan masukkan menjadi warna pada layar.

ENTITY LAMPU is port( darurat CLOCKIN : IN STD_LOGIC; LED : OUT STD_LOGIC_VECTOR (5 downto 0)); END LAMPU; DAYNIGHT : IN STD_LOGIC;

ISDARURAT : IN STD_LOGIC; --Jika

2.5

KOMPILASI FILE VHDL

Pada percobaan-percobaan yang telah kita lakukan, seringkali kita membutuhkan lebih dari satu buah file dalam mensimulasikan suatu rangkaian. Dengan menggunakan ALTERA QUARTUS II 9.0, kita cukup membuat project baru menggunakan create a new project > add files maka ketika kompilasi dijalankan, semua files yang berada dalam proyek tersebut akan terkompilasi. Dengan menggunakan ModelSim, kita cukup mengklik file-file yang ingin kita kompilasi sambil menahan tombol Shift pada keyboard. Selanjutnya kita cukup menekan tombol compile/done, maka semua file VHDL yang ingin kita kompilasi akan ter-compile.

ARCHITECTURE TRAFFICLIGHT OF LAMPU IS

component CLOCKDIV is Memasukkan Clockdiv port(CLK: IN STD_LOGIC; DIVOUT: buffer STD_LOGIC); end component;

TYPE KONDISILAMPU IS (S1, S2, S3, S4, S5, S6); SIGNAL CURRENTKONDISI: KONDISILAMPU; SIGNAL CLOCKASLI : STD_LOGIC; SHARED VARIABLE HITUNG : integer := 0; SHARED VARIABLE DARURATMODE : integer := 0;

3. 3.1

METODOLOGI ALAT PERCOBAAN


Komputer / PC yang telah terinstall program Quartus II 9.0

BEGIN TEMP: CLOCKDIV PORT MAP (CLK => CLOCKIN, DIVOUT => CLOCKASLI); --Menggabungkan Clockdiv PROCESS (CLOCKASLI,ISDARURAT,DAYNIGHT) Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

BEGIN --REPARASI KODE ISDARURAT IF (CLOCKASLI'EVENT) AND (CLOCKASLI = '1') AND (ISDARURAT = '1') THEN IF DARURATMODE = 0 THEN DARURATMODE := 1; HITUNG := 0; END IF; IF (HITUNG < 2) AND (NOT (CURRENTKONDISI = S6)) THEN CURRENTKONDISI <= S5; HITUNG := HITUNG + 1; ELSE CURRENTKONDISI <= S6; HITUNG := 0; END IF; IF (HITUNG < 2) AND (CURRENTKONDISI = S6) THEN CURRENTKONDISI <= S6; HITUNG := HITUNG + 1; ELSE CURRENTKONDISI <= S5; HITUNG := 0; END IF; ELSIF (CLOCKASLI'EVENT) AND (CLOCKASLI = '1') AND (ISDARURAT = '0') THEN IF DARURATMODE = 1 THEN DARURATMODE := 0; CURRENTKONDISI <= S5; END IF; CASE CURRENTKONDISI IS WHEN S1 => = '1')) OR '0')) THEN IF ((HITUNG < 8) AND (DAYNIGHT ((HITUNG < 4) AND (DAYNIGHT = HITUNG + 1; WHEN S5 => IF (HITUNG < 2) THEN HITUNG := HITUNG + 1; CURRENTKONDISI <= S5; ELSE CURRENTKONDISI <= S6; HITUNG := 0; END IF; LED <= "010010"; --Kuning menyala WHEN S4 => IF ((HITUNG < 2) AND (DAYNIGHT = '1')) OR ((HITUNG < 2) AND (DAYNIGHT = '0')) THEN HITUNG := HITUNG + 1; CURRENTKONDISI <= S3; ELSE CURRENTKONDISI <= S4; HITUNG := END IF; LED <= "100001"; --M_US dan H_BT 0; = '1')) OR '0')) THEN CURRENTKONDISI <= S3; HITUNG := 0; END IF; LED <= "010100"; --K_US dan M_BT

WHEN S3 => IF ((HITUNG < 8) AND (DAYNIGHT ((HITUNG < 4) AND (DAYNIGHT = HITUNG := HITUNG + 1;

CURRENTKONDISI <= S4; ELSE CURRENTKONDISI <= S1; HITUNG := 0; END IF; LED <= "100010"; --M_US dan K_BT

HITUNG :=

CURRENTKONDISI <= S1; ELSE CURRENTKONDISI <= S2; HITUNG := END IF; LED <= "001100"; --H_US dan M_BT 0;

WHEN S6 => IF (HITUNG < 2) THEN

WHEN S2 => IF ((HITUNG < 2) AND (DAYNIGHT = '1')) OR ((HITUNG < 2) AND (DAYNIGHT = '0')) THEN HITUNG := HITUNG + 1;

HITUNG :=

HITUNG + 1;

CURRENTKONDISI <= S6; ELSE CURRENTKONDISI <= S1; HITUNG := END IF; 0;

CURRENTKONDISI <= S2; ELSE

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

LED <= "000000"; --Semua lampu mati END CASE; END IF; END PROCESS; END TRAFFICLIGHT; --Created by Iskandar Setiadi

S6 : semua lampu dimatikan Penjelasan lebih lanjut akan dibahas pada bagian hasil dan analisis. Percobaan selanjutnya adalah mengimplementasikan modul VGA driver. Pada percobaan ini, kita akan diberikan modul display top_level_vhd yang akan menghubungkan logika masukkan dengan tampilan pada layar LCD / monitor. Langkah percobaannya sangat mudah, yaitu kita cukup mengkompilasi modul yang diberikan lalu me-load modul tersebut kedalam FPGA. Selanjutnya kita akan menghubungkan FPGA dengan kabel dari LCD. Pada percobaan ketiga, kita akan menggabungkan kedua percobaan diatas, yaitu dengan menghubungkan keluaran finite machine state dengan layar LCD menggunakan modul VGA driver. Modul VGA driver yang digunakan akan kita berikan component lampu yang telah dibuat pada percobaan pertama.

Pada script tersebut, counter waktu yang digunakan adalah komponen clockdiv, yang menerima masukkan (melalui PORT MAP) CLOCKIN, dan mem-buffer keluaran kedalam variabel CLOCKASLI. Kondisi (CLOCKASLI'EVENT) AND (CLOCKASLI = '1') dipenuhi setiap kurang lebih 1 detik, sehingga variabel HITUNG yang digunakan akan bertambah nilainya setiap 1 detik. Selanjutnya, kita membagi rangkaian menjadi dua kemungkinan, yaitu saat mode darurat ditekan ataupun saat mode siang/malam diaktifkan. Saat mode darurat dinyalakan, maka ISDARURAT akan bernilai 1, yang menyebabkan lampu kuning berkedap-kedip. Jika diberi logika 0, maka rangkaian akan bergantung pada mode siang ataupun malam hari.

4.

HASIL DAN ANALISIS

Percobaan ini dibagi menjadi 3 segmen utama, yaitu mengimplementasikan desain FSM pada FPGA, mengimplementasikan modul VGA driver, serta menggabungkan desain FSM dengan VGA driver. Berikut ini adalah hasil serta analisis dari percobaan ini. Percobaan di laboratorium berakhir pada pukul 10.53 dengan menyelesaikan percobaan 4A, 4B, dan 4C dengan sedikit kendala pada mode darurat yang digunakan.

4.1

IMPLEMENTASI DESAIN FSM PADA FPGA

Gambar 3-1 Finite State Machine Percobaan

Pada percobaan ini, kita akan mengimplementasikan studi kasus yang telah kita buat dengan FPGA DE-1 board. Clockdiv yang digunakan diberikan constant div sebesar 25.000.000 untuk rangkaian DE-1 yang memiliki frekuensi 50 MHz. Mengapa div yang diberikan adalah frekuensi dibagi 2? Hal ini dikarenakan pada kode VHDL yang kita gunakan, kita menunggu saat logika CLOCKASLI (DIVOUT pada Clockdiv) memiliki logika 1. Hal ini seperti yang terlihat pada potongan kode (CLOCKASLI'EVENT) AND (CLOCKASLI = '1'). Satu waveform / gelombang yang utuh terdiri dari 1 kali logika 0 dan 1 kali logika 1 saat CLOCKASLIEVENT terjadi. Perhatikan gambar berikut ini:

Gambar 3-1 adalah sketsa kasar dari FSM yang akan kita gunakan dalam studi kasus kali ini (direpresentasikan setiap 1 detik). S1, S2, S3, dan S4 merepresentasikan kondisi saat mode darurat tidak ditekan sedangkan S5, S6 merepresentasikan saat mode darurat ditekan / lampu kuning berkedap-kedip. S1 : Hijau_US dan Merah_BT menyala S2 : Kuning_US dan Merah_BT menyala S3 : Merah_US dan Hijau_BT menyala S4 : Merah_US dan Kuning_BT menyala S5 : Kuning_US dan Kuning_BT menyala

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Gambar 4-1 Keluaran Clockdiv

Pada gambar 4-1 diatas, terlihat bahwa jika kita mengatur constant div sebesar 24, maka satu gelombang penuh akan terjadi pada 48, yang artinya untuk membuat event yang berubah setiap 1 detik, kita perlu mengatur constant div menjadi sekitar 25.000.000, atau setengah dari frekuensi FPGA DE-1 yang digunakan. Konstanta ini sendiri bergantung pada script yang digunakan. Jika kita menghilangkan bagian (CLOCKASLI = '1'),[7], maka kita tidak perlu menggunakan frekuensi dibagi dua diatas. Selain itu, perbedaan selisih antara 48 dengan 49.2 keluaran dikarenakan faktor lain, yaitu worst case delay yang terjadi, seperti yang telah dibahas dalam modul percobaan sebelumnya. Faktor processor FPGA 50 MHz yang tidak murni 50.000.000 proses per detik (adanya tingkat keefektifan board) juga mempengaruhi delay diatas. Clockdiv yang dibahas diatas menjadi komponen masukkan dari script studi kasus yang telah kita buat. Sebelum diimplementasikan pada board FPGA, berikut ini adalah hasil simulasi waveform pada ModelSim (Gambar 4-2):

Gambar 4-3 Simulasi desain pada FPGA DE-1

Gambar diatas menunjukkan SW[2] (mode darurat) pada keadaan logika 0, SW[1] (mode siang/malam) pada keadaan logika 1 yang artinya siang hari tanpa kondisi mode darurat. Salah satu keadaan FSM yang ditampilkan diatas adalah S3, saat Merah_US dan Hijau_BT. Pin Planner yang digunakan pada desain ini adalah: -SW[1] untuk mode siang/malam -SW[2] untuk mode darurat -Keluaran 6 bit pada LEDR (5 downto 0) dengan lampu terkiri merepresentasikan Merah_US dan lampu terkanan merepresentasikan Hijau_BT. Saat SW[1] diberikan logika 1, maka mode siang menyala, dan FSM akan berada diantara state S1, S2, S3, dan S4. Lama rangkaian saat S1 dan S3 adalah 8 detik, sedangkan saat S2 dan S4 adalah 2 detik. Jika SW[1] diberikan logika 0 (mode malam), maka FSM juga akan berada diantara state S1, S2, S3, dan S4. Lama rangkaian saat S1 dan S3 adalah 4 detik, sedangkan saat S2 dan S4 adalah 1 detik. Diluar dua mode tersebut, jika SW[2] / mode darurat dinyalakan (diberi logika 1), maka FSM akan memasuki state S5 dan S6. S5 dan S6 akan bergantian dengan selang waktu 1 detik. Penjabaran dari masing-masing S1 sampai S6 telah dijelaskan pada bagian metodologi, sehingga kejadian dari setiap state dapat dibaca pada bagian tersebut.

Gambar 4-2 Simulasi waveform pada ModelSim

Perhatikan bahwa lampu LED menunjukkan angka 001100 serta 010100, yang artinya lampu Hijau_US & Merah_BT menyala serta Kuning_US & Merah_BT menyala. Langkah selanjutnya adalah melakukan kompilasi pada ALTERA QUARTUS dan memasang Pin Planner pada rancangan desain diatas. Dengan meng-load desain ini pada FPGA, maka didapatkan hasil sebagai contoh berikut (Gambar 4-3) :

4.2

IMPLEMENTASI MODUL VGA DRIVER

Pada percobaan ini, kita mengambil file yang berekstensi .vhd serta .qsf dari modul yang diberikan, lalu membuat sebuah project baru di direktori yang telah kita buat. Hal selanjutnya yang kita lakukan adalah mengkompilasi semua file tersebut dan mengimplementasikannya pada FPGA board
5

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

yang telah disediakan, lalu mengghubungkan VGA keluaran FPGA dengan layar LCD / monitor. Berikut ini adalah contoh tampilan board FPGA (Gambar 4-4) dan hasil tampilan di layar monitor (Gambar 4-5):

H_BT <= SW(5) ;

Dari uraian diatas, maka kita dapat menyimpulkan bahwa simulasi lampu lalu lintas dengan script yang telah kita buat mungkin untuk diimplementasikan, yang akan dibahas pada bagian selanjutnya.

4.3

MENGGABUNGKAN DESAIN FSM DENGAN VGA DRIVER

Percobaan ini menggabungkan desain lampu lalulintas yang telah kita buat dengan modul VGA driver yang disediakan pada percobaan 4.2 diatas. Pada file project sebelumnya, kita cukup menambahkan file clockdiv.vhd dan lampu.vhd yang telah kita buat kedalam project tersebut. Pada potongan script, terdapat komentar berikut ini:
--Rambu : Lampu port map (CLOCK_50,SW(0),SW(1),SW(2),M_US,K_US,H_US,M_B T,K_BT,H_BT);

Gambar 4-4 SW[5] dan SW[0] Dinyalakan

Hal yang perlu kita lakukan adalah menambahkan entity dari lampu.vhd kita kedalam component pada file top_level_vhd tersebut. Potongan komentar diatas menunjukkan bahwa kita cukup menghubungkan CLOCK_50 dengan masukkan Clock (dalam hal ini CLOCKIN), dan melakukan sedikit modifikasi SW(0) dan SW(1) menjadi variabel DAYNIGHT, serta SW(2) menjadi ISDARURAT pada rancangan desain lampu yang telah dibuat diatas.
Gambar 4-5 Hasil Tampilan pada Layar LCD

Pada gambar diatas, terlihat bahwa masingmasing komponen FPGA merepresentasikan suatu kondisi lampu lalu lintas, dengan: -SW[0] merepresentasikan Merah_US -SW[1] merepresentasikan Kuning_US -SW[2] merepresentasikan Hijau_US -SW[3] merepresentasikan Merah_BT -SW[4] merepresentasikan Kuning_BT -SW[5] merepresentasikan Hijau_BT Gambar diatas menunjukkan kondisi saat SW[0] dan SW[5] diberikan logika 1 secara bersamaan. Hal ini dapat dilihat dari script top_level_vhd.vhd berikut:
M_US <= SW(0) ; K_US <= SW(1) ; H_US <= SW(2) ; M_BT <= SW(3) ; K_BT <= SW(4) ;

M_US, K_US, H_US, M_BT, K_BT, serta H_BT merepresentasikan LED (5 downto 0) yang telah dibuat diatas. Jika semua hal diatas telah dilakukan, kita cukup melakukan kompilasi dan meng-load project diatas kedalam FPGA board yang disediakan.
ENTITY top_level_vhd PORT( CLOCK_50 SW DOWNTO 0 ); VGA_R DOWNTO 0 ); VGA_G DOWNTO 0 ); VGA_B DOWNTO 0 ); VGA_HS VGA_VS VGA_CLK VGA_BLANK GPIO_0 DOWNTO 0 ); : IN STD_LOGIC; : IN STD_LOGIC_VECTOR( 9 : OUT STD_LOGIC_VECTOR( 5 : OUT STD_LOGIC_VECTOR( 5 : OUT STD_LOGIC_VECTOR( 5 : OUT STD_LOGIC; : OUT STD_LOGIC; : OUT STD_LOGIC; : OUT STD_LOGIC; : OUT STD_LOGIC_VECTOR( 35 IS

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

LEDR DOWNTO 0 )); END top_level_vhd; --

: OUT STD_LOGIC_VECTOR( 9

5.

KESIMPULAN

Rambu : TRAFFICLIGHT_VHD_2 port map (SW(1),SW(0),CLOCK_50, LED_US (5 downto 0));

Potongan kode top_level_vhd diatas adalah kode akhir yang digunakan dalam menggabungkan percobaan 4A dengan 4B. Berikut ini adalah salah satu FSM state yang ditampilkan oleh layar LCD (Gambar 4-6):

Rangkaian logika sekuensial adalah rangkaian logika yang bergantung pada memori state, seperti pada studi kasus diatas. Counter yang digunakan berfungsi sebagai penghitung jeda waktu (satuan detik) dari lamanya jeda waktu lampu lalu lintas yang digunakan. Implementasi yang digunakan diatas menggunakan Finite State Machine, yaitu suatu metode pemodelan (dalam hal ini rangkaian Mealy) dari desain rangkaian logika sekuensial. Dalam mengimplementasikan rangkaian logika sekuensial percobaan ini, kita menggunakan dua metode implementasi, yaitu dengan implementasi langsung FSM ke FPGA DE-1 board, maupun merepresentasikan hasil keluaran ke layar LCD menggunakan modul VGA driver.

DAFTAR PUSTAKA [1] [2]


Gambar 4-6 Implementasi FSM pada Layar LCD

Brian Holdsworth and Clive Woods, Digital Logic Design Fourth Edition, N.wnes, 2002 R.H. Katz, Contemporary Logic Design Second Edition, Pearson Prentince-Hall, NJ, 2005 Stephen Brown and Zvonko Vranesic, Fundamentals of Digital Logic with VHDL Design Third Edition, McGraw-Hill, San Francisco, 2009 http://en.wikipedia.org/wiki/Sequential_logi c , 13 November 2012, pukul 20:40:15 http://en.wikipedia.org/wiki/Counter , 13 November 2012, pukul 20:48:44 http://en.wikipedia.org/wiki/Finite_state_m achine , 13 November 2012, pukul 20:54:21 http://vhdlguru.blogspot.com/2010/03/digit al-clock-in-vhdl.html , 13 November 2012, pukul 23:58:01 http://labdasar.ee.itb.ac.id/lab/EL2195/pen dukung%20praktikum/de1_usermanual_v101 7.pdf, 14 November 2012, pukul 00:01:10

[3]

Jika pada percobaan sebelumnya (4B), kita perlu memberikan masukkan secara manual untuk setiap lampu (dengan menyalakan SW[0] dan SW[5]), pada percobaan ini sinyal diberikan secara automatic oleh desain rangkaian FSM dari studi kasus yang telah kita buat (menyala bergantigantian sesuai state yang telah didefinisikan), dengan kita mengatur mode siang (SW[1] = 1), mode malam (SW[1] = 0), dan mode darurat (SW[0] = 0) saja. Gambar 4-6 diatas adalah salah satu representasi FSM state S3 dengan SW[1] = 0 dan SW[0] = 0. Kita ambil contoh kasus masukkan, yaitu saat SW[1] = 0, SW[2] = 0, dan CLOCK_50 diset CLOCKIN (mode malam tidak darurat). 4 detik pertama tampilan layar menunjukkan Hijau_US dan Merah_BT (S1) 1 detik selanjutnya tampilan layar menunjukkan Kuning_US dan Merah_BT (S2) 4 detik selanjutnya tampilan layar menunjukkan Merah_US dan Hijau_BT (S3) 1 detik selanjutnya tampilan layar menunjukkan Merah_US dan Kuning_BT (S4) Lalu tampilan pertama kembali ditampilkan (kembali ke state S1)

[4] [5] [6] [7]

[8]

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

You might also like