Anda di halaman 1dari 14

MODUL IV RANGKAIAN LOGIKA SEKUENSIAL

Rosana Dewi Amelinda (13213060)


Asisten : Adityo Prabowo (13211106)
Tanggal Percobaan: 23/10/2014
EL2102-Praktikum Sistem Digital

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB
Abstrak
Abstrak Pada pratikum IV Modul Rangkaian Logika
Kobinasional ini telah dilakukan beberapa percobaan. Pertama
yaitu dilakukan simulasi lampu lalu lintas yang selanjutnya
diimpelmentasi pada 7 segmen FPGA. Output yang
didapatkan dari percobaan 1 ini adalah lampu led 7 segmen
yang mengeluarkan output active low secara bergantian seperti
simulasi lampu lalu lintas. Kedua yaitu dilakukan implementasi
modul pada VGA driver. Output dari percobaan 2 yaitu
monitor mengeluarkan tampilan 6 kotak yang masing-masing
berwarna merah/kuning/hijau dengan setiap kotak
mengeluarkan output 1 atau 0 (active high) diatur melalui
SW[0] sampai SW[5] pada board FPGA. Terakhir yaitu
dilakukan penggabungan desain FSM dengan VGA Driver.
Output pada percobaan 3 ini yaitu setiap monitor computer yang
mengeluarkan warna merah/hijau/kuning menyala secara
bergantian dengan urutannya sesuai dengan simulasi lampu lalu
lintas seperti pada percobaan 1.

VGA adalah standar tampilan gambar untuk


perangkat computer yang pertama kali dikenalkan
oleh IBM pada taun 1987. Sedangkan untuk
mendukung kerja sebuah VGA dibutuhkan suatu
hardware yaitu kartu VGA (VGA card). VGA
berfungsi untuk menerjemahkan atau mengubah
sinyal digital dari computer menjadi tampilan grafis
pada layar monitor. Sedangakna VGA Card
berfungsi untuk menerjemahkan output computer
ke monitor. [3]
Pada praktikum modul IV ini, tujuan yang ingin
dicapai yaitu :

Kata kunci: Sekuensial, FSM, VGA Driver


1.

PENDAHULUAN

Rangkaian logika sekuensional adalah rangkaian


yang outputnya tidak bergantung pada nilai input
saat itu, tetapi juga input-input sebelumnya.
Rangkaian sekuensial memiliki prinsip kerja yang
berbeda dengan rangkaian kombinasional. Keluaran
suatu rangkaian sekuensial tidak hanya bergantung
dari kondisi keluaran sebelumnya karena pada
rangkaian sekuensial terdapat elemen umpan balik
yang akan mengembalikan output menjadi input
untuk state selanjutnya. Rangkaian sekuensial dapat
dibedakan menjadi rangkaian sekuensial sinkron
dan rangkaian sekuensial asinkron. Semua
perpindahan state (keadaan) pada rangkaian
sekuensial sinkron dilakukan secara serentak
berdasarkan suatu clock tertentu. Rangkaian
sekuensial asinkron tidak memiliki clock seperti
rangkaian sekuensial sinkron, sehingga perpindahan
state pada rangkaian sekuensial asinkron dapat
terjadi kapan saja dengan memanfaatkan konsep
kestabilan. [1]
FSM (Finite State Machine) adalah sebuah
metodologi perancangan system control yang
menggambarkan tingkah laku atau prninsip kerja
system dengan menggunakan State (keadaan) dan
Event serta keluaran. [2]

2.

1.

Mendesain sekuensial rangkaian untuk


implementasi didalam FPGA

2.

Mengenal
dan
memahami
menggunakan hierarki dalam
rangkaian

3.

Mengenal dan memahami cara mengunakan


FPGA sebagian prototype system untuk
memverifikasi fugnsi rangkaian

cara
desain

STUDI PUSTAKA

Pada praktikum kali ini praktikan akan mencoba


merancangan rangkaian sekuensial. Perbedaan
mendasar
rangkaian
kombinasional
dengan
rangkaian sekuensial adalah ada tidaknya memory
statenya. Keluaran rangkaian sekuensial bergantung
pada statw dan bergantung pada masukannya
(rangkaian Mealy) atau hanya bergantung pada
statenya (rangkaian Moore).
Terdapat perbedaan beberapa model yang
digunakan untuk membantu erancang 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 irio
dengan mesin yang beroperasi dengan urutan state.
Level abstraksi perancangan FSM pun bertingkattingkat. Pada pratikum kali ini disarankan
menggunakan level abstraksi behavioural. 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

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

