labdasar.ee.itb.ac.idlabdasar.ee.itb.ac.id/lab/el2102 - sistem digital/2012... · web viewdan...

8
MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL Michael Aditya (13211066) Asisten: Kiki Wirianto Tanggal Percobaan:5/12/2012 EL2195-Praktikum Sistem Digital Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB Abstrak Pada modul 6 “ Proyek Perancangan Rangkaian Digitial praktikkan ditugaskan untuk mengaplikasikan sendiri metode-metode yang telah dilakukan pada praktikum sebelum-sebelumnya. Praktikkan diminta untuk membuat suatu proyek perancangan yang menggunakan aplikasi VHDL, FPGA , dan VGA. Pada praktikum ini saya memilih untuk membuat suatu tampilan seperti “snake” namun lebih sederhana. Ada kotak yang dapat digerakkan dengan switch FPGA, apabila kotak tersebut menyentuh batas maka akan kembali ke koordinat awal. Dan apabila program menyentuh area “orange” maka kotak akan berubah menjadi abu-abu, apabila keluar area tersebut kotak akan kembali bewarna kuning. Diharapkan dengan proyek ini, praktikum sistem digital yang telah dilakukan dapat teraplikasikan. Kata kunci: LCD, VGA, FPGA 1. PENDAHULUAN Praktikum modul 6 mengenai “ Proyek Perancangan Rangkaian Digital” bertujuan : Menspesifikasikan suatu sistem digital sederhana Membagi sistem menjadi satu atau lebih jalur data dan kendali Mendesain jalur data untuk sistem Mendesain kendali untuk sistem Mengintegrasikan jalur data dan kendali ke dalam sistem secara keseluruhan Melakukan tes menyeluruh terhadap sistem Mengimplementasikan sistem digital menggunalan FPGA dan komponen tambahan yang diperlukan Menguji dan menganalisa sistem yang sudah dibangun 2. DASAR TEORI Berikut ini adalah beberapa dasar teori yang digunakan dalam percobaan modul 6 yang sama dengan percobaan modul 5 yakni : Video Graphics Array (VGA) masih menjadi interface yang popular untuk sebuah tampilan. VGA interface ini masih banyak ditemukan di beberapa device sekarang, misalnya layar LCDdan proyektor. VGA interface ini terdapat juga di board altera yang kita gunakan saat ini. Interface ke VGA menggunakan 2 jenis sinyal, yaitu : sinyal warna (Merah,Hijau,Biru) Dan sinyal sinkron (horizontal dan vertical). Berikut penjelasnnya : Horizontal Sync (TTL level) Sinyal ini akan aktif pada range piksel kolom 0 sampai 639. Sehingga kalau siyal ini tidak aktif, yang terjadi adalah pergantian baris. Vertical Sync ( TTL Level) Sinyal ini akan aktif pada range piksel baris 0 sampai dengan 479. Sehingga kalau sinyal ini tidak aktif yang terjadi adalah Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 1

Upload: vanlien

Post on 07-Jul-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: labdasar.ee.itb.ac.idlabdasar.ee.itb.ac.id/lab/EL2102 - Sistem Digital/2012... · Web viewDan apabila program menyentuh area “orange” maka kotak akan berubah menjadi abu-abu,

MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL

Michael Aditya (13211066)Asisten: Kiki Wirianto

Tanggal Percobaan:5/12/2012EL2195-Praktikum Sistem Digital

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

AbstrakPada modul 6 “ Proyek Perancangan Rangkaian Digitial “ praktikkan ditugaskan untuk mengaplikasikan sendiri metode-metode yang telah dilakukan pada praktikum sebelum-sebelumnya. Praktikkan diminta untuk membuat suatu proyek perancangan yang menggunakan aplikasi VHDL, FPGA , dan VGA. Pada praktikum ini saya memilih untuk membuat suatu tampilan seperti “snake” namun lebih sederhana. Ada kotak yang dapat digerakkan dengan switch FPGA, apabila kotak tersebut menyentuh batas maka akan kembali ke koordinat awal. Dan apabila program menyentuh area “orange” maka kotak akan berubah menjadi abu-abu, apabila keluar area tersebut kotak akan kembali bewarna kuning. Diharapkan dengan proyek ini, praktikum sistem digital yang telah dilakukan dapat teraplikasikan.Kata kunci: LCD, VGA, FPGA

1. PENDAHULUAN Praktikum modul 6 mengenai “ Proyek Perancangan Rangkaian Digital” bertujuan :

Menspesifikasikan suatu sistem digital sederhana

Membagi sistem menjadi satu atau lebih jalur data dan kendali

