Anda di halaman 1dari 7

MODUL 04 RANGKAIAN LOGIKA SEKUENSIAL

Tri Agung Susilo (13214037)


Asisten: Mahedra Drajat A (13212116)
Tanggal Percobaan: 20/11/2015
EL2102-Praktikum Sistem Digital

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB
Abstrak
Percobaan modul 4 ini adalah mengenai implementasi
rangkaian sekuensial ke dalam FPGA dimana yang menjadi
persoalan utama adalah bagaimana merancang sebuah sistem
rangkaian sekuensial yang dapat bekerja sesuai dengan
memori statenya dan nantinya akan diverifikasi dengan
FPGA dan ditampilkan ke monitor melalui vga driver.
Kata kunci: FSM, FPGA, sekuensial
1.

PENDAHULUAN

Sebelum melakukan percobaan modul keempat ini,


praktikan telah melakukan percobaan untuk
rangkaian fungsional serta dasar-dasar yang sudah
ada dalam praktikum system digital. Untuk
melengkapi
pengetahuan
praktikan
maka
dilakukanlah percobaan keempat ini mengenai
rangkaian sekuensial karena pada kehidupan nyata,
malah akan lebih banyak menggunakan rangkaian
digital yang bersifat sekuensial.
Pada percobaan kali ini pula, praktikan merancang
sebuah FSM atau Finite State Machine yang akan
diterapkan pada FPGA berupa pemrograman dari
lampu lalu lintas dalam sebuah persimapngan jalan.
Dari FSM yang dibuat dalam VHDL tersebut,
praktikan mengimplementasikanya dalam FPGA
menggunakan LED maupun VGA yang akan
ditampilkan di layar LCD.

rangkaian sekuensial bergantung pada state dan


bergantung pada masukannya (rangkaian Mealy)
atau hanya bergantung pada statenya (rangkaian
Moore).
Terdapat beberapa model yang digunakan
untuk membantu merancang rangkaian sekuensial.
Salah satunya yang paling banyak digunakan
adalah Finite State Machine (FSM). Dinamakan
FSM karena jumlah state yang mungkin terbatas
dan rangkaian sekuensial bekerja mirip dengan
mesin yang beroperasi dengan urutan state. Level
abstraksi perancangan FSM pun bertingkattingkat.
Pada praktikum kali ini disarankan menggunakan
level abstraksi behavioral. Pada perancangan
dengan level ini, sebelum mengimplementasikan
menggunakan VHDL, praktikan cukup membuat
state diagram atau flow chart transisi statenya.
Pada praktikum kali ini akan dicontohkan cara
membuat FSM dengan menggunakan state
diagram. Komponenkomponen yang harus ada
pada state diagram adalah deklasari input dan
output, definisi state, transisi, dan keluarannya.
Gambar di bawah adalah contoh gambar state
diagram FSM Mealy [1]

Tujuan dari percobaan keempat ini adalah :


1.
2.

3.

2.
2.1

Mendesain sekuensial rangkaian untuk


implementasi didalam FPGA.
Mengenal
dan
memahami
cara
menggunakan hierarki dalam desain
rangkaian
Mengenal
dan
memahami
cara
menggunakan FPGA sebagai prototype
system untuk memverifikasi fungsi
rangkaian.

STUDI PUSTAKA
RANGKAIAN SEKUENSIAL

Perbedaan
mendasar
rangkaian
kombinasional dengan rangkaian sekuensial
adalah ada tidaknya memori statenya. Keluaran

2.2

FSM (FINITE STATE MACHINE)

Finite State Machines (FSM) adalah sebuah


metodologi perancangan sistem kontrol yang
menggambarkan tingkah laku atau prinsip kerja
sistem dengan menggunakan tiga hal berikut: State
(Keadaan), Event (kejadian) dan Action (aksi). [2]
Finite state automata adalah mesin abstrak
berupa sistem model matematika dengan masukan

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

dan keluaran diskrit yang dapat mengenali bahasa