menggunakan state diagram. Komponen-komponen


yang harus ada pada state diagram adalah deklarasi
input dan output, definisi state, transisi, dan
keluarannya.
Gambar dibawah adalah contoh gambar state
diagram FSM Mealy dan implementasinya dalam
VHDL.
Gambar 1 Contoh bentuk FSM

2.1

Input : a
Output : b

a/b=1'

a/b=0'
S2

JUDUL SUB-BAB

Judul sub-bab praktikum modul IV ini yaitu :

!a/b=1'

S1

Gambar diatas adalah gamabr blok-blok yang dibuat


kecuali untuk blok display_vhd karena blok ini
sudah disediakan sebagai modul display ke LCD via
VGA. Input dati FSM yang dibuat adalah mode
siang, mode malam hari, dan mode darurat. Blok
counter digunakan untuk menentukan lama waktu
lampu lalu lintas nyala atau transisi.

S3

!a/b=0'

a/b=1'

1.

Implementasi desain FSM pada FPGA

2.

Implementasi modul VGA driver

3.

Menggabungkan desian FSM dengan VGA


driver

!a/b=0'

Pada praktikum ini akan digunakan desain FSM


dengan case sebagai berikut :

3.

METODOLOGI

Peralatan yang digunakan

Sebuah perempatan jalan raya mempunyai 4 buah


lampu lalulintas. Lampu lalulintas pada arah utara
dan selatan menyala bersamaan. Lampu lalulintas
dari arah barat dan timur juga menyala bersamaan.
Karena itu hanya diperlukan dua buah control : (1)
untuk lampu lalulintas utara-selatan, dan (2) untuk
lampu lalu lintas barat-timur.
Ketika siang hari lampu merah menyala selama 10
detik lalu lamu hijau menyala selama 8 detik serta
lampu kuning manyala selama 2 detik ketika
perpindahan lampu hijau ke merah. Ketiga lampu
menyala senditi-sendiri (tidak ada lampu yang
menyala bersamaan antara merah-kuning-hijau).
Ketika malam hari lampu merah menyala selama 5
detik lalu lampu hijau menyala selama 4 detik serta
lampu kuning menyala selama 1 detik ketika
perpindahan lamu hijau ke merah. System lampu
lalulintas dilengkapi dengan tombol darurat. Ketika
tombol darurat ditekan lampu kuning akan berkedip
selama 4 detik

KOmputer/PC yang telah terinstal


program Quartus II 9.0

Monitor LCD

FPGA development board, tipe


ALTERA
DE1
beserta
perlengkapannya yang meliputi
a.

Board FPGA tipe DE1

b.

Catu daya + kabel dan konektor


tambahan

c.

Kabel USB-Blaster

Untuk tahapan percobaan akan didesain dan diuji


(dalam simulasi) sebuah BCD counter yang dapat dicascade dan sebuah driver-by-N counter.
Percobaan
1.

Implementasi desain FSM pada FPGA

Pada percobaan ini akan diimplementasikan FSM ke


FPGA dengan keluaran ke LED FPGA.

Pada praktikum ini, praktikan akan mendesain FSM