Mendesain jalur data untuk sistem Mendesain kendali untuk sistem Mengintegrasikan jalur data dan

kendali ke dalam sistem secara keseluruhan

Melakukan tes menyeluruh terhadap sistem

Mengimplementasikan sistem digital menggunalan FPGA dan komponen tambahan yang diperlukan

Menguji dan menganalisa sistem yang sudah dibangun

2. DASAR TEORI

Berikut ini adalah beberapa dasar teori yang digunakan dalam percobaan modul 6 yang sama dengan percobaan modul 5 yakni :

Video Graphics Array (VGA) masih menjadi interface yang popular untuk sebuah tampilan. VGA interface ini masih banyak ditemukan di beberapa device sekarang, misalnya layar LCDdan proyektor. VGA interface ini terdapat juga di board altera yang kita gunakan saat ini.

Interface ke VGA menggunakan 2 jenis sinyal, yaitu : sinyal warna (Merah,Hijau,Biru)

Dan sinyal sinkron (horizontal dan vertical). Berikut penjelasnnya :

Horizontal Sync (TTL level)

Sinyal ini akan aktif pada range piksel kolom 0 sampai 639. Sehingga kalau siyal ini tidak aktif, yang terjadi adalah pergantian baris.

Vertical Sync ( TTL Level)

Sinyal ini akan aktif pada range piksel baris 0 sampai dengan 479. Sehingga kalau sinyal ini tidak aktif yang terjadi adalah pergantian layar. Atau kembali ke baris pertama.

Sinyal RGB (Analog 3 pin : 0,7-1 V)

Sinyal ini mempresentasikan intensitas untuk masing-masing komponen warna merah hijau, dan biru untuk setiap pixel yang saat itu aktif. Sehingga yang terjadi ketiga sinyal ini berubah-ubah sesuai pixel yang sedang aktif dalam proses scanning (dari kiri ke kanan untuk setiap baris, selanjutnya dari baris paling atas sampai baris paling bawah).[1]

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB1

Page 2: labdasar.ee.itb.ac.idlabdasar.ee.itb.ac.id/lab/EL2102 - Sistem Digital/2012... · Web viewDan apabila program menyentuh area “orange” maka kotak akan berubah menjadi abu-abu,

3. METODOLOGI

3.1 KOMPONEN DAN ALAT PERCOBAAN1. Board FPGA tipe UP2 atau DE12. Catu daya + kabel dan konektor

tambahan serta kabel downloader3. Monitor LCD

3.2 CARA KERJA

4. HASIL DAN ANALISIS 4.1 Percobaan 6 : Pembuatan “Maze”

dan kotak sebagai moving object

Gambar hasil percobaan 6 part 1

Gambar hasil percobaan 6

Gambar kotak dapat berubah warna

Analisis :Pada percobaan ini ingin dibuat suatu proyek permainan seperti snake hanya saja lebih sederhana. Kita akan membuat kotak berwarna kuning (diubah warna dari merah) berukuran 50 x 50 pixels. Kotak merah ini dapat digerakkan dengan menggunakan push button pada FPGA (atas,bawah,kiri,kanan) selain itu kita juga dapat mengatur kecepatan dari gerak kotak tersebut. Apabila Switch ‘1’ dinyalakan maka kotak akan berjalan dengan kecepatan ‘3’ apabila switch’1’ off dan switch ‘2’ dinyalakan maka kotak akan berjalan dengan kecepatan ‘5’. Apabila switch ‘1’ dan switch’2 dinyalakan bersama-sama maka kecepatan kotak adalah ‘15’. (Dapat dilihat pada video nanti). Secara target proyek ini telah mencapai target yang diharapkan.

Dasar Logika dari proyek ini adalah, kita membuat kotak yang dapat diatur kecepatannya dan kita telah mengatur posisi awal kotak. Apabila kotak mencapai batas tertentu (bagian atas pixel ke 20, bawah pixel ke 459, kiri pixel ke 20, dan kanan pixel ke 619) maka kotak tersebut akan kembali ke posisi awalnya (100,150). Program ini terlihat sederhana, namun mempunyai beberapa keunikan, saat kotak tiba di area berwarna orange, maka kotak dapat berubah warna menjadi abu-abu. Apabila program ini dikembangkan dapat menjadi lebih indah dan lebih baik.

5. K esimpulanLaporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB

2

Gambar lah batas-batas yang menjadi "maze" dalam permainan ini,

dengan cara membuat program pada VHDL.

buatlah kotak yang berada di antara batas-batas berukuran 50x50

pixel.