paling sederhana (bahasa reguler) dan dapat
diimplementasikan secara nyata.
Finite State Automata (FSA) adalah model
matematika yang dapat menerima input dan
mengeluarkan output yang memiliki state yang
berhingga banyaknya dan dapat berpindah dari
satu state ke state lainnya berdasarkan input dan
fungsi transisi. Finite state automata tidak memiliki
tempat penyimpanan/memory, hanya bisa
mengingat state terkini. [3]

digunakan khusus untuk pembelajaran universitas


ataupun laboratorium di bidan gpengolahan sinyal
digital.

3.

METODOLOGI

Percobaan 4A : Implementasi Desain FSM


pada FPGA
Buat script desain FSM untuk sebuah
lampu lalu lintas, masukkan pada
direktori kerja yang baru

2.3

FPGA (ALTERA DE1)

Field-Programmable
Gate
Array(
FPGA) adalah
komponen
elektronika
dan
semikonduktor yang mempunyai komponen
gerbang terprogram (programmable logic) dan
sambungan terprogram. Komponen gerbang
terprogram yang dimiliki meliputi jenis gerbang
logikabiasa (AND, OR, XOR, NOT) maupun jenis
fungsi matematis dan kombinatorik yang lebih
kompleks (decoder, adder, subtractor, multiplier,
dll). Blok-blok komponen di dalam FPGA bisa juga
mengandung elemen memori (register) mulai
dari flip-flop sampai pada RAM (Random Access
Memory).

Jalankan program pada altera quartus

Implementasikan desain tersebut pada


LED FPGA dengan output LED

Percobaan 4B : Implementasi Modul VGA


Driver

Buat direktori kerja baru, buat project baru


sesuai dengan percobaan pada modul 4 ini

Implementasikan desain VGA Driver yang dapat


di-download dengan masukan dari FPGA
selebar 6 bit dengan menggunakan pin planner
yang ada

FPGA jenis Altera StratixIVGX


Pengertian terprogram (programmable) dalam
FPGA
adalah
mirip
dengan
interkoneksi saklardalam breadboard yang
bisa
diubah oleh pembuat desain. Dalam FPGA,
interkoneksi ini bisa diprogram kembali oleh
pengguna maupun pendesain di dalam lab atau
lapangan(field). Oleh karena itu jajaran gerbang
logika
(Gate
Array)
ini
disebut
fieldprogrammable. Jenis gerbang logika yang bisa
diprogram meliputi semua gerbang dasar untuk
memenuhi kebutuhan yang manapun. [4]

Lakukan beberapa kali perubahan posisi switch


pada board FPGA untuk melihat efek
perubahan pada LCD

Percobaan 4C : Menggabungkan Desain


FSM dengan VGA Driver

Sementara untuk percobaan kali ini, FPGA


yang akan digunakan adalah ALTERA DE1 yang
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Hubungkan keluaran FSM lampu lalu lintas


dengan masukan modul VGA

Lakukan compile dan download gabungan


desain FSM dan VGA kedalam board FPGA.
Amati hasilnya dalam layar LCD

4.

HASIL DAN ANALISIS

4.1 MEMBUAT RANGKAIAN SEDERHANA


Pada percobaan kali ini, praktikan mendesain
sebuah hardware untuk menjalankan lampu lalu
lintas. Menurut metode pembuatan rangkaian
sekuensial maka dapat diperoleh tabel state
diagram sebagai berikut :
State

M_US

K_US

H_US

M_BT

K_BT

H_BT

S0

S1

S2

S3

S4

S5

FSM yang dibuat meminta masukkan 3 buah yaitu