yang mengtur lampu lalulintas tersebut. FSM yang
didesain akan memiliki 6 buah output yang lebarnya
masing-masing 1 bit. Output tersebut menunjukan
kondisi setiap lampu Utara Selatan dan lampu Barat
Timur. Misalkan M_US (Merah Utara Selatan, M_BT
(Merah Barat Timur), K_US, K_BT, H_US, dan H_BT.
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Dibuat folder sebagai direktori kerja batu untuk


praktikum kali ini kemudian copy script desain
FSM yang telah dibuat sebagai tugas
pendahuluan sebelumnya ke dalam folder
tersebut

Dihubungkan keluaran FSM dengan


masukan modul VGA. Dilakukan compile
dan di download gabungan desain FSM dan
modul VGA tersebut ke dalam board FPGA.

Dijalankan program ALTERA QUARTUS,


kemudian dibuka file yang merupakan script
desain FSM yang telah dibuat sebagai tugas
pendahuluan sebelumnya

Diamati hasil yang didapatkan.

Diimplementasaikan desain FSM tersebut dengan


keluaran pada LED FPGA
2.

Mengakhiri Percobaan

Sebelum keluar dari ruang praktikum, dirapikan


meja praktikum. Dirapikan kabel dan dimatikan,
osiloskop, generator sinyal, dan power supply
DC. Dicabut daya dari jala-jala ke kit FPGA dan
diletakan kembali pada tempat semula.

Implementasi modul VGA driver

Pada percobaan ini akan diimplementasikan modul


VGA Drive dengna masukan dair FPGA (Switch)
selebar 6 bit. Masukan modul ini akan dihubungkan
dengan keluaran modul FSM yang telah dibuat.

Dibuat folder sebagai direktori kerja baru untuk


percobaan ini, kemudian dibuat projet baru
dengan modul-modul yang disediakan untuk
praktikum ("display_DE1.rar").

Diperiksa lagi lembar penggunakan meja.

Dipastikan asisten menandatangani catatan


percobaan kali ini pada Buku Catatan
Laboratorium.

4. HASIL DAN ANALISIS


Percobaan 1
Diimplementasikan desain di atas pada FPGA
dengan pin planer yang sudah didownload
(deklarasi pin dilihat di file "qsf").

Dilakukan bebrapa kali perubahan posisi switch


pada board FPGA untUk melihat efek dan
perubahannya pada layar LCD. Dipelajari input
dan keluaran dari desain di atas untuk
selanjutnya digabungkan dengan modul FSM
yang telah dibuat. Catatan : Dihubungkan port
VGA FPGA board dengan VGA LCD
menggunakan kabel VGA DB15.
3.

Pada percobaan 1 ini telah dilakukan impleentasi


FSM ke FPGA dengan keluaran ke 7 segmen FPGA.
Pin output 7 segmennya yaitu :

FSM yang digunakan yaitu :

Menggabungkan desian FSM dengan VGA


driver

Pada percobaan ini akan digabungkan modul FSM


dengan modul VGA.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Gambar 2 Finite State Machine

Gambar 6 Implementasi pada FPGA (19 20)

Dari percobaan yang telah dilakukan didapatka hasil


berupa wave sinyal sebagai berikut :

Sedangkan output pada 7 segmen FPGA, yaitu


Gambar 3 Implementasi pada FPGA (81 88)

Gambar 4 Implementasi pada FPGA (9 10)

Tampilan LED 7 segmen diatas telah sesuai


spesifikasi lampu lalu lintas yang diinginkan. Yaitu
pada saat detik ke 1 hingga detik ke 8, mula-mula
lampu M_BT (Merah_BaratTimur) dan H_US
(Hijau_UtaraSelatan) mati (berlogika 1) terlebih
dahulu (Active Low). Kemudian setelah detik ke 8
hingga detik ke 10, lampu M_BT tetap mati tetapi
lampu H_US menyala dan digantikan lampu K_US
(Kuning_UtaraSelatan) yang mati. Selanjutnya
giliran lampu M_US dan H_BT yang mati selama 8
detik. Kemudian pada detik ke-9 matinya lampu
H_BT digantikan dengan matinya lampu K_BT
selama 2 detik. Setelah 2 detik, maka State (kondisi)
akan kembali ke kondisi awal yaitu saat lampu
M_BT dan H_US yang bernilai logika 1 (mati).
Kondisi diatas berlaku saat input Siang bernilai 0
dan darurat bernilai 0 serta adanya internal clock.
Sedangkan untuk state saat input siang bernilai 1,
darurat bernilai 0 dan adanya clock, maka hasil
implementasi sama dengan kondisi tersebut namun
yang membedakan adalah lama detiknya. Dimana
untuk lampu merah bernilai 1 selama 5 detik, lampu
hijau selama 4 detik dan lampu kuning selama 2
detik. Kondisi yang terakhir yaitu saat input darurat
bernilai 1 dan tidak bergantung nilai input lainya
maka saat itu lampu kuning menyala berkedip-kedip
selama 4 detik. Dan seletah 4 detik akan kembali ke
kondisi awal. Berikut tampilan saat terjadi kondisi
darurat :

Gambar 5 Implementasi pada FPGA (11 18)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Pada percobaan ini, clockdiv yang digunakan yaitu


50 MHz. 50 MHz ini berarti bahwa terjadi 50.000.000
proses (perubahan logika 0 ke 1) dalam 1 detik.
Namun dalam kenyataanya tidak akan murni terjadi
50.000.000 proses disebabkan worst case delay yang
terjadi. Sehingga proses yang terjadi adalah sekitar
49.000.000 proses. Hal ini disebabkan factor
processor FPGA yang tidak murni 50 MHz.

Gambar 11 SWI[4] = 1

Percobaan 2
Pada percobaan 2 ini file .vhd dan .qsf didapatkan
dari modul yang disediakan untuk praktikum
(display_DE1.rar).
Kemudian
dilakukan
kompilasi terhadap modul tersebut lalu dan
diimplementasikan pada VGA Driver dengan input
dari Switch (0-5) FPGA serta dihubungkan VGA
keluaran FPGA dengan layar LCD/monitor
computer. Berikut representasi tampilan VGA
Driver dengan berbagai kombinasi input Switch
FPGA.
Gambar 7 SWI[0] = 1

Gambar 8 SWI[1] = 1

Gambar 12 SWI[5] = 1

Gambar 13 SWI[0] = 1, SWI[1] = 1, SWI[2] = 1, SWI[3] = 1,


SWI[4] = 1, dan SWI[5] = 1

Dengan telah dilakukannya impelmentasi VGA


diatas maka dapat disimpulkan kita dapat membuat
simukasi lampu lalu lintas dengan memanfaatkan
tampilan monitor seperti diatas.
Percobaan 3
Gambar 14 Implementasi VGA driver detik 1-8

Gambar 9 SWI[3] = 1

Gambar 15 Implementasi VGA Driver detik 9-10

Gambar 10 SWI[3] = 1

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Gambar 16 Implementasi VGA Driver detik 11-18

5. KESIMPULAN
a.

Rangkaian sekuensial adalah rangkain yang


tidak hanya bergantung pada state saat itu
namun juga bergantung pada state-state
sebelumnya. Pada rangkaian sekuensial
terdapat memory yang berfungsi untuk
meyimpan
output
sementara
untuk
dikembalikan lagi menjadi state input.

b.

Hierarki yang digunakan pada praktikum


kali ini yaitu dalam bentuk FSM (Finite State
Machine) yang merupakan salah satu
metodologi pemodelan dalam desain
rangkaian logika sekuensial.

c.

Pada percobaan kali ini telah dibuat


prototype
lampu
lalu
lintas
yang
memanfaatkan FPGA dengan 2 cara yaitu
pertama dengan menggunkan LED 7
segmen pada FPGA dan kedua yaitu dengan
menampilkan keluaran pada layar monitor
dengan memanfaatkan VGA Driver.

Gambar 17 Implementasi VGA Driver detik 19-20

DAFTAR PUSTAKA

Dengan menggunakan FSM pada percobaan 1 dan


tampilan warna FPGA pada percobaan 2, maka kita
dapat membuat simulasi lampu lalu lintas sesuai
spesifikasi pada soal dengan bentuk keluarannya
berupa tampilan pada layar monitor/LCD computer
seperti tampak pada gambar diatas.
Output yang didapatkan dari percobaan ini yaitu
lampu lalu lintas yang menyala sesuai urutan pada
percobaan 1 dan dengan warna tampilam seperti
pada percobaan 2. Namun jika sebelumnya kita
memberikan input secara manual untuk setiap
lampu (dengan menyalakan SW[0] sampai SW[5],
pada percobaan ini input sinyal diberikan seacara
automatic dari FMS yang telah dibuat. Dengan mode
siang yaitu saat SW[0] = 1 dan mode malam saat
SW[0] = 1 serta mode darurat saat push button 1
ditekan.

Mervin T Hutabarat, Arif Sasongko, Praktikum


Sistem Digital, Laboratorium Dasar Teknik
Elektro ITB, Bandung, 2014.
[1] http://sweetydyah.blogspot.com/2009/05/ra
ngkaian-sekuensial.html, 20 November 2014,
12:36.
[2] http://dentyagame.blogspot.com/2014/04/f
sm-finite-state-machine.html, 20 November
2014, 13:06.
[3] http://www.mykiosdriver.net/2013/09/peng
ertian-driver-vga.html, 20 November 2014,
12:58.

Sebagai contoh, saat SW[0] = 0 dan tidak ditekan


push button (mode malam-tidak darurat) :
Detik 1-4 tampilan layar yaitu lampu M_BT dan
H_US menyala (S0)
Detik 5 tampilan layar yaitu lampu M_BT dan K_US
menyala (S1)
Detik 6-9 tampilan layar yaitu lampu M_US dan
H_BT menyala (S2)
Detik 10 tampilan layat yaitu lampua M_US dan
K_BT menyala (S3).

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

LAMPIRAN
1. Percobaan 1
1.1 Clockdiv
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
entity CLOCKDIV is port(
CLK
: IN std_logic;
DIVOUT
: buffer BIT);
end CLOCKDIV;
architecture behavioural of CLOCKDIV is
begin
PROCESS(CLK)
variable count: integer:=0;
constant div: integer:=50000000;
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;
--FSM_clk <= DIVOUT;
end process;
end behavioural;
1.2 FSM
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity FSM is
port (
counter_clk
: in std_logic;
darurat
: in std_logic;
siang : in std_logic;
M_US, K_US, H_US, M_BT, K_BT, H_BT
end FSM;

: out std_logic);

architecture behavioral of FSM is


type state is (s0, s1, s2, s3, s4, s5);
signal currentState : state;
signal count
: integer := 0;
begin
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

process(counter_clk, darurat, siang)


begin
--count <= 0;
if (darurat = '1') then
if (count < 4) then
if ((count = 0) or (count = 2)) then
currentState <= s4;
count <= count + 1;
elsif ((count = 1) or (count = 3 )) then
currentState <= s5;
count <= count + 1;
end if;
else -- jika count > 4 kembali lagi ke s0.
currentState <= s0;
count <= 0;
end if;
elsif ((counter_clk'event and counter_clk = '1') and (siang = '1'))
then
case currentState is
when s0 =>
if (count < 8) then
currentState <= s0;
count <= count + 1;
else
currentState <= s1;
count <= 0;
end if;
when s1 =>
if (count < 2) then
currentState <= s1;
count <= count + 1;
else
currentState <= s2;
count <= 0;
end if;
when s2 =>
if (count < 8) then
currentState <= s2;
count <= count + 1;
else
currentState <= s3;
count <= 0;
end if;
when s3 =>
if (count < 2) then
currentState <= s3;
count <= count + 1;
else
currentState <= s0;
count <= 0;
end if;
when others =>
currentState <= s0;
end case;
elsif ((counter_clk'event and counter_clk = '1') and (siang = '0'))
then
case currentState is
when s0 =>
if (count < 4) then
currentState <= s0;
count <= count + 1;
else
currentState <= s1;
count <= 0;
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

end if;
when s1 =>
if (count < 1) then
currentState <= s1;
count <= count + 1;
else
currentState <= s2;
count <= 0;
end if;
when s2 =>
if (count < 4) then
currentState <= s2;
count <= count + 1;
else
currentState <= s3;
count <= 0;
end if;
when s3 =>
if (count < 1) then
currentState <= s3;
count <= count + 1;
else
currentState <= s0;
count <= 0;
end if;
when others =>
currentState <= s0;
end case;
end if;
end process;
Output : process(currentState)
begin
case currentState is
when s0 => M_US <= '0';
K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=
when s1 => M_US <= '0';
K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=
when s2 => M_US <= '1';
K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=
when s3 => M_US <= '1';
K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=
when s4 => M_US <= '0';
K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=

'0';
'1';
'1';
'0';
'0';
'1';
'0';
'1';
'0';
'0';
'0';
'0';
'0';
'0';
'1';
'0';
'0';
'0';
'1';
'0';
'1';
'0';
'0';
'1';
'0';

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

when s5 =>

M_US <= '0';


K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=

'0';
'0';
'0';
'0';
'0';

end case;
end process;
end behavioral;
1.3

Entity

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity Praktikum4 is
port (
internal_clk
: in std_logic;
darurat
: in std_logic;
siang : in std_logic;
M_US, K_US, H_US, M_BT, K_BT, H_BT : out std_logic);
--signal count
: integer;
--signal FSM_clk : std_logic;
end Praktikum4;
architecture structural of Praktikum4 is
component CLOCKDIV is
port( CLK
: in std_logic;
DIVOUT
: buffer BIT);
end component;
component FSM is
port (
counter_clk
: in std_logic;
darurat
: in std_logic;
siang : in std_logic;
M_US, K_US, H_US, M_BT, K_BT, H_BT
end component;

: out std_logic);

--component Counter is
-port ();
--end component;
begin
A
B

: CLOCKDIV port map (CLK => internal_clk); --, DIVOUT => FSM_clk);
: FSM port map ( counter_clk => internal_clk,
darurat => darurat,
siang => siang,
M_US => M_US, K_US =>
K_US, H_US => H_US,
M_BT => M_BT, K_BT =>
K_BT, H_BT => H_BT);
end structural;

2. Top Level vhd


Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

1
0

set_global_assignment -name FAMILY "Cyclone II"


set_global_assignment -name DEVICE EP2C20F484C7
set_global_assignment -name TOP_LEVEL_ENTITY top_level_vhd
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 9.1
set_global_assignment -name PROJECT_CREATION_TIME_DATE "09:32:25 NOVEMBER
19, 2014"
set_global_assignment -name LAST_QUARTUS_VERSION 9.1
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
set_global_assignment -name MISC_FILE "C:/Users/TEKNIK ELEKTRO/Desktop/Modul
4/display/top_level_vhd.dpf"
set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL"
set_location_assignment PIN_L1 -to CLOCK_50
set_location_assignment PIN_L18 -to GPIO_0[35]
set_location_assignment PIN_L19 -to GPIO_0[34]
set_location_assignment PIN_K20 -to GPIO_0[33]
set_location_assignment PIN_J18 -to GPIO_0[32]
set_location_assignment PIN_J20 -to GPIO_0[31]
set_location_assignment PIN_J19 -to GPIO_0[30]
set_location_assignment PIN_K22 -to GPIO_0[29]
set_location_assignment PIN_K21 -to GPIO_0[28]
set_location_assignment PIN_J22 -to GPIO_0[27]
set_location_assignment PIN_J21 -to GPIO_0[26]
set_location_assignment PIN_G22 -to GPIO_0[25]
set_location_assignment PIN_G21 -to GPIO_0[24]
set_location_assignment PIN_F22 -to GPIO_0[23]
set_location_assignment PIN_F21 -to GPIO_0[22]
set_location_assignment PIN_E22 -to GPIO_0[21]
set_location_assignment PIN_E21 -to GPIO_0[20]
set_location_assignment PIN_D22 -to GPIO_0[19]
set_location_assignment PIN_D21 -to GPIO_0[18]
set_location_assignment PIN_C22 -to GPIO_0[17]
set_location_assignment PIN_C21 -to GPIO_0[16]
set_location_assignment PIN_B20 -to GPIO_0[15]
set_location_assignment PIN_A20 -to GPIO_0[14]
set_location_assignment PIN_B19 -to GPIO_0[13]
set_location_assignment PIN_A19 -to GPIO_0[12]
set_location_assignment PIN_B18 -to GPIO_0[11]
set_location_assignment PIN_A18 -to GPIO_0[10]
set_location_assignment PIN_B17 -to GPIO_0[9]
set_location_assignment PIN_A17 -to GPIO_0[8]
set_location_assignment PIN_B16 -to GPIO_0[7]
set_location_assignment PIN_A16 -to GPIO_0[6]
set_location_assignment PIN_B15 -to GPIO_0[5]
set_location_assignment PIN_A15 -to GPIO_0[4]
set_location_assignment PIN_B14 -to GPIO_0[3]
set_location_assignment PIN_A14 -to GPIO_0[2]
set_location_assignment PIN_B13 -to GPIO_0[1]
set_location_assignment PIN_A13 -to GPIO_0[0]
set_location_assignment PIN_R17 -to LEDR[9]
set_location_assignment PIN_R18 -to LEDR[8]
set_location_assignment PIN_U18 -to LEDR[7]
set_location_assignment PIN_Y18 -to LEDR[6]
set_location_assignment PIN_V19 -to LEDR[5]
set_location_assignment PIN_T18 -to LEDR[4]
set_location_assignment PIN_Y19 -to LEDR[3]
set_location_assignment PIN_U19 -to LEDR[2]
set_location_assignment PIN_R19 -to LEDR[1]
set_location_assignment PIN_R20 -to LEDR[0]
set_location_assignment PIN_L2 -to SW[9]
set_location_assignment PIN_M1 -to SW[8]
set_location_assignment PIN_M2 -to SW[7]
set_location_assignment PIN_U11 -to SW[6]
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

11

set_location_assignment PIN_U12 -to SW[5]


set_location_assignment PIN_W12 -to SW[4]
set_location_assignment PIN_V12 -to SW[3]
set_location_assignment PIN_M22 -to SW[2]
set_location_assignment PIN_L21 -to SW[1]
set_location_assignment PIN_L22 -to SW[0]
set_location_assignment PIN_D9 -to VGA_R[0]
set_location_assignment PIN_C9 -to VGA_R[1]
set_location_assignment PIN_A7 -to VGA_R[2]
set_location_assignment PIN_B7 -to VGA_R[3]
set_location_assignment PIN_B8 -to VGA_G[0]
set_location_assignment PIN_C10 -to VGA_G[1]
set_location_assignment PIN_B9 -to VGA_G[2]
set_location_assignment PIN_A8 -to VGA_G[3]
set_location_assignment PIN_A9 -to VGA_B[0]
set_location_assignment PIN_D11 -to VGA_B[1]
set_location_assignment PIN_A10 -to VGA_B[2]
set_location_assignment PIN_B10 -to VGA_B[3]
set_location_assignment PIN_A11 -to VGA_HS
set_location_assignment PIN_B11 -to VGA_VS
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
set_global_assignment -name LL_ROOT_REGION ON -section_id "Root Region"
set_global_assignment -name LL_MEMBER_STATE LOCKED -section_id "Root Region"
set_global_assignment -name VHDL_FILE FSM.vhd
set_global_assignment -name VHDL_FILE ../display_DE1/color_rom_vhd.vhd
set_global_assignment -name VHDL_FILE ../display_DE1/display_vhd.vhd
set_global_assignment -name VHDL_FILE ../display_DE1/pll_vhd.vhd
set_global_assignment -name VHDL_FILE ../display_DE1/top_level_vhd.vhd
set_global_assignment -name VHDL_FILE ../display_DE1/vga.vhd
set_location_assignment PIN_R21 -to darsw
set_global_assignment -name MISC_FILE "C:/Users/TEKNIK ELEKTRO/Desktop/Modul
4/Modul 4/display/top_level_vhd.dpf"
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | section_id Top

3. Color room
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY color_rom_vhd IS
PORT(
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;
i_pixel_column : IN STD_LOGIC_VECTOR( 9 DOWNTO 0 );
i_pixel_row
: IN STD_LOGIC_VECTOR( 9 DOWNTO 0 );
o_red
: OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 );
o_green
: OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 );
o_blue
: OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 ));
END color_rom_vhd;
ARCHITECTURE behavioral OF color_rom_vhd
CONSTANT R_TF_0
CONSTANT R_TF_1

IS

: INTEGER := 0;
: INTEGER := 159;
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

12

CONSTANT
CONSTANT
CONSTANT
CONSTANT
CONSTANT
CONSTANT
SIGNAL
SIGNAL
SIGNAL
SIGNAL

R_TF_2
R_TF_3
C_TF1_R
C_TF2_R
C_TF1_L
C_TF2_L

:
:
:
:
:
:

M_TF1, M_TF2
K_TF1, K_TF2
H_TF1, H_TF2
grid

INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER

:=
:=
:=
:=
:=
:=

319;
479;
79;
399;
239;
559;
:
:
:
:

STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;

BEGIN

PROCESS(i_pixel_row,i_pixel_column, i_M_US , i_K_US , i_H_US , i_M_BT ,


i_K_BT , i_H_BT, M_TF1, M_TF2, K_TF1, K_TF2, H_TF1, H_TF2)
BEGIN
--Kotak lampu kanan atas menyala
IF ((i_pixel_row > R_TF_0) AND (i_pixel_row < R_TF_1) ) AND
((i_pixel_column >= C_TF1_R) AND (i_pixel_column < C_TF1_L) ) THEN M_TF1 <=
'1';
ELSE M_TF1 <= '0';
END IF;
--Kotak lampu kiri atas menyala
IF ((i_pixel_row > R_TF_0) AND (i_pixel_row < R_TF_1) ) AND
((i_pixel_column >= C_TF2_R) AND (i_pixel_column < C_TF2_L) ) THEN M_TF2 <=
'1';
ELSE M_TF2 <= '0';
END IF;
--Kotak lampu kanan tengah menyala
IF ((i_pixel_row > R_TF_1) AND (i_pixel_row < R_TF_2) ) AND
((i_pixel_column >= C_TF1_R) AND (i_pixel_column < C_TF1_L) ) THEN K_TF1 <=
'1';
ELSE K_TF1 <= '0';
END IF;
--Kotak lampu kiri tengah menyala
IF ((i_pixel_row > R_TF_1) AND (i_pixel_row < R_TF_2) ) AND
((i_pixel_column >= C_TF2_R) AND (i_pixel_column < C_TF2_L) ) THEN K_TF2 <=
'1';
ELSE K_TF2 <= '0';
END IF;
--Kotak lampu kanan bawah menyala
IF ((i_pixel_row > R_TF_2) AND (i_pixel_row < R_TF_3) ) AND
((i_pixel_column >= C_TF1_R) AND (i_pixel_column < C_TF1_L) ) THEN H_TF1 <=
'1';
ELSE H_TF1 <= '0';
END IF;
--Kotak lampu kiri bawah menyala
IF ((i_pixel_row > R_TF_2) AND (i_pixel_row < R_TF_3) ) AND
((i_pixel_column >= C_TF2_R) AND (i_pixel_column < C_TF2_L) ) THEN H_TF2 <=
'1';
ELSE H_TF2 <= '0';
END IF;
IF (i_pixel_column = 5) OR (i_pixel_column = 319) OR (i_pixel_column = 638)
THEN grid <= '1';
ELSE grid <= '0';
END IF;
--Kotak kanan atas menyala berwarna merah
IF
(M_TF1 = '1' AND i_M_US= '1' ) THEN o_red <= X"FF"; o_green <=
X"00"; o_blue <= X"00";
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

13

--Kotak kiri atas menyala berwarna merah


ELSIF (M_TF2 = '1' AND i_M_BT= '1' ) THEN o_red <= X"FF";
X"00"; o_blue <= X"00";
--Kotak kanan tengah menyala berwarna kuning
ELSIF (K_TF1 = '1' AND i_K_US= '1' ) THEN o_red <= X"FF";
X"DD"; o_blue <= X"00";
--Kotak kiri tengah emnyala berwarna kuning
ELSIF (K_TF2 = '1' AND i_K_BT= '1' ) THEN o_red <= X"FF";
X"DD"; o_blue <= X"00";
--Kotak kanan bawah menyala berwarna hijau
ELSIF (H_TF1 = '1' AND i_H_US= '1' ) THEN o_red <= X"00";
X"66"; o_blue <= X"00";
--Kotak kiri bawah menyala berwarna hijau
ELSIF (H_TF2 = '1' AND i_H_BT= '1' ) THEN o_red <= X"00";
X"66"; o_blue <= X"00";
--Kotak kanan atas tidak menyala
ELSIF (M_TF1 = '1' AND i_M_US= '0' ) THEN o_red <= X"EE";
X"EE"; o_blue <= X"EE";
--Kotak kiri atas tidak menyala
ELSIF (M_TF2 = '1' AND i_M_BT= '0' ) THEN o_red <= X"EE";
X"EE"; o_blue <= X"EE";
--Kotak kanan tengah tidak menyala
ELSIF (K_TF1 = '1' AND i_K_US= '0' ) THEN o_red <= X"EE";
X"EE"; o_blue <= X"EE";
--Kotak kiri tengah tidak menyala
ELSIF (K_TF2 = '1' AND i_K_BT= '0' ) THEN o_red <= X"EE";
X"EE"; o_blue <= X"EE";
--Kotak kanan bawah tidak menyala
ELSIF (H_TF1 = '1' AND i_H_US= '0' ) THEN o_red <= X"EE";
X"EE"; o_blue <= X"EE";
--Kotak kiri bawah tidak menyala
ELSIF (H_TF2 = '1' AND i_H_BT= '0' ) THEN o_red <= X"EE";
X"EE"; o_blue <= X"EE";
--Kotak tidak ada yang menyala (berwarna putih semua)
ELSIF (grid = '1')
THEN o_red <= X"EE";
X"EE"; o_blue <= X"EE";
ELSE o_red <= X"00"; o_green <= X"00"; o_blue <= X"00";
END IF;

o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=

END PROCESS;

END behavioral;

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

14

Anda mungkin juga menyukai