buat lah suatu kotak dikoordinat tertentu

dan atur VHDL agar saat berada di zona tersebut

berubah warna.

program diatur agar apabila kotak mengenai batas akan kembali ke

koordinat awal.

FSM & VHDL beserta

modul VGAFPGA Display LCD

Page 3: labdasar.ee.itb.ac.idlabdasar.ee.itb.ac.id/lab/EL2102 - Sistem Digital/2012... · Web viewDan apabila program menyentuh area “orange” maka kotak akan berubah menjadi abu-abu,

VHDL dapat membuat proyek sederhana dan pengaturan logika dapat kita lakukan apda VHDL.

Sinyal-sinyal pada VGA adalah sinyal horizontal sync dan vertical sync sedangkan warna nya diatur oleh sinyal RGB.

VGA bekerja dengan sistem Razor Scanning yakni memeriksa dari bagian kiri atas hingga ke kanan bawah.

VGA merupakan output FPGA dengan tampilan yang lebih menarik dengan bantuan display LCD.

Daftar Pustaka[1] Mervin T. Hutabarat. 2012. Petunjuk

Praktikum Sistem Digital, Sekolah Teknik Elektro dan Informatika ITB, Bandung.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB3

Page 4: labdasar.ee.itb.ac.idlabdasar.ee.itb.ac.id/lab/EL2102 - Sistem Digital/2012... · Web viewDan apabila program menyentuh area “orange” maka kotak akan berubah menjadi abu-abu,

LAMPIRANVHDL PERCOBAAN 6

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; -- switch speed i_speed : IN STD_LOGIC_VECTOR(1 DOWNTO 0);

i_clk_20Hz : IN STD_LOGIC;i_up : IN STD_LOGIC;i_down : IN STD_LOGIC;i_right : IN STD_LOGIC;i_left : 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 IS

SIGNAL FLAG_V_MIN : INTEGER := 150;-- batas kotak kiriSIGNAL FLAG_V_MAX : INTEGER := 200;-- batas kotak kananSIGNAL FLAG_H_MIN : INTEGER := 150;-- batas kotak atasSIGNAL FLAG_H_MAX : INTEGER := 200;-- batas kotak bawah

CONSTANT R_TF_0 : INTEGER := 0; --batas awal merahCONSTANT R_TF_1 : INTEGER := 20;--batas akhir merah dan batas awal hitamCONSTANT R_TF_2 : INTEGER := 619;--batas akhir hitam dan batas awal merahCONSTANT R_TF_3 : INTEGER := 639;--batas akhir merahCONSTANT R_TF_4 : INTEGER := 210;CONSTANT R_TF_5 : INTEGER := 280;CONSTANT R_TF_6 : INTEGER := 250;

CONSTANT C_TF1_R : INTEGER := 0;CONSTANT C_TF1_L : INTEGER := 639;CONSTANT C_TF2_R : INTEGER := 0;CONSTANT C_TF3_R : INTEGER := 20;CONSTANT C_TF4_L : INTEGER := 459;CONSTANT C_TF5_R : INTEGER := 479;CONSTANT C_TF6_L : INTEGER := 275;CONSTANT C_TF6_R : INTEGER := 335;

SIGNAL M_TF1, M_TF2 : STD_LOGIC; SIGNAL K_TF1, K_TF2 : STD_LOGIC; SIGNAL H_TF1, H_TF2 : STD_LOGIC; SIGNAL grid : STD_LOGIC;

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB4

Page 5: labdasar.ee.itb.ac.idlabdasar.ee.itb.ac.id/lab/EL2102 - Sistem Digital/2012... · Web viewDan apabila program menyentuh area “orange” maka kotak akan berubah menjadi abu-abu,

SIGNAL Tambah : INTEGER; --Penambahan piksel tiap clock

COMPONENT clockdiv ISPORT ( CLK : IN STD_LOGIC;

DIVOUT : BUFFER STD_LOGIC);END COMPONENT;

SIGNAL FLAG : STD_LOGIC;BEGIN

PROCESS(i_pixel_row,i_pixel_column, i_M_US, i_K_US, i_H_US, i_M_BT, FLAG_H_MIN, FLAG_V_MIN , FLAG_H_MAX, FLAG_V_MAX, i_clk_20Hz)BEGIN

FLAG_V_MIN <= 150; --inisialisasi posisi kotak bergerak (tidak ada juga tidak apa-apa)FLAG_V_MAX <= 200;FLAG_H_MIN <= 150;FLAG_H_MAX <= 200;

IF (i_speed = 1) THEN –pengaturan kecepatanTambah <= 3; --Mode Cepat, tiap clock akan bertambah 3 piksel

ELSIF (i_speed = 2) THENTambah <= 5; --Mode Cepat, tiap clock akan bertambah 5 piksel

ELSIF (i_speed = 3) THEN Tambah <= 15; --Mode sangat Cepat, tiap clock akan bertambah 15 piksel

ELSE Tambah <= 1; --Mode Lambat, tiap clock akan bertambah 1 piksel

END IF;

--Atas dan Bawah IF (i_clk_20Hz'EVENT) AND (i_clk_20Hz='1') AND (i_down = '0') AND (i_up = '1') AND (i_left ='1') AND (i_right ='1') THEN --Bila Tombol Bawah ditekan

IF (FLAG_V_MIN >= R_TF_1) AND (FLAG_V_MAX <= R_TF_2) THEN --Kotak belum keluar dari bagian atas dan bawah layar

FLAG_V_MIN <= FLAG_V_MIN + Tambah; --Sisi atas kotak diturunkan sejauh Tambah

FLAG_V_MAX <= FLAG_V_MAX + Tambah; --Sisi bawah kotak diturunkan sejauh Tambah

ELSE --Kotak keluar dari bagian bagian bawah, kotak direset ke posisi awalFLAG_V_MIN <= 150;FLAG_V_MAX <= 200;

END IF;

ELSIF (i_clk_20Hz'EVENT) AND (i_clk_20Hz='1') AND (i_down = '1') AND (i_up = '0') AND (i_left ='1') AND (i_right ='1') THEN --Bila Tombol Atas ditekan

IF (FLAG_V_MIN >= R_TF_1) AND (FLAG_V_MAX<= R_TF_2) THEN --Kotak belum keluar dari bagian atas dan bawah layar

FLAG_V_MIN <= FLAG_V_MIN - Tambah; --Sisi atas kotak diturunkan sejauh Tambah

FLAG_V_MAX <= FLAG_V_MAX - Tambah; --Sisi bawah kotak diturunkan sejauh Tambah

ELSE --Kotak keluar dari bagian bagian bawah, kotak direset ke posisi awalFLAG_V_MIN <= 150;FLAG_V_MAX <= 200;

END IF;

ELSE --Tombol Atas dan Bawah tidak ditekan, Kotak DiamFLAG_V_MIN <= FLAG_V_MIN;

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB5

Page 6: labdasar.ee.itb.ac.idlabdasar.ee.itb.ac.id/lab/EL2102 - Sistem Digital/2012... · Web viewDan apabila program menyentuh area “orange” maka kotak akan berubah menjadi abu-abu,

FLAG_V_MAX <= FLAG_V_MAX;END IF;

--Kiri dan KananIF (i_clk_20Hz'EVENT) AND (i_clk_20Hz='1') AND (i_left = '1') AND (i_right = '0') AND (i_down = '1') AND (i_up = '1') THEN --Bila Tombol Kanan ditekan

IF (FLAG_H_MIN>= C_TF3_R) AND (FLAG_H_MAX <= C_TF4_L) THEN --Kotak belum keluar dari bagian kiri dan kanan layar

FLAG_H_MIN <=FLAG_H_MIN + Tambah; FLAG_H_MAX <= FLAG_H_MAX + Tambah; --Sisi kanan kotak digeser ke kanan

sejauh TambahELSE --Kotak keluar dari bagian kanan, kotak direset ke kiri

FLAG_H_MIN <= 150;FLAG_H_MAX <= 200;

END IF;

ELSIF (i_clk_20Hz'EVENT) AND (i_clk_20Hz='1') AND (i_left = '0') AND (i_down = '1') AND (i_down = '1') AND (i_up = '1')THEN --Bila Tombol Kiri ditekan

IF (FLAG_H_MIN >= C_TF3_R) AND (FLAG_H_MAX <= C_TF4_L) THEN --Kotak belum keluar dari bagian atas dan bawah layar

FLAG_H_MIN <= FLAG_H_MIN - Tambah; --Sisi kiri kotak digeser ke kiri sejauh Tambah

_H_MAX <= FLAG_H_MAX - Tambah; --Sisi kanan kotak digeser ke kiri sejauh Tambah

ELSE --Kotak keluar dari bagian kiri, kotak direset ke kananFLAG_H_MIN <= 150;FLAG_H_MAX <= 200;

END IF;ELSE --Tombol Kiri dan Kanan tidak ditekan, Kotak Diam

FLAG_H_MIN <= FLAG_H_MIN;FLAG_H_MAX <= FLAG_H_MAX;

END IF;

END PROCESS;

PROCESS(i_pixel_row,i_pixel_column) –pembuatan seluruh design gambar yang adaBEGIN

IF ((i_pixel_row >= FLAG_H_MIN) AND (i_pixel_row <= FLAG_H_MAX) AND (i_pixel_column >= FLAG_V_MIN) AND (i_pixel_column <= FLAG_V_MAX)) THEN

FLAG <= '1';ELSE

FLAG <= '0';END IF; 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;

IF ((i_pixel_row > C_TF4_L) AND (i_pixel_row < C_TF5_R) ) AND ((i_pixel_column >=

C_TF1_R) AND (i_pixel_column < C_TF1_L) ) THEN M_TF1 <= '1';ELSE M_TF2 <= '0';END IF;

IF ((i_pixel_row > R_TF_0) AND (i_pixel_row < C_TF4_L) ) AND ((i_pixel_column >=

C_TF1_R) AND (i_pixel_column < C_TF3_R) ) THEN M_TF1 <= '1';ELSE K_TF1 <= '0';END IF;

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB6

Page 7: labdasar.ee.itb.ac.idlabdasar.ee.itb.ac.id/lab/EL2102 - Sistem Digital/2012... · Web viewDan apabila program menyentuh area “orange” maka kotak akan berubah menjadi abu-abu,

IF ((i_pixel_row > R_TF_0) AND (i_pixel_row < C_TF4_L) ) AND ((i_pixel_column >= R_TF_2) AND (i_pixel_column < R_TF_3) ) THEN M_TF1 <= '1';

ELSE K_TF2 <= '0';END IF;

IF ((i_pixel_row > R_TF_4) AND (i_pixel_row < R_TF_6) ) AND ((i_pixel_column >= C_TF6_L) AND (i_pixel_column < C_TF6_R) ) THEN K_TF1 <= '1';

ELSE K_TF2 <= '0';END IF;

IF (M_TF1 = '1' ) THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";ELSIF (M_TF2 = '1' AND i_M_BT= '1' ) THEN o_red <= X"FF"; o_green <= X"00";

o_blue <= X"00";ELSIF (K_TF1 = '1' ) THEN o_red <= X"FF"; o_green <= X"DD"; o_blue <= X"00";ELSIF (K_TF2 = '1' AND i_K_BT= '1' ) THEN o_red <= X"FF"; o_green <= X"DD";

o_blue <= X"00";ELSIF (H_TF1 = '1' AND i_H_US= '1' ) THEN o_red <= X"00"; o_green <= X"66";

o_blue <= X"00";ELSIF (H_TF2 = '1' AND i_H_BT= '1' ) THEN o_red <= X"00"; o_green <= X"66";

o_blue <= X"00";ELSIF (M_TF1 = '1' AND i_M_US= '0' ) THEN o_red <= X"EE"; o_green <= X"EE";

o_blue <= X"EE";ELSIF (M_TF2 = '1' AND i_M_BT= '0' ) THEN o_red <= X"EE"; o_green <= X"EE";

o_blue <= X"EE";ELSIF (K_TF1 = '1' AND i_K_US= '0' ) THEN o_red <= X"EE"; o_green <= X"EE";

o_blue <= X"EE";ELSIF (K_TF2 = '1' AND i_K_BT= '0' ) THEN o_red <= X"EE"; o_green <= X"EE";

o_blue <= X"EE";ELSIF (H_TF1 = '1' AND i_H_US= '0' ) THEN o_red <= X"EE"; o_green <= X"EE";

o_blue <= X"EE";ELSIF (H_TF2 = '1' AND i_H_BT= '0' ) THEN o_red <= X"EE"; o_green <= X"EE";

o_blue <= X"EE";ELSIF (grid = '1') THEN o_red <= X"EE"; o_green <= X"EE"; o_blue <=

X"EE";

ELSIF (FLAG = '1') THEN IF (Tambah <= 1) Then

if ((FLAG_H_MIN >= R_TF_4) AND (FLAG_H_MAX <= R_TF_5)) AND((FLAG_V_MIN >= C_TF6_L) AND (FLAG_V_MAX <= C_TF6_R)) Then --apabila masuk area orange maka akan berubah warna

o_red <= X"EE";--abu-abuo_green <= X"EE";o_blue <= X"EE";

Elseo_red <= X"FF";--kuningo_green <= X"FF";o_blue <= X"00";

END IF; END IF;

ELSIF (FLAG ='0') THENo_red <= X"00";o_green <= X"00";o_blue <= X"00";

ELSE o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";END IF;

END PROCESS;END behavioral;

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB7