MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL

dokumen-dokumen yang mirip
MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL 2. STUDI PUSTAKA

PROYEK PERANCANGAN RANGKAIAN DIGITAL : THUNDERBURD TAIL LIGHTS. Mochammad Fadhli Zakiy, Rizki Satya Utami

2. STUDI PUSTAKA. Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB 1

BAB 3. Perancangan Sistem

MODUL VI PROYEK PERANCANGAN RANGKAIAN DIGITAL 2. STUDI PUSTAKA

MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL: STOPWATCH DIGITAL

Perancangan Aritmetic Logic Unit (ALU) pada FPGA

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 3 Stopwatch

Pengenalan FPGA oleh Iman Taufik Akbar

Percobaan IV PENGENALAN VHDL

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 4 Kalkulator 4-bit

MATERI PELATIHAN VHDL UNTUK SINTESIS

QUARTUS DAN CARA PENGGUNAANNYA

Pengenalan VHDL. [Pengenalan VHDL]

Lampu lalu lintas sederhana berbasis Field Programmable Gate Array (FPGA) menggunakan Finite State Machine

PERCOBAAN 3D : MERANCANG SEBUAH KALKULATOR SEDERHANA

Penerapan Graf dan Logika dalam Perancangan Rangkaian Digital dengan Studi Kasus Jam Digital

PERCOBAAN 4D : MERANCANG SEBUAH KALKULATOR UNTUK MELAKUKAN OPERASI SPESIFIK

DEKODER BINER KE DESIMAL BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD)

Read Only Memory (ROM) berbasis Field Programmable Gate Array (FPGA) menggunakan VHDL (VHSIC Hardware Description Language)

LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL MENGGUNAKAN ALL-11 UNIVERSAL PROGRAMMER

TUTORIAL. Tabel Kebenaran Full Adder : Cin B A Sum Cout

MODUL II Perancangan FPGA untuk Implementasi Rangkaian Sequential dan Kombinational

MULTIPLEKSER BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD)

BAB 3 PERANCANGAN SISTEM

BAB II SIMULATOR XILINX PADA RANGKAIAN DIGITAL SEDERHANA

BAB III ANALISA DAN PERANCANGAN

BAHASA PEMROGRAMAN VHDL

BAB 3 PERANCANGAN SISTEM. PID berbasiskan FPGA yang bekerja secara multiplexing untuk pemberian data set point

Sistem Pengaturan dan Pemantauan Kecepatan Putar Motor DC berbasis FPGA dan VHDL

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

BAB III METODOLOGI Analisis Kebutuhan Fungsi dan Kinerja Fungsi dan kinerja yang dibutuhkan dalam aplikasi ini adalah sebagai berikut:

ENTITY Entity adalah daftar dengan spesifikasi dari semua pin input dan output (port) dari sirkuit. Sintaks ditampilkan di bawah:

Percobaan 1 PENGENALAN INTERFACE PARALLEL DAN SEVEN SEGMENT LED DISPLAY

SITROTIKA TEKNIK SIPIL TEKNIK ELEKTRO TEKNIK INFORMATIKA. Volume 4, Nomor 1, Januari 2008 ISSN :

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB II Sintesis Rangkaian Sekuensial Pulse Mode

MODUL PELATIHAN MIKROKONTROLLER UNTUK PEMULA DI SMK N I BANTUL OLEH: TIM PENGABDIAN MASYARAKAT JURUSAN TEKNIK ELEKTRO

BAB 3 PERANCANGAN PROGRAM. objek, analisis blob, SMS service, dan video saving. Deteksi objek adalah proses untuk

BAB I PENDAHULUAN. digunakan untuk mengontrol dan bisa diprogram sesuai dengan kebutuhan, yang

BABIV ANALISA DAN PEMBAHASAN. pemberian input melalui keypad serta output dari sinyal R, G, B, Vs dan Hs.

TUGAS AKHIR JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI S U R A B A Y A 2011 GAGAP SURYO NEGORO NPM

PENGEMBANGAN PROTOTYPE SENSOR PARKIR 4 SISI BERBASIS MIKROKONTROLER

BAB III PERANCANGAN DAN REALISASI

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB 4 IMPLEMENTASI DAN EVALUASI

PENGEMBANGAN PETA INTERAKTIF TIGA DIMENSI JURUSAN TEKNIK ELEKTRO INSTITUT TEKNOLOGI SEPULUH NOPEMBER MENGGUNAKAN UNREAL ENGINE

Antarmuka PC Keyboard dengan DST-AVR

BAB III ANALISA DAN PERANCANGAN

1 Tujuan dan Sasaran. 2 Alat dan Bahan. 3 Dasar Teori. Praktikum Sistem Digital Lanjut Percobaan 3: Dekoder 3-ke-8 dan Demultiplekser 1-ke-8

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. Nama program yang hendak dikembangkan adalah Viola Jones Simulator. Tujuan dari

BAB III ANALISA DAN PERANCANGAN

PERCOBAAN IV RANGKAIAN LOGIKA SEKUENSIAL

PROGRAMMABLE LOGIC DEVICES

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour

BAB III ANALISA DAN PERANCANGAN

Buku Panduan LP Digital Poster 32

Percobaan 2. Membangun Logika Kombinasi dengan Transistor CMOS

BAB III ANALISA DAN PERANCANGAN

Gerbang logika ini akan dijelaskan lebih detil pada bagian 4. AND A B Y OR Y A B Y NOT AND NOT

BAB 3 PERANCANGAN SISTEM

SEM. 4 KOMUNIKASI DATA

BAB III ANALISIS DAN RANCANGAN PROGRAM

TUTORIAL PEMROGRAMAN PADA FPGA XILINX VIRTEX 5 ML506 BOARD

Delphi Cara membuka aplikasi Delphi 7. Start All Programs Borland Delphi 7 Delphi Perkenalan jendela Delphi 7. syahada.blogspot.

DAFTAR ISI LEMBAR PENGESAHAN SURAT PERNYATAAN ABSTRAK ABSTRACT KATA PENGANTAR DAFTAR TABEL DAFTAR GAMBAR

BAB IV HASIL DAN UJI COBA

BAB 3 ANALISIS DAN PERANCANGAN SISTEM PROGRAM APLIKASI HANDS RECOGNIZER

APLIKASI ARM 920T DAN SENSOR KOMPAS OS5000 UNTUK LUOPAN DIGITAL ABSTRAK

BAB III ANALISA DAN PERANCANGAN ALAT

BAB III PERANCANGAN SISTEM

BAB 3 PERANCANGAN DAN PEMBUATAN. Engine akan dirancang agar memenuhi syarat maintainability, reusability dan

BAB 3 PERANCANGAN PROGRAM. dari OOP (Object Oriented Programming) di mana dalam prosesnya, hal-hal

BAB 3 PERANCANGAN SISTEM

SIMULASI DAN ANALISIS ERROR KOMPUTASI FFT WINOGRAD 16-TITIK MENGGUNAKAN XILINX ISE 10.1I

BAB III ANALISIS DAN PERANCANGAN

PERTEMUAN II PEMOGRAMAN INPUT

MEDIA PEMBELAJARAN PROSES PENCERNAAN MAKANAN PADA TUBUH MANUSIA BERBASIS MULTIMEDIA

BAB III HASIL DAN UJI COBA

RANCANG BANGUN PAPAN IKLAN DOT MATRIX MENGGUNAKAN SMS BERBASIS MIKROKONTROLER

BAB III ANALISA DAN PERANCANGAN

BAB III PERANCANGAN ALAT. menjadi acuan dalam proses pembuatannya, sehingga kesalahan yang mungkin

BAB IV PEMBAHASAN DAN ANALISA PEMROGRAMAN PADA PLC DAN SOFTWARE WONDERWARE. 4.1 Membuat Program Dalam Bentuk Ladder Pada PLC LS Glofa

BAB III PERANCANGAN DAN PEMBUATAN