MODEHARI, MODEDARURAT, dan clockin
dengan spesifikasi seperti yang telah dijelaskan
pada tugas pendahuluan. Saat siang hari
(MODEHARI = 1), maka S0 akan berlangsung
selama 8 detik dilanjutkan dengan S1 selama 2
detik, S2 selama 8 detik, S3 selama 2 detik dan
kapanpun bila input darurat = 1, state akan
langsung menuju state 4 lalu ke state 5 dan akan
kembali ke state 4 apabila darurat = 1 dan bila
darurat = 0, akan menuju state 4, state 5, state 4,
dan state 5 (berkelap-kelip selama 4 detik) baru
kembali ke posisi awal (S0). Bila input clockin = 1
maka apapun statenya akan dikembalikan ke S0.
Jika DN = 0 atau saat malam hari, lampu merah
hanya menyala 5 detik, lampu kuning 1 detik serta
lampu hijau 4 detik, sama seperti ketentuan saat
siang hari. Setiap state akan mengikuti alur : s0 ->
s1 -> s2 -> s3 -> s0 dan seterusnya dan hanya akan
menuju state 4 -> state 5 apabila darurat = 1 yang
berlaku baik saat siang ataupun malam hari.

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;
ENTITY FSM IS
PORT (
clockin
: IN STD_LOGIC;
MODEDARURAT : IN STD_LOGIC;
MODEHARI
: IN STD_LOGIC;
M_US
: OUT STD_LOGIC;
K_US
: OUT STD_LOGIC;
H_US
: OUT STD_LOGIC;
M_BT
: OUT STD_LOGIC;
K_BT
: OUT STD_LOGIC;
H_BT
: OUT STD_LOGIC
);
END FSM;
ARCHITECTURE behavioral OF FSM IS
type executionState IS (s1, s2, s3, s4, s5,
s6);
SIGNAL currentstate : executionState;
SIGNAL counter : integer;
SIGNAL CLOCK : BIT;
COMPONENT CLOCKDIV IS
PORT ( CLK : IN STD_LOGIC;
DIVOUT : buffer BIT);
END COMPONENT;
BEGIN
Second : clockdiv PORT MAP (CLK => clockin,
DIVOUT => CLOCK);
PROCESS (CLOCK, MODEDARURAT, MODEHARI)
Variable counter : integer :=0;
BEGIN
IF (CLOCK'EVENT AND CLOCK='1') THEN
CASE MODEDARURAT IS
WHEN '0' =>
currentstate <= s1;
CASE MODEHARI IS
WHEN '0' =>
CASE currentstate IS
WHEN s1 =>
IF (counter < 5) THEN
M_US <= '0';
K_US <= '0';
H_US <= '1';
M_BT <= '1';
K_BT <= '0';
H_BT <= '0';
counter := counter + 1;
currentstate <= s1;
ELSE
currentstate <= s2;
counter := 0;
END IF;
WHEN s2 =>
IF (counter < 2) THEN
M_US <= '0';
K_US <= '1';
H_US <= '0';
M_BT <= '1';
K_BT <= '0';
H_BT <= '0';
counter := counter + 1;
currentstate <= s2;
ELSE
currentstate <= s3;
counter := 0;
END IF;

Untuk membuat FSM lampu lalu lintas tersebut,


praktikan menggunakan kode VHDL sebagai
berikut :
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

WHEN s3 =>
IF (counter < 5) THEN
M_US <= '1';
K_US <= '0';
H_US <= '0';
M_BT <= '0';
K_BT <= '0';
H_BT <= '1';
counter := counter + 1;
currentstate <= s3;
ELSE
currentstate <= s4;
counter := 0;
END IF;
WHEN s4 =>
IF (counter < 2) THEN
M_US <= '1';
K_US <= '0';
H_US <= '0';
M_BT <= '0';
K_BT <= '1';
H_BT <= '0';
counter := counter + 1;
currentstate <= s4;
ELSE
currentstate <= s1;
counter := 0;
END IF;
WHEN s5 => null;
WHEN s6 =>null;
END CASE;
WHEN '1' =>
CASE currentstate IS
WHEN s1 =>
IF (counter < 9) THEN
M_US <= '0';
K_US <= '0';
H_US <= '1';
M_BT <= '1';
K_BT <= '0';
H_BT <= '0';
counter := counter + 1;
currentstate <= s1;
ELSE
currentstate <= s2;
counter := 0;
END IF;
WHEN s2 =>
IF (counter < 3) THEN
M_US <= '0';
K_US <= '1';
H_US <= '0';
M_BT <= '1';
K_BT <= '0';
H_BT <= '0';
counter := counter + 1;
currentstate <= s2;
ELSE
currentstate <= s3;
counter := 0;
END IF;
WHEN s3 =>
IF (counter < 9) THEN
M_US <= '1';
K_US <= '0';
H_US <= '0';
M_BT <= '0';
K_BT <= '0';
H_BT <= '1';
counter := counter + 1;
currentstate <= s3;

ELSE
currentstate <= s4;
counter := 0;
END IF;
WHEN s4 =>
IF (counter < 3) THEN
M_US <= '1';
K_US <= '0';
H_US <= '0';
M_BT <= '0';
K_BT <= '1';
H_BT <= '0';
counter := counter + 1;
currentstate <= s4;
ELSE
currentstate <= s1;
counter := 0;
END IF;
WHEN s5 => null;
WHEN s6 =>null;
END CASE;
END CASE;
WHEN '1' =>
currentstate <= s5;
IF (counter < 5) THEN
CASE currentstate IS
WHEN s5 =>
M_US <= '0';
K_US <= '1';
H_US <= '0';
M_BT <= '0';
K_BT <= '1';
H_BT <= '0';
counter := counter + 1;
currentstate <= s6;
WHEN s6 =>
M_US <= '0';
K_US <= '0';
H_US <= '0';
M_BT <= '0';
K_BT <= '0';
H_BT <= '0';
counter := counter + 1;
currentstate <= s5;
WHEN s1 => null;
WHEN s2 => null;
WHEN s3 => null;
WHEN s4 => null;
END CASE;
ELSE
currentstate <= s1;
END IF;
counter := 0;
END CASE;
END IF;
END PROCESS;
END behavioral;

Dengan kode VHDL yang digunaakan di atas,


praktikan berhasil membuat skema dari FSM
mengenai
lampu
lintas
dan
berhasil
mensimulasikannya
dengan
baik
seseuai
spesifikasi namun ada sedikit masalh di
periodenya atau pengulangan waktu. Dalam
simulator tool atau simulasi baik di Quartus
maupun di modelsim, orde waktu yang
bdigunakan adalah berkisar di nano-picosecond
sementara yang dibutuhkan untuk membuat
sebuah lampu lalu lintas adalah perhitungan
waktu di orde detik. Maka dari itu, praktikan
menggunakan
CLOCKDIV
yang
tinggal
digunakan dan dimasukkan ke dalam VHDL
sebagai component dan menjadi input bagi
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

rangkaian FSM sendiri. Code CLOCKDIV yang


digunakan
adalah
sebagai
berikut
:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
entity CLOCKDIV is port(
CLK: IN std_logic;
DIVOUT: buffer std_logic);
end CLOCKDIV;
architecture behavioural of CLOCKDIV is
begin
PROCESS(CLK)
variable count: integer:=0;
constant div: integer:=25000000;
begin
if CLK'event and CLK='1' then
if(count<div) then
count:=count+1;
if(DIVOUT='0') then
DIVOUT<='0';
elsif(DIVOUT='1') then
DIVOUT<='1';
end if;
else
if(DIVOUT='0') then
DIVOUT<='1';
elsif(DIVOUT='1') then
DIVOUT<='0';
end if;
count:=0;
end if;
end if;
end process;
end behavioural;

Dari VHDL CLOCKDIV yang telah disediakan di


atas, terdapat bagian yang diberi highlight. Bagian
itu merupakan bagian yang paling penting dalam
VHDL kali ini karena angka ini merupakan
pembagi frekuensi agar frekuensi dapat menjadi
seperti yang diinginkan karnea fungsi CLOCKDIV
sendiri adalah untuk memperlambat rangkaian
menjadi 1/25000000 dari input CLOCK yang
masuk ke dalam CLOCKDIV yang dalam hal ini
adalah clock yang berasal dari FPGA sebesar
25MHz. Dengan menggunakan konstanta sebesar
1/25000000 maka dapat diperoleh clock yang
menjadi masukkan bagi traffic merupakan clock
yang berubah setiap 1 detik.

4.2 IMPLEMENTASI MODUL VGA DRIVER


Pada bagian kedua modul keempat ini, praktikan
mencoba mengimplementasikan VGA Driver yang
dapat didownload, mengcomplie file-file yang ada,
mendownloadnya pada FPGA dengan cara biasa
(Programmer -> Start) lalu melihat efek serta
perubahan pada LCD yang menjadi output pada
FPGA tersebut. Kode VHDL yang digunakan
adalah sebagai berikut :

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY top_level_vhd IS
PORT(
CLOCK_50
: IN STD_LOGIC;
SW
: IN
STD_LOGIC_VECTOR( 9 DOWNTO 0 );
VGA_R
: OUT
STD_LOGIC_VECTOR( 5 DOWNTO 0 );
VGA_G
: OUT
STD_LOGIC_VECTOR( 5 DOWNTO 0 );
VGA_B
: OUT
STD_LOGIC_VECTOR( 5 DOWNTO 0 );
VGA_HS
: OUT STD_LOGIC;
VGA_VS
: OUT STD_LOGIC;
VGA_CLK
: OUT STD_LOGIC;
VGA_BLANK : OUT STD_LOGIC;
GPIO_0
: OUT
STD_LOGIC_VECTOR( 35 DOWNTO 0 );
LEDR
: OUT
STD_LOGIC_VECTOR( 9 DOWNTO 0 ));
END top_level_vhd;
ARCHITECTURE behavioral OF
IS
SIGNAL M_US : STD_LOGIC;
SIGNAL K_US : STD_LOGIC;
SIGNAL H_US : STD_LOGIC;
SIGNAL M_BT : STD_LOGIC;
SIGNAL K_BT : STD_LOGIC;
SIGNAL H_BT : STD_LOGIC;
COMPONENT display_vhd IS
PORT(
i_clk
i_M_US
i_K_US
i_H_US
i_M_BT
i_K_BT
i_H_BT
VGA_R
STD_LOGIC_VECTOR( 5 DOWNTO
VGA_G
STD_LOGIC_VECTOR( 5 DOWNTO
VGA_B
STD_LOGIC_VECTOR( 5 DOWNTO
VGA_HS
STD_LOGIC;
VGA_VS
STD_LOGIC;
VGA_CLK
STD_LOGIC;
VGA_BLANK
STD_LOGIC);
END COMPONENT;
BEGIN
module_vga : display_vhd
PORT MAP (
i_clk
=>
i_M_US
=>
i_K_US
=>
i_H_US
=>
i_M_BT
=>
i_K_BT
=>
i_H_BT
=>
VGA_R
=>
VGA_G
=>
VGA_B
=>
VGA_HS
=>
VGA_VS
=>
VGA_CLK
=>
VGA_BLANK
=>
);
END behavioral;

top_level_vhd

: IN STD_LOGIC;
: IN STD_LOGIC;
: IN STD_LOGIC;
: IN STD_LOGIC;
: IN STD_LOGIC;
: IN STD_LOGIC;
: IN STD_LOGIC;
: OUT
0 );
: OUT
0 );
: OUT
0 );
: OUT
: OUT
: OUT
: OUT

CLOCK_50,
M_US,
K_US,
H_US,
M_BT,
K_BT,
H_BT,
VGA_R,
VGA_G,
VGA_B,
VGA_HS,
VGA_VS,
VGA_CLK,
VGA_BLANK

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

dengan menggunakan kode VHDL di atas sebagai


top entity dan diterapkan pada LCD maka
diperoleh tampilan di layar berupa dua buah kotak
yang serupa dengan lampu merah dan warnanya
berubah sesuai input dari switch. Tidak lupa,
praktikan juga memasang pin planner dengan cara
menggunakan file .qpf dar i file yang telah
disiapkan ke dalam top_level_vhd karena nama file
harus sama dengan nama entity. Gambar yang
didapatkan di LCD kurang lebih seperti berikut :

component yang ditulis dalam top level vhd ini


didapatkan dari port yang ada pada FSM. Selain
menambahkan
component,
praktikan
juga
menambahkan
module
baru
untuk menghubungkan port yang ada pada fsm
yang telah dibuat dan port yang dimiliki oleh
top_level_vhd. Berikut adalah script untuk
menambahkan module baru, letak penempatan
module adalah di antara syntax BEGIN dan END
behavioral. Untuk lebih jelasnya, berikut adalah
source code top_level_vhd yang telah diubah
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

Ketiga buah warna tersebut dapat berubah-ubah


sessuai dengan switch mana yang menyala. Saat
semua switch dalam keadaan menyala maka akan
menampilkan gambar seperti di atas dan apabila
hanya switch 1 untuk M_US yang menyala, hasil
yang diperoleh akan menjadi sebagia berikut :

ENTITY top_level_vhd IS
PORT(
CLOCK_50
: IN STD_LOGIC;
SW
: IN STD_LOGIC_VECTOR( 9 DOWNTO 0 );
VGA_R
: OUT STD_LOGIC_VECTOR( 5 DOWNTO 0 );
VGA_G
: OUT STD_LOGIC_VECTOR( 5 DOWNTO 0 );
VGA_B
: OUT STD_LOGIC_VECTOR( 5 DOWNTO 0 );
VGA_HS
: OUT STD_LOGIC;
VGA_VS
: OUT STD_LOGIC;
VGA_CLK
: OUT STD_LOGIC;
VGA_BLANK : OUT STD_LOGIC;
GPIO_0
: OUT STD_LOGIC_VECTOR( 35
DOWNTO 0 );
LEDR
: OUT STD_LOGIC_VECTOR( 9 DOWNTO
0 ));
END top_level_vhd;
ARCHITECTURE behavioral OF top_level_vhd

Bila yang menyalal adalah switch ketiga untuk


H_US dan H_BT di switch keenam maka hasil akan
menjadi :

Dengan
kata
lain,
praktikan
berhasil
mengimplementasikan
VGA
driver
dan
menampilkannya di LCD sebuah traffic light
dengan 6 buah output warna yang nilainya
tergantung dari 6 buah input saklar.

4.3 MENGGABUNGKAN DESAIN FSM DENGAN


VGA DRIVER
Pada percobaan keempat bagian ketiga ini,
praktikan akan menggabungkan FSM yang telah
dibuat dengan VGA driver agar hasilnya dapat
dilihat pada layar LCD berupa traffic light yang
menyala sesuai dengan inputnya masing-masing.
Untuk menggabungkan FSM ke dalam VGA driver
maka top_level_vhd yang sebelumnya telah
disiapkan oleh labdasar harus sedikit diubah
dengan menambahkan component dimana

IS

SIGNAL M_US : STD_LOGIC;


SIGNAL K_US : STD_LOGIC;
SIGNAL H_US : STD_LOGIC;
SIGNAL M_BT : STD_LOGIC;
SIGNAL K_BT : STD_LOGIC;
SIGNAL H_BT : STD_LOGIC;
COMPONENT FSM IS
PORT (
clockin
: IN STD_LOGIC;
MODEDARURAT : IN STD_LOGIC;
MODEHARI : IN STD_LOGIC;
M_US
: OUT STD_LOGIC;
K_US
: OUT STD_LOGIC;
H_US
: OUT STD_LOGIC;
M_BT
: OUT STD_LOGIC;
K_BT
: OUT STD_LOGIC;
H_BT
: OUT STD_LOGIC
);
END COMPONENT;
COMPONENT display_vhd IS
PORT(
i_clk
: IN STD_LOGIC;
i_M_US
: IN STD_LOGIC;
i_K_US
: IN STD_LOGIC;
i_H_US
: IN STD_LOGIC;
i_M_BT
: IN STD_LOGIC;
i_K_BT
: IN STD_LOGIC;
i_H_BT
: IN STD_LOGIC;
VGA_R
: OUT STD_LOGIC_VECTOR( 5
DOWNTO 0 );
VGA_G
: OUT STD_LOGIC_VECTOR( 5
DOWNTO 0 );
VGA_B
: OUT STD_LOGIC_VECTOR( 5
DOWNTO 0 );
VGA_HS
: OUT STD_LOGIC;
VGA_VS
: OUT STD_LOGIC;
VGA_CLK
: OUT STD_LOGIC;
VGA_BLANK
: OUT STD_LOGIC);
END COMPONENT;
BEGIN
module_fsm : FSM
PORT MAP (
clockin
M_US
K_US
H_US
M_BT
K_BT
H_BT
MODEDARURAT
MODEHARI
);

=>
=>
=>
=>
=>
=>
=>

CLOCK_50,
M_US,
K_US,
H_US,
M_BT,
K_BT,
H_BT,
=> SW(9),
=> SW(8)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

module_vga : display_vhd
PORT MAP (
i_clk
=>
i_M_US
=>
i_K_US
=>
i_H_US
=>
i_M_BT
=>
i_K_BT
=>
i_H_BT
=>
VGA_R
=>
VGA_G
=>
VGA_B
=>
VGA_HS
=>
VGA_VS
=>
VGA_CLK
=>
VGA_BLANK
=>
);
END behavioral;

DAFTAR PUSTAKA
CLOCK_50,
M_US,
K_US,
H_US,
M_BT,
K_BT,
H_BT,
VGA_R,
VGA_G,
VGA_B,
VGA_HS,
VGA_VS,
VGA_CLK,
VGA_BLANK

Bagian yang dihighlight adalah script yang


ditambahkan ke dalam top_level_vhd. Setelah
selesai menambahkan script, kemudian praktikan
mendownloadkannya lagi ke FPGA dan
didapatkan hasil seperti dibawah ini ketika FPGA
dihbungkan ke LCD.
S0

5.

S1

S2

S3

S4

[1]

Mervin T. Hutabarat, dkk., Buku Petunjuk


Praktikum Sistem Digital EL 2102, Sekolah
Teknik Elektro Dan Informatika Institut
Teknologi Bandung 2015, Bandung, 2015.

[2]

http://digilib.its.ac.id/public/ITS-Master13572-2208205710-Presentation.pdf. Diakses
tanggal 22 November 2015 pk. 9.38

[3]

http://riskasimaremare.wordpress.com/2013
/04/23/finite-state-automata/
Diakses
tanggal 22 November 2015 pk. 9.57

[4]

http://id.wikipedia.org/wiki/FPGA Diakses
tanggal 22 November 2015 pk. 10.13

S5

KESIMPULAN

Rangkaian logika sekuensial merupakan


rangkaian logika yang keluarannya selain
bergantung pada input juga bergantung
pada output dari hasil sebelumnya
sehingga rangkaian logika sekuensial
memiliki memory state. Salah satu model
perancangan rangkaian sekuensial adalah
pembuatan FSM atau Finite State Machine.

Implementasi FSM dapat dilakukan


dengan menghasilkan keluaran pada LED
di FPGA maupun pada LCD dengan VGA
Driver tertentu yang telah diprogram.

CLOCKDIV
berfungsi
untuk
memperlambat waktu keluaran agar sesuai
dengan yang diinginkan..

FPGA
dapat
digunakan
untuk
memverifikasi fungsi rangkaian yang telah
dibuat.

FSM dapat digabungkan dengan VGA


driver. Proses penggabungannya sama
dengan proses memasukkan clockdiv pada
desain FSM pada top_level_vhd yang
meruapakan top level filenya.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Anda mungkin juga menyukai