BAB 3 ANALISIS DAN PERANCANGAN. mengidentifikasi dan mengevaluasi kebutuhan-kebutuhan yang diharapkan

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

Jobsheet Praktikum REGISTER

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (KOMUNIKASI DATA)

BAB 3 PERANCANGAN SISTEM. ruangan yang menggunakan led matrix dan sensor PING))). Led matrix berfungsi

BAB III ANALISIS DAN PERANCANGAN

ANALOG TO DIGITAL CONVERTER

Pertemuan ke 5 BAB IV Sintesis Rangkaian Sekuensial (2) Deskripsi Manfaat Relevansi Learning Outcome Materi I. Rangkaian Memori Terbatas RAM dinamik

BAB III ANALISA MASALAH DAN PERANCANGAN

PERANCANGAN FILTER FIR MENGGUNAKAN SOFTWARE XILINX ISE 9.2i

UNSUR UTAMA PENGELOLAAN LABORATORIUM SOP PENGOPERASIAN ALAT KATEGORI 2. GPS U-Blok NEO 6M

BAB III ANALISA DAN PERANCANGAN

IMPLEMENTASI FIELD PROGRAMMABLE GATE ARRAY DALAM PERANCANGAN ARITHMETIC-LOGIC UNIT DAN SHIFTER

BAB III PERANCANGAN ALAT SIMULASI PEGENDALI LAMPU JARAK JAUH DAN DEKAT PADA KENDARAAN SECARA OTOMATIS

Transkripsi:

MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL Satria Indrawan Putra (18011034) Albhikautsar Dharma Kesuma (13511058) Asisten: Luqman Muh. Zagi (13208032) Tanggal Percobaan: 06/12/12 EL2195-Praktikum Sistem Digital Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB Abstrak Pada percobaan ini, dilakukan pembuatan proyek rancangan rangkaian digital, di mana praktikan membuat sebuah rangcangan rangkaian yang mencakup seluruh praktikum sebelum ini yang diimplementasikan dengan aplikasi dengan FPGA dan display LCD. Proyek yang dibuat oleh praktikan adalah game labirin. Kata kunci: LCD, VGA, FPGA 1. PENDAHULUAN Praktikum ini adalah proyek rancangan praktikan yang merupakan semacam program yang dijalankan dengan menggunakan board FPGA dan ditampilkan di display LCD. Yang dibuat oleh praktikan adalah sebuah game labirin, di mana pemain harus menggerakkan sebuah kotak dari garis start menuju garis finish dengan menggunakan tombol di board FPGA. Tujuan dari praktikum ini adalah untuk menspesifikasikan suatu sistem digital sederhana dan untuk mengalasi sisem yang sedan dikerjakan. 2. STUDI PUSTAKA 2.1. Pemilihan Proyek Standar Percobaan ini terdiri dari tahapan desain, implementasi, dan pengujian sistem yang dibuat oleh tim Anda. Diharapkan proyek Anda dapat selesai pada waktu yang ditentukan. Anda dapat menentukan sendiri proyek yang anda buat. Persyaratan proyek tersebut: 1. Menggunakan satu atau lebih interface yang ada di board: VGA, sound card (AUDIO CODEC), LCD, USB, koneksi serial, atau lainnya 2. Interaktif: mempunyai input, push button, mouse, keyboard, atau lainnya 3. Mempunyai bagian FSM 4. Sedikitnya terdiri dari 3 blok 2.2. Petunjuk Desain 1. Anda wajib menggunakan VHDL dalam penegerjaan tugas Anda. Disarankan menggunakan pendekatan struktural bukan behavioral. 2. Import pin assignment/buat pin assignment baru seperti percobaan sebelumnya untuk menspesifikasikan lokasi pin. 3. METODOLOGI Langkah-langkah yang dilakukan praktikan dalam mengerjakan proyek ini adalah:

1. Mencari data-data yang perlu untuk implementasi proyek ini, di antaranya adalah source codesource code dasar seperti display_vhd, vga_vhd, dan lainlain. 2. Membuat source code utama, yaitu TUBES.vhd, di mana statestate proyek dinyatakan di sini. State-nya mencakup: state saat pemain menekan tombol arah (kanan, kiri, atas, bawah), state saat kotak digerakkan melebihi batas labirin, dan state di mana game akan di-reset dan kotak kembali ke garis start. 3. Membuat souce code tambahan yaitu pointer.vhd yaitu sebagai kotak yang akan digerakkan dan labirin.vhd sebagai bentuk labirinnya. 4. Simulasi di lab, ternyata masih terdapat beberapa kesalahan pada kode yang kami buat, di mana pernyataan warna dari pointer.vhd dan labirin.vhd tidak bisa digunakan bersama, sehingga kami harus menggabung kode pointer dan labirin. Berikut kami lampirkan FSM (Finite State Machine) dari proyek yang kami kerjakan Dan juga ilustrasi dari blok diagram yang kamu gunakan dalam proyek kami 4. HASIL DAN ANALISIS Berikut ini adalah hasil implementasi proyek kami pada display LCD:

Spesifikasi game: Game ini dimainkan dengan menggunakan tombol di FPGA. Tombol yang digunakan adalah KEY0 sebagai arah kanan, KEY1 sebagai arah bawah, KEY2 sebagai arah atas, dan KEY3 sebagai arah kiri. Kotak harus digerakkan dari garis start di tengah menuju garis finish di pojok kiri bawah tanpa melebihi batas dari labirin. Apabila kotak digerakkan melebihi batas labirin, game akan me-reset dan kotak kembali pada posisi semula yaitu di garis start. Apabila kotak berhasil digerakkan menuju garis finish, keadaannya sama seperti apabila kotak digerakkan melewati batas labirin, yaitu game reset. Ada enam buah state dari proyek yang kami buat, berikut akan kami jelaskan bagaimana keberjalanan dalam state tersebut. State 1 (S1) adalah state dimana kotak dalam keadaan diam menunggu untuk masukan dari pengguna yang nantinya akan menentukan kemana kotak akan begerak. State 2 (S2). State ini akan menentukan apakah kotak akan bergerak ke kanan atau akan melebihi dari labirin yang sudah ditentukan. Apabila kotak masih dapat bergerkan maka akan kembali ke (S1) namun apabila kotak melewati batas labirin, permainan ini akan masuk ke state 6 (S6). State 3 (S3). State ini akan menentukan apakah kotak akan bergerak ke kiri atau akan melebihi dari labirin yang sudah ditentukan. Apabila kotak masih dapat bergerkan maka akan kembali ke (S1) namun apabila kotak melewati batas labirin, permainan ini akan masuk ke state 6 (S6). State (S4). State ini akan menentukan apakah kotak akan bergerak ke atas atau akan melebihi dari labirin yang sudah ditentukan. Apabila kotak masih dapat bergerkan maka akan kembali ke (S1) namun apabila kotak melewati batas labirin, permainan ini akan masuk ke state 6 (S6). State 5 (S5). State ini akan menentukan apakah kotak akan bergerak ke bawahatau akan melebihi dari labirin yang sudah ditentukan. Apabila kotak masih dapat bergerkan maka akan kembali ke (S1) namun apabila kotak melewati batas labirin, permainan ini akan masuk ke state 6 (S6). State 6 (S6) adalah state dimana kotak sudah melewati batas dari labirin. Pada state 6 ini permainan akan direset dan akan dikembalikan pada posisi awal kotak diletakan. Keseluruan state akan kembali ke state 1 untuk menunggu masukan dari user. Dalam pembuatan labirin tersebut digunakan sebuah file yang sudah kami buat yang bernama tubes.vhd. File ini secara garis besar sama dengan color_rom_vhdl.vhd yang digunakan pada praktikum sebelumnya yang berguna untuk membuat batasanbatasan dari labirin yang akan dibuat. Digunakan pula clockdiv.vhd yang berguna untuk membuat timing sehingga kotak dapat bergerak. Untuk desain labirin, hasil sudah sesuai dengan spesifikasi yang diharapkan, namun penggerakkan kotak tidak berhasil, sehingga pe-reset-an game saat kotak digerakkan melewati batas labirin dan kondisi finish tidak diketahui. Pengnujian untuk untuk mengecek keberhasilan proyek kami adalah dengan berhasilnya menjalankan kotak dari garis start

sampai garis finish dan kotak keluar dari batas yang sudah ditentukan untuk mengetes keberhasilan reset dari proyek kami. Hasil dari proyek kami tidak sesuai dengan spec yang kami inginkan karena permainan kami tidak dapat berlangsung dengan baik karena kotak tidak dapat bergerak dari tempat yang dimaksud. Analisis: Desain labirin dan posisi kotak sukses dimplementasikan di display LCD. Sayangnya, kotak tidak dapat digerakkan. Analisis kami adalah, sepertinya terdapat kesalahan kode dalam state-nya, yaitu state saat pemain menekan tombol arah pada FPGA. Selanjutnya, state ketika kotak digerakkan melebihi batas labirin juga tidak bisa dilihat berjalan atau tidak karena kotak yang tidak bisa digerakkan tersebut. Kesalahan pada pendesaianan proyek kami pula terjadi kesalahan dalam pemanggilan kode-kode portmap yang menyebabkan kotak tidak dapat bergerak sebagaimana mustinya. Dalam proyek besar ini, kami tidak dapat membuat hasil simulasi maupun video tentang bagaimana permainan ini berlangsung dikarenakan hal yang sudah disebutkan diatas. Pembagian tugas dalam pembuatan proyek ini adalah bahwa kami berdua masingmasing saling membantu dalam pengerjaan kode vhdl, pembuatan laporan, maupun pada saat perbaikan-perbaikan kode vhdl pada saat praktikum pertama dan kedua dalam pengerjaan proyek ini. Tidak ada seseorang yang lebih berat bekerja. 5. KESIMPULAN Mengassign portmap adalah hal yang sangat penting dalam pengkodean dan pengimplementasian pada FPGA. Proyek kami sebagian besar salah dikarenakan kegagalan dalam pemanggilan variabelvariabel yang digunakan dalam pengkodean vhdl ini. Jadi pada sampai halnya bahwa proyek kami tidak dapat dijalankan dengan sebagaimana mustinya, sehingga permainan ini tidak dapat dijalankan. DAFTAR PUSTAKA [1] Mervin T. Hutabarat, Praktikum Sistem Digital EL-2195, Laboratorium Dasar Teknik Elektro, Bandung, 2012.

tubes.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY tubes IS PORT( CLOCK_50 : IN STD_LOGIC; KEY : IN STD_LOGIC_VECTOR( 3 DOWNTO 0 ); i_pixel_rowkotak : INOUT STD_LOGIC_VECTOR( 9 DOWNTO 0 ); i_pixel_columnkotak : INOUT 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 )); END tubes; ARCHITECTURE behavioral OF tubes IS TYPE executionstage IS (s1,s2,s3,s4,s5,s6); SIGNAL state : executionstage; SIGNAL BA,BB,BL,BR : STD_LOGIC_VECTOR( 9 DOWNTO 0 ); SIGNAL red_color : STD_LOGIC_VECTOR( 7 DOWNTO 0 ); SIGNAL green_color : STD_LOGIC_VECTOR( 7 DOWNTO 0 ); SIGNAL blue_color : STD_LOGIC_VECTOR( 7 DOWNTO 0 ); SIGNAL BA2, BB2, BL2, BR2 : STD_LOGIC_VECTOR( 9 DOWNTO 0 ); SIGNAL x : STD_LOGIC_VECTOR( 9 DOWNTO 0 ); SIGNAL y : STD_LOGIC_VECTOR( 9 DOWNTO 0 ); SIGNAL DIV : bit; COMPONENT display_vhd IS PORT(

i_clk : 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; COMPONENT Labirin IS PORT( i_clk : IN STD_LOGIC; BA,BB,BL,BR : IN STD_LOGIC_VECTOR(9 DOWNTO 0); i_pixel_column : IN STD_LOGIC_VECTOR( 9 DOWNTO 0 ); i_pixel_rowkotak : IN STD_LOGIC_VECTOR( 9 DOWNTO 0 ); i_pixel_columnkotak : 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 COMPONENT; COMPONENT CLOCKDIV IS PORT( CLK: IN std_logic; DIVOUT: buffer BIT); END COMPONENT; BEGIN TEST : CLOCKDIV PORT MAP (DIVOUT => DIV, CLK => CLOCK_50); PROCESS (KEY(3), KEY(2), KEY(1), KEY(0), state) --3 kanan 2 kiri 1 atas 0 bawah BEGIN if (DIV'event and DIV = '1') then --current state case state is when s1 => IF (KEY(3)='0' AND KEY(2)='1' AND KEY(1)='1' AND KEY(0)='1') THEN state <= s2; --kanan

elsif (KEY(3)='1' AND KEY(2)='0' AND KEY(1)='1' AND KEY(0)='1') THEN state <= s3; --kiri elsif (KEY(3)='1' AND KEY(2)='1' AND KEY(1)='0' AND KEY(0)='1') THEN state <= s4; --atas elsif (KEY(3)='1' AND KEY(2)='1' AND KEY(1)='1' AND KEY(0)='0') THEN state <= s5; --bawah END IF; when s2 =>IF (((i_pixel_columnkotak>= 10) AND (i_pixel_columnkotak<= 30) -- kanan OR ((i_pixel_columnkotak>= 10) AND (i_pixel_columnkotak<= 260) OR ((i_pixel_columnkotak>= 610) AND (i_pixel_columnkotak<= 630) OR ((i_pixel_columnkotak>= 400) AND (i_pixel_columnkotak<= 630) OR ((i_pixel_columnkotak>= 450) AND (i_pixel_rowkotak<= 390)) (i_pixel_columnkotak<= 150) OR ((i_pixel_columnkotak>= 290) AND (i_pixel_columnkotak<= 350) AND (i_pixel_rowkotak>= 240) AND (i_pixel_rowkotak<= 350))

(i_pixel_rowkotak<= 190)) (i_pixel_rowkotak<= 450)) (i_pixel_columnkotak<= 470) (i_pixel_columnkotak<= 280) (i_pixel_columnkotak<= 320) (i_pixel_rowkotak<= 50)) (i_pixel_columnkotak<= 360) (i_pixel_columnkotak<= 360) (i_pixel_rowkotak<= 80)) (i_pixel_columnkotak<= 340) (i_pixel_rowkotak<= 80)) (i_pixel_columnkotak<= 280) (i_pixel_rowkotak<= 120)) OR ((i_pixel_columnkotak>= 290) AND AND (i_pixel_rowkotak>= 330) AND AND (i_pixel_rowkotak>= 450) AND --likalikukehidupan OR((i_pixel_columnkotak>= 260) AND AND (i_pixel_rowkotak>= 30) AND OR ((i_pixel_columnkotak>= 300) AND OR ((i_pixel_columnkotak>= 340) AND AND (i_pixel_rowkotak>= 30) AND AND (i_pixel_rowkotak>= 60) AND AND (i_pixel_rowkotak>= 80) AND OR ((i_pixel_columnkotak>= 280) AND

(i_pixel_columnkotak<= 400) AND (i_pixel_rowkotak>= 100) AND (i_pixel_rowkotak<= 120)) OR ((i_pixel_columnkotak>= 380) AND (i_pixel_columnkotak<= 400) (i_pixel_rowkotak<= 100))) THEN i_pixel_columnkotak <= i_pixel_columnkotak+ 1; state <= s1; ELSE state <= s6; END IF; when s3 => IF (((i_pixel_columnkotak>= 10) AND (i_pixel_columnkotak<= 30) --kiri OR ((i_pixel_columnkotak>= 10) AND (i_pixel_columnkotak<= 260) OR ((i_pixel_columnkotak>= 610) AND (i_pixel_columnkotak<= 630) OR ((i_pixel_columnkotak>= 400) AND (i_pixel_columnkotak<= 630) OR ((i_pixel_columnkotak>= 450) AND (i_pixel_rowkotak<= 390)) (i_pixel_columnkotak<= 150) OR ((i_pixel_columnkotak>= 290) AND (i_pixel_columnkotak<= 350) AND (i_pixel_rowkotak>= 240) AND

(i_pixel_rowkotak<= 350)) (i_pixel_rowkotak<= 190)) (i_pixel_rowkotak<= 450)) (i_pixel_columnkotak<= 470) (i_pixel_columnkotak<= 280) (i_pixel_columnkotak<= 320) (i_pixel_rowkotak<= 50)) (i_pixel_columnkotak<= 360) (i_pixel_columnkotak<= 360) (i_pixel_rowkotak<= 80)) (i_pixel_columnkotak<= 340) (i_pixel_rowkotak<= 80)) (i_pixel_columnkotak<= 280) (i_pixel_rowkotak<= 120)) OR ((i_pixel_columnkotak>= 290) AND AND (i_pixel_rowkotak>= 330) AND AND (i_pixel_rowkotak>= 450) AND --likalikukehidupan OR((i_pixel_columnkotak>= 260) AND AND (i_pixel_rowkotak>= 30) AND OR ((i_pixel_columnkotak>= 300) AND OR ((i_pixel_columnkotak>= 340) AND AND (i_pixel_rowkotak>= 30) AND AND (i_pixel_rowkotak>= 60) AND AND (i_pixel_rowkotak>= 80) AND

OR ((i_pixel_columnkotak>= 280) AND (i_pixel_columnkotak<= 400) AND (i_pixel_rowkotak>= 100) AND (i_pixel_rowkotak<= 120)) OR ((i_pixel_columnkotak>= 380) AND (i_pixel_columnkotak<= 400) (i_pixel_rowkotak<= 100))) THEN i_pixel_columnkotak<= i_pixel_columnkotak- 1; state <= s1; ELSE state <= s6; END IF; when s4 => IF (((i_pixel_columnkotak>= 10) AND (i_pixel_columnkotak<= 30) --atas OR ((i_pixel_columnkotak>= 10) AND (i_pixel_columnkotak<= 260) OR ((i_pixel_columnkotak>= 610) AND (i_pixel_columnkotak<= 630) OR ((i_pixel_columnkotak>= 400) AND (i_pixel_columnkotak<= 630) OR ((i_pixel_columnkotak>= 450) AND (i_pixel_rowkotak<= 390)) (i_pixel_columnkotak<= 150) OR ((i_pixel_columnkotak>= 290) AND (i_pixel_columnkotak<= 350)

(i_pixel_rowkotak<= 350)) (i_pixel_rowkotak<= 190)) (i_pixel_rowkotak<= 450)) (i_pixel_columnkotak<= 470) (i_pixel_columnkotak<= 280) (i_pixel_columnkotak<= 320) (i_pixel_rowkotak<= 50)) (i_pixel_columnkotak<= 360) (i_pixel_columnkotak<= 360) (i_pixel_rowkotak<= 80)) (i_pixel_columnkotak<= 340) (i_pixel_rowkotak<= 80)) (i_pixel_columnkotak<= 280) AND (i_pixel_rowkotak>= 240) AND OR ((i_pixel_columnkotak>= 290) AND AND (i_pixel_rowkotak>= 330) AND AND (i_pixel_rowkotak>= 450) AND --likalikukehidupan OR((i_pixel_columnkotak>= 260) AND AND (i_pixel_rowkotak>= 30) AND OR ((i_pixel_columnkotak>= 300) AND OR ((i_pixel_columnkotak>= 340) AND AND (i_pixel_rowkotak>= 30) AND AND (i_pixel_rowkotak>= 60) AND AND (i_pixel_rowkotak>= 80) AND

(i_pixel_rowkotak<= 120)) OR ((i_pixel_columnkotak>= 280) AND (i_pixel_columnkotak<= 400) AND (i_pixel_rowkotak>= 100) AND (i_pixel_rowkotak<= 120)) OR ((i_pixel_columnkotak>= 380) AND (i_pixel_columnkotak<= 400) (i_pixel_rowkotak<= 100))) THEN i_pixel_rowkotak<= i_pixel_rowkotak- 1; state <= s1; ELSE state <= s6; END IF; when s5 => IF (((i_pixel_columnkotak>= 10) AND (i_pixel_columnkotak<= 30) -- bawah OR ((i_pixel_columnkotak>= 10) AND (i_pixel_columnkotak<= 260) OR ((i_pixel_columnkotak>= 610) AND (i_pixel_columnkotak<= 630) OR ((i_pixel_columnkotak>= 400) AND (i_pixel_columnkotak<= 630) OR ((i_pixel_columnkotak>= 450) AND (i_pixel_rowkotak<= 390)) (i_pixel_columnkotak<= 150)

(i_pixel_columnkotak<= 350) (i_pixel_rowkotak<= 350)) (i_pixel_rowkotak<= 190)) (i_pixel_rowkotak<= 450)) (i_pixel_columnkotak<= 470) (i_pixel_columnkotak<= 280) (i_pixel_columnkotak<= 320) (i_pixel_rowkotak<= 50)) (i_pixel_columnkotak<= 360) (i_pixel_columnkotak<= 360) (i_pixel_rowkotak<= 80)) (i_pixel_columnkotak<= 340) (i_pixel_rowkotak<= 80)) OR ((i_pixel_columnkotak>= 290) AND AND (i_pixel_rowkotak>= 240) AND OR ((i_pixel_columnkotak>= 290) AND AND (i_pixel_rowkotak>= 330) AND AND (i_pixel_rowkotak>= 450) AND --likalikukehidupan OR((i_pixel_columnkotak>= 260) AND AND (i_pixel_rowkotak>= 30) AND OR ((i_pixel_columnkotak>= 300) AND OR ((i_pixel_columnkotak>= 340) AND AND (i_pixel_rowkotak>= 30) AND AND (i_pixel_rowkotak>= 60) AND

(i_pixel_columnkotak<= 280) AND (i_pixel_rowkotak>= 80) AND (i_pixel_rowkotak<= 120)) OR ((i_pixel_columnkotak>= 280) AND (i_pixel_columnkotak<= 400) AND (i_pixel_rowkotak>= 100) AND (i_pixel_rowkotak<= 120)) OR ((i_pixel_columnkotak>= 380) AND (i_pixel_columnkotak<= 400) (i_pixel_rowkotak<= 100))) THEN i_pixel_rowkotak<= i_pixel_rowkotak+ 1; state <= s1; ELSE state <= s6; END IF; when s6 => i_pixel_columnkotak<= "0000110000"; i_pixel_rowkotak<= "0000110000"; state <= s1; end case; END IF; END PROCESS; PROCESS (i_pixel_columnkotak, i_pixel_rowkotak) BEGIN BA2 <= i_pixel_columnkotak; BB2 <= i_pixel_columnkotak + 10; BL2 <= i_pixel_rowkotak; BR2 <= i_pixel_rowkotak + 10; END PROCESS; module_vga : display_vhd PORT MAP ( i_clk => CLOCK_50, VGA_R => VGA_R, VGA_G => VGA_G,

VGA_B VGA_HS VGA_VS VGA_CLK VGA_BLANK ); => VGA_B, => VGA_HS, => VGA_VS, => VGA_CLK, => VGA_BLANK color_rom0 : Labirin PORT MAP ( i_clk => CLOCK_50, i_pixel_rowkotak => i_pixel_rowkotak, i_pixel_columnkotak => i_pixel_columnkotak, BA => BA2, BB => BB2, BL => BL2, BR => BR2, o_red => red_color, o_green => green_color, o_blue => blue_color); clock0 : clockdiv port map ( clk => CLOCK_50, divout => div ); END behavioral;