Anda di halaman 1dari 23

Percobaan VI b

Proyek Perancangan Rangkaian Digital

Game Avoider
DWI SAPUTRI (13117031)
Asisten : Diyah Widiyasari (13116126)
Tanggal Percobaan : 17/11/2018
EL2104 Praktikum Sistem Digital
Laboratorium Teknik Elektro
Institut Teknologi Sumatera

Abstrak—Pada percobaan proyek perancangan rangkaian I. PENDAHULUAN


digital ini, kami merancang proyek rangkaian digital angkaian digital telah menjadi bagian dari kehidupan
dalam bentukgame. Praktikan menggunakan FPGA
sebagai devais untuk implementasi, dan juga VGA port
pada FPGA untuk dihubungkan dengan layar LCD
R manusia. Di dalam peralatan elektronik manapun tidak
dapat terlepas dari rangkaian digital. Salah satu tipe
rangkaian digital yang menarik Untuk dibahas adalah
monitor rangkaian digital sekuensial. Berbeda dengan rangkaian
Pada tugas praktikum kali ini, kami menggunakan kombinasional, rangkaian digital memiliki memori yang
software Quartus II untuk mendesain rangkaian, dan mengingat statenya, sehingga state setelahnya tidak hanya
kemudian mengimplementasikan hasil tersebut ke dalam dipengaruhi oleh input tetapi oleh state saat itu dari rangkaian
board DE1. Kami juga mencoba mengimplementasikan itu. Kelebihan dari rangkaian sekuensial yaitu kita bisa
board DE-1 dengan output monitor LCD. Percobaan merancang sebuah rangkaian yang interaktif, dimana
dimulai dari pembuatan spesifikasi sistem yang akan
dibuat (judul, deskripsi, dan input output). Selanjutnya rangkaian tersebut mempunyai interface dengan pengguna
dilakukan pendesainan sistem dengan blok diagram, state semacam permainan.
diagram, dan kode VHDL. Setelah proses desain selesai, Perancangan model interface digital dalam bidang apapun
desain tersebut diuji fungsi rangkaiannya dengan simulasi seperti advertising, game, hingga e-Learning sangatlah umum
dan compilasi, pada bagian ini juga dilakukan tes digunakan. Semakin menarik kemasan yang disajikan,
menyeluruh dan debugging sistem. Setelah itu dilakukan semakin ramailah konsumen atau pengguna yang
implementasi langsung pada board FPGA menggunakan. Untuk itu, melalui praktikum ini, praktikan
Proyek perancangan rangkaian digital yang kami buat diharapkan dapat memulai langkah awal dalam merancang
adalah sebuah game Avioder. Cara kerja game ini adalah sebuah interface rangkaian digital dengan memanipulasi
sebuah kotak sebagai player dengan perintah menghindar source code color rom dari file VGA yang akan ditampilkan
dari tembok – tembok penghalang, dimana saat player ke LCD screen.
menabrak suatu tembok maka permainan akan diulang
dari awal, dan ketika player berhasil melewati 10 tembok Setelah praktikum-praktikum yang telah dilakukan, kita
penghalang maka player akan naik level dengan ditandai telah mengetahui bagaimana melakukan perancangan
bertambahnya kecepatan player, permainan ini terdiri rangkaian digital dengan pendekatan VHDL dan skematik
dari 5 tingkatan level. serta mengimplementasikannya pada FPGA, pembuatan FSM
dengan menggunakan FPGA, dan pembuatan VGA untuk
Kata Kunci—FPGA ALTERA DE 1, Game Avoider, VHDL,
tampilan ke layar LCD. Dan kita juga mengetahui bahwa pada
VGA Driver.
dasarnya, rangkaian digital memiliki banyak manfaat dalam
kehidupan manusia. Misalnya, kendali lampu merah di
persimpangan jalan raya, lampu sen pada mobil, jam digital,
bahkan game sederhana sekalipun.
Rumusan masalah pada percobaan ini yaitu bagaimana
rancangan pembuatan game Avoider berbasis bahasa
pemrograman VHDL dan FSM, bagaimana desain interface
game yang dirancang, dan bagaimana cara kerja game secara
B. Board ALTERA DE 1
keseluruhan.

Berdasarkan hal – hal di atas maka dilakukan percobaan


dengan judul “ Proyek Perancangan Rangkaian Digital Game
Avoider”. Tujuan dari percobaan ini adalah dapat
merancangan pembuatan game Avoider berbasis bahasa
pemrograman VHDL dan FSM, dapat mendesain interface
game yang dirancang, dan dapat merancang dan mengetahui
cara kerja game secara keseluruhan.

II. LANDASAN TEORETIS


A. FPGA
Field-Programmable Gate Array (FPGA) merupakan
sebuah IC digital yang sering digunakan untuk
mengimplementasikan rangkaian digital. FPGA berbentuk
komponen elektronika dan semikonduktor yang terdiri dari
komponen gerbang terprogram (programable logic) dan
sambungan terprogram (interkoneksi). Komponen gerbang Gambar 1. Papan ALTERA DE 1
terprogram yang dimiliki meliputi jenis gerbang logika biasa
(AND, OR, dan NOT) maupun jenis fungsi matematis dan
Hardware yang tersedia dalam papan ALTERA DE1
kombinatorik yang lebih kompleks, seperti decoder, adder,
yaitu:
subtractor, multiplier dan yang lainnya. Blok-blok komponen
 Altera Cyclone® II 2C20 FPGA device
di dalam FPGA bisa juga mengandung elemen memori
 Altera Serial Configuration device – EPCS4
(register) mulai dari flip-flop sampai pada RAM (Random
Access Memory). FPGA sangat sesuai untuk pemrosesan  USB Blaster (on board) for programming and user API
komputasi dari algoritama integrasi numerik. Sifat FPGA control; both JTAG and Active Serial
adalah sebagai berikut.  (AS) programming modes are supported
 512-Kbyte SRAM
1. Dapat di program berkali-kali (record).  8-Mbyte SDRAM
2. Bersifat volatile (tergantung catudaya).  4-Mbyte Flash memory
3. Mampu mengimplementasikan logic circuit, instant  4 pushbutton switches
manufacturing, very low cost prototype.  10 toggle switches
4. Dikonfigurasi oleh End User.  10 red user LEDs
5. Tersedia solusi untuk mendukung chip costumized  8 green user LEDs
VLSI (Very Large Scale Integration).  50-MHz oscillator, 27-MHz oscillator and 24-MHz
FPGA ini sendiri juga merupakan IC tipe HDL (Hardware oscillator for clock sources
Description Language) yang mana pemakai dapat mendasain  24-bit CD-quality audio CODEC with line-in, line-out,
hardware sesuai dengan yang diinginkan di dalam IC FPGA. and microphone-in jacks
Sedangkan perkembangan FPGA pada saat ini berlangsung  VGA DAC (4-bit resistor network) with VGA-out
dengan cepat dan dewasa ini terdapat bermacam- macam connector
FPGA dengan kebutuhan perancangan dan perangkat  RS-232 transceiver and 9-pin connector
perancangan (designtools) yang berbeda. Altera merupakan  Two 40-pin Expansion Headers with resistor protection
salah satu perusahaan yang memproduksi FPGA disamping
 Powered by either a 7.5V DC adapter or a USB cable
perusahan lain juga yang memproduksi FPGA seperti ACTEL,
Xilinx, dan PLESSE Semiconductor.
C. Software Quartus rangkaian yang ingin dibuat, entity juga berisi parameter
Altera Quartus II adalah perangkat lunak desain perangkat yang akan digunakan didalam desain.
logika terprogram yang diproduksi oleh Altera. Quartus II 3. Architecture
memungkinkan analisis dan sintesis desain HDL, yang Architecture merupakan deskripsi kerja dari sistem/entity
memungkinkan pengembang untuk mengkompilasi desain yang akan kita rancang. Pada architecture terdapat satu set
mereka, melakukan analisis waktu, memeriksa diagram RTL , komponen yang saling berhubungan.
mensimulasikan reaksi desain terhadap rangsangan yang a. Process merupakan bagian dari architecture. Didalam
berbeda, dan mengkonfigurasi perangkat target dengan architecture bisa terdapat satu atau lebih proses yang saling
programmer. Quartus mencakup implementasi VHDL dan independen atau saling berhubungan.
Verilog untuk deskripsi perangkat keras, pengeditan visual b.Configuration digunakan untuk mendeklarasikan
rangkaian logika, dan simulasi gelombang vektor. kumpulan desain entity tertentu sebagai komponen instan,
component instances (sebagai referensi unik komponen
D. Bahasa VHDL
yang berlevel rendah) pada sebuah architecture tertentu
VHDL (VHSIC Hardware Description Language) ; VHSIC dalam suatu entity.
(Very High Speed Integrated Circuit) merupakan salah satu
4. Signal dan Variabel
jenis bahasa HDL yang digunakan untuk mendeskripsikan
Signal dapat dianalogikan sebagai kabel yang menjadi
berbagai fungsi rangkaian digital seperti FPGA (Field-
penghubung satu bagian dengan bagian lain didalam sistem
programmable Gate Arrays), Gerbang logika, Flip-flop, dan
yang didesain. Signal dideskripsikan didalam architecture
sebagainya. VHDL juga bisa digunakan sebagai bahasa
nilai logika dari suatu signal akan berubah setelah seluruh
pemrograman untuk simulasi rangkaian dari komponen-
proses dieksekusi. Apabila dalam suatu signal nilainya
komponen digital. HDL (Hardware Description Language)
diubah beberapa kali dalam suatu proses, nilai yang terakhir
digunakan perancang perangkat keras (hardware) untuk
yang akan dipakai pada eksekusi selanjutnya.
menuliskan sifat, sinyal dan fungsionalitas deskripsi berbasis
Variabel berbeda dengan signal nilai suatu variabel
hardware dari suatu rangkaian. Pendekatan transistor
langsung berubah tanpa harus menunggu selesainya suatu
digunakan oleh perancang yang bekerja pada tingkat gerbang
proses eksekusi. Variabel hanya dapat dideklarasikan
(gate level) dan transistor. Perancang mengaplikasikan
didalam suatu proses.
rancangannya dalam software pada tingkat abstraksi yang
5. Constans dan Array
lebih tinggi. Metodologi ini dipadukan dengan tool sintesis
Hal terpenting lain dari VHDL adalah Array.Seperti
untuk menterjemahkan dan mengoptimalkan deskripsi dari
bahasa pemrograman lainnya, dalam VHDL juga terdapat
suatu rancangan. Mesin sintesis digunakan untuk memetakan
array yang merupakan sekumpulan elemen yang
rancangan bagian fisik, seperti application specific integrated
mempunyai tipe yang sama, dan setiap elemen memiliki
circuit (ASIC) atau field programmable gate array (FPGA).
array index yang berbeda-beda.
Meskipun kemampuan fitur yang terdapat pada pendekatan ini
6. Function dan Procesdure
mampu digunakan, namun hardware description language
Seperti halnya function dalam bahasa pemrograman
(HDL) belum dapat diterima secara luas karena banyak
lain, function dalam VHDL dapat menerima suatu data
rancangan yang menggunakan ukuran dan kompleksitas
masukan dengan tipe data tertentu dan menghasilkan
rancangan dapat diselesaikan menggunakan masukan skematik
keluaran yang sesuai dengan tipe data keluaran yang telah
dan banyak perancang kurang mengenal HDL.Contoh static
didefinisikan dalan spesifikasinya. Procedure dalam VHDL
voltage transfer dari gerbang inverter dengan tegangan
sebenarnya hampir sama dengan function tetapi procedure
catudaya sebesar Vcc = 5 V.
tidak dapat mengembalikan nilai balikan. Procedure dalam
VHDL didesain dengan prinsif yang diambil dalam bahasa
VHDL harus menyertakan argumen dengan spesifik dengan
pemrograman software pascal. Desain dalam VHDL terdiri
tipe out atau input.
atas beberapa bagian utama diantaranya :
7. If statement, case statement, dan loop statement
1. Library
If statement adalah statement yang digunakan jika
Library merupakan kumpulan modul-modul perintah
kita dalam keadaan kondisional.
yang digunakan dalam program. Sebelum digunakan di
8. Macam-macam desain architecture
dalam program, modul yang berada di dalam library perlu
Dalam pendeskripsiannya, architecture dapat
di inisialisasi terlebih dahulu.
didesain dalam beberapa desain, diantaranya :
2. Entity
a) Behavioral : Architecture dapat didesain sesuai
Entity adalah spesifikasi pin input dan pin output pada
dengan prinsif kerja alat. Kunci dalam desain
desain bentuk rangkaian yang dibuat. Berfungsi untuk
behavioral adalah “process”. Sebuah process adalah
menggambarkan port pada input maupun output pada
kumpulan dari sequential statement (yang dan vertical). Berikut adalah penjelasan beberapa sinyal yang
dideskripsikan secara singkat) yang dipasang paralel digunakan :
dengan statement yang sama dan process yang a. Horizontal Sync (TTL level)
lainnya. Sinyal ini akan aktif pada range piksel kolom 0 sampai
b) Structural : Architecture dapat didesain sesuai dengan 639. Sehingga kalau sinyal ini tidak aktif, yang
dengan terstruktur dalam port map. Architercture terjadi adalah pergantian baris.
VHDL yang menggunakan component bisa disebut b. Vertical Sync (TTL level)
deskripsi atau desain struktural. Karena ia Sinyal ini akan aktif pada range piksel baris 0 sampai
mendefiniskan struktur interkoneksi dari signal dan dengan 479. Sehingga kalau sinyal ini tidak aktif, yang
entity yang menyadari entity. Dalam hal ini, terjadiadalah pergantian layar. Atau kembali ke baris
deskripsi struktural murni adalah setara dengan pertama.
sebuah skema/daftar bersih untuk rangkaian. c. Sinyal RGB (Analog 3 pin: 0,7 —1 V)
Sinyal ini merepresentasikan intensitas untuk masing2
c) Data flow : Architecture dapat didesain sesuai
komponen warna merah, hijau, dan biru untuk setiap pixel
dengan RTL : Register Transfer Level, yaitu secara
yang saat itu aktif. Sehingga yang terjadi ketiga sinyal ini
rangkaian logika. Jika component statement hanya
berubah-ubah sesuai pixel yang sedang aktif dalam proses
terdapat statement yang bersamaan, maka VHDL
scanning (dari kiri ke kanan untuk setiap baris,
akan memiliki lebih dari satu bahasa. Pernyataan
selanjutnya dari baris paling atas sampai baris paling
beberapa konkruen tambahan memungkinkan VHDL
bawah).
untuk menggambarkan sirkuit dalam hal aliran data
dan operasi dalam sirkuit. Desain tersebut sering
Gambar 2 menunjukkan blok diagram dari FPGA hingga ke
disebut desain dengan data flow.
LCD monitor. Chip DAC mengubah sinyal digital ke analog.
9. Test bench Dalam kasus ini, data RGB digital diubah ke data RGB
Test Bench adalah pemberian sinyal berupa syntax analog, begitu juga untuk sinyal sinkronisasinya. Board DE1
program pada rangkaian yang akan diujikan keluarannya menyediakan 16-pin konektor untuk output VGA dan Analog
sehingga sinyal yang diberikan dapat langsung menujukan Devices ADV7123 10-bit high speed video DAC. DAC ini
keluaran tanpa harus memasukan sinyal secara manual. mendapatkan sinyal sinkronisasi dari FPGA.

E. Video Graphics Array

Video Graphics Array (VGA), adalah sebuah standar


tampilan komputer analog yang dipasarkan pertama kali oleh
IBM pada tahun 1987. Walaupun standar VGA sudah tidak
lagi digunakan karena sudah diganti oleh standar yang lebih
Gambar 2. Diagram Blok VGA Display
baru, VGA masih diimplementasikan pada Pocket PC. VGA
merupakan standar grafis terakhir yang diikuti oleh mayoritas
pabrik pembuat kartu grafis komputer. Tampilan Windows III. METODOLOGI
sampai sekarang masih menggunakan modus VGA karena
A. Alat dan Bahan
didukung oleh banyak produsen monitor dan kartu grafis.
Video Graphics Array (VGA) ini biasa dinamakan juga Peralatan yang digunakan pada praktikum ini yaitu
dengan video card, video adapter, display card, graphics card, Komputer/PC yang telah terinstal program Quartus II, Board
graphics board, display adapter atau graphics adapter. Istilah FPGA tipe DE 1, catudaya, kabel konektor tambahan serta
VGA sendiri juga sering digunakan untuk mengacu kepada kabel downloader, monitor LCD.
resolusi layar berukuran 640×480, apapun pembuat perangkat B. Langkah Kerja
keras kartu grafisnya. Kartu VGA berguna untuk Sebelum memulai langkah kerja, perlu dipastikan kesiapan
menerjemahkan keluaran komputer ke monitor. Untuk proses alat dan bahan seperti komputer yang telah terinstal program
desain grafis atau bermain permainan video, diperlukan kartu Quartus II , FPGA dan LCD beserta kelengkapannya.
grafis yang berdaya tinggi. Produsen kartu grafis yang terkenal Kemudian menentukan judul game yang akan dibuat dalam
antara lain ATI dan nVidia. hal ini, judul game yang akan dibuat adalah game Avoider.
Interface ke VGA menggunakan 2 jenis sinyal, yaitu : sinyal Lalu meranvang FSM dalam bentuk diagram state. Berikut ini
warna (Merah, Hijau, dan Biru) dan sinyal sinkron (horizontal adalah beberapa langkah selanjutnya dalam perancangan
permainan Game Avoider. Berikut adalah langkah desain tampilan selesai, hal yang selanjutnya dilakukan ialah
perancangan game Avoider membuat FSM yang berfungsi untuk mengatur jalannya
perpindahan state dari satu state ke state berikutnya.
1. Menentukan ide mengenai game apa yang akan
B. Perancangan Desain FSM
dibuat
2. Membuat FSM
3. Pembuatan interface awal pada game (kotak dibawah
berwarna merah sebagai player)
4. Membuat perancangan pin planner sebahai kendali
untukmenggerakkan objek ke kanan dan ke kiri
5. Pembuatan tembok berwarna merah sebagai
rintangan dan tembok berwarna biru yang harus
dilewati oleh player
6. Membuat script kondisi player ketika menabrak
tembok (kembali ke kondisi awal)
7. Membuat script kondisi player ketika melewati
rintangan (tembok berwarna biru) naik ke level
selanjutnya.
8. Perancangan kecepatan rintangan (setiap 30 detik)
pada tiap level dengan level maksimal 5.
9. Peracangan tampilan ketika akan memulai game
yakni hitung maju (1,2,3)

IV. HASIL DAN ANALISIS


Berikut ini adalah script input dan output pada permainan
A. Deskripsi Game Avoider
yang dibuat :
Spesifikasi rangkaian digital yang ingin dibuat kali ini yaitu
LIBRARY IEEE;
sebuah permainan yang terdiri dari kotak sebagai player, USE IEEE.STD_LOGIC_1164.ALL;
dimana kotak tersebut hanya dapat bergerak ke dua sisi yaitu USE IEEE.STD_LOGIC_ARITH.ALL;
ke arah kanan dan kiri. Player dapat digerakkan ke kanan USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ataupun ke kiri menggunakan tombol push button pada
FPGA,terdapat rintangan yaitu tembok berwarna merah dan ENTITY color_rom_vhd IS
tembok berwarna biru yang harus dilewati. Player bertugas PORT(
i_M_US : IN STD_LOGIC;
melewati rintangan tersebut dengan aturan tidak boleh
i_K_US : IN STD_LOGIC;
menabrak tembok berwarna merah, dan harus melewati i_H_US : IN STD_LOGIC;
rintangan melalui celah yang berwarna biru yang terdapat i_M_BT : IN STD_LOGIC;
pada rintangan. Permainan ini terdiri dari 5 level permainan, i_K_BT : IN STD_LOGIC;
dimana setiap level memiliki tingkat kesulitan yang berbeda- i_H_BT : IN STD_LOGIC;
beda,setiap naik level maka kecepatan dari rintangan atau i_pixel_column : IN STD_LOGIC_VECTOR
tembok berwarna merah akan semakain bertambah. Di dalam ( 9 DOWNTO 0 );
i_pixel_row : IN STD_LOGIC_VECTOR
permainan ini tidak terdapat kondisi menang, yang ada hanya
( 9 DOWNTO 0 );
kondisi dimana saat player menabrak tembok rintangan maka o_red : OUT STD_LOGIC_VECTOR
akan mengulang ke level 1. Dan saat sudah berhasil mencapai (7 DOWNTO 0 );
level 5 maka kecepatan rintangan akan menjadi konstan o_green : OUT STD_LOGIC_VECTOR
dengan tidak adanya pertambahan kecepatan rintangan. (7 DOWNTO 0 );
Permainan ini juga dilengkapi tampilan hitung maju berupa o_blue : OUT STD_LOGIC_VECTOR
(7 DOWNTO 0 ));
tampilan angka 1, 2, 3 sebelum permainan pada level 1
END color_rom_vhd;
dimulai.
Pembuatan desain tampilan pada permainan ini dilakukan
dengan cara memodifikasi file color_rom_vhd. vhd, secara Pada pembuatan game ini digunakan kembali file yang
garis besar yang dilakukan pada file ini yaitu menentukan dipakai pada praktikum sebelumnya, yaitu praktikum 5 C.
batas-batas pixel yang akan diberi warna. Setelah pembuatan Alasannya penggunaannya adalah karena jika mengubah-ubah
variabel tersebut, maka harus melakukan pengeditan file kode
VHDL lain seperti display_vhd dan top_entitiy_vhd.
Berikut ini adalah script untuk membentuk batas-batas pixel SHARED VARIABLE A21 : INTEGER := 40;
dalam pembuatan tampilan player dan rintangan. SHARED VARIABLE A22 : INTEGER := 49;
SHARED VARIABLE A23 : INTEGER := 300;
ARCHITECTURE behavioral OF color_rom_vhd IS SHARED VARIABLE A24 : INTEGER := 329;

CONSTANT BATASATAS : INTEGER := 429; Pada sampel di atas nama variabel dengan akhiran angka 1
CONSTANT BATASBAWAH : INTEGER := 479; sebagai batas pixel baris atas, akhiran angka 2 sebagai batas
pixel baris bawah, akhiran angka 3 sebagai batas pixel kolom
SHARED VARIABLE BATASKIRI : INTEGER kiri dan akhiran angka 4 sebagai batas pixel kolom kanan.
:= 300;
SHARED VARIABLE BATASKANAN : INTEGER Untuk membuat kecepatan tiap level, dapat dideklarasikan
:= 350; sebagai variabel difficulty, dapat dilihat sebagai berikut.
CONSTANT KIRIE : INTEGER := 0;
SHARED VARIABLE DIFFICULTY: INTEGER := 1;
CONSTANT KANANE : INTEGER := 639;
SHARED VARIABLE KIRI : INTEGER := 320;
SIGNAL M_TF1, M_TF2 : STD_LOGIC;
SHARED VARIABLE ATAS : INTEGER := 1;
SIGNAL K_TF1, K_TF2 : STD_LOGIC;
SHARED VARIABLE BAWAH : INTEGER := 50;
SIGNAL H_TF1, H_TF2 : STD_LOGIC;
SHARED VARIABLE KANAN : INTEGER := 399;
SIGNAL grid : STD_LOGIC;
SHARED VARIABLE COUNT : INTEGER := 3;
SHARED VARIABLE COUNT_1 : INTEGER := 0; Variabel difficulty dapat dimulai dari angka 1, dan dapat
meningkat seiring meningkatnya level permainan.

Dimana, variabel batas atas, batas bawah, batas kiri


Variabel kecepatan player saat bergerak ke kanan atau ke
dan batas kanan adalah batas-batas pixel untuk membentuk
kiri sehingga player dapat bergerak dengan lambat dan dapat
player. vaiabel kiri, kanan adalah variabel sebagai batas kiri
bergerak cepat sesuai dengan input pada switch, dapat dilihat
dan batas kana pixel untuk membentuk celah, variabel atas
sebagai berikut.
dan bawah sebagai batas atas dan bawah rintangan, dimana
rintangan terdiri dari celah dan tembok. sedangakan konstanta SHARED VARIABLE KECEPATAN : INTEGER := 0;
kirie dan kanane adalah batas pixel kiri dan kanan dari SIGNAL clock60hz : STD_LOGIC;
tembok. Sedangkan variabel count adalah sebagai penghitung SIGNAL clock80hz : STD_LOGIC;
waktu dari detik ke-3 sampai detik ke-33 dalam hal ini interval
Pada proyek ini terdapat dua clockdiv, Clockdiv1 digunakan
waktu 30 detik. dan variabel count_1 sebagai penghitung
untuk penghitung waktu permainan, dan sekaligus untuk
waktu dari detik ke-0 sampai detik ke-4.
pengaturan level permaian. Sedangkan Colckdiv digunakan
Deklarasi variabel sebagai batas-batas pixel dalam untuk mengatur kecepatan gerak dari kotak dan rintangan agar
membentuk kotak persegi, dimana kotak-kotak persrgi bisa ditangkap oleh mata. Jika variabel clock nya di perbesar,
tersebut disusun hingga membentuk tampilan angka 1, 2, 3 maka gerak kotak akan lebih lambat, sebaliknya bila variabel
dan tulisan avoider serta tampilan gambar bulan, sampel clock di perkecil, kotak akan bergerak sangat cepat hingga
dekalrasi tersebut dapat dinyatakan sebagai berikut. terlihat ada bug pada layar
Variabel Count_1 memiliki nilai dari 0 sampai 4
SHARED VARIABLE SATU11 : INTEGER := 300; menggunakan Clockdiv1 dengan frekuensi 60 Hz, dapat
SHARED VARIABLE SATU12 : INTEGER := 340; dilihat sebagai berikut.
SHARED VARIABLE SATU13 : INTEGER := 260;
SHARED VARIABLE SATU14 : INTEGER := 380; COMPONENT CLOCKDIV1 is
port ( CLK : IN std_logic;
SHARED VARIABLE DUA11 : INTEGER := 300; DIVOUT : buffer std_logic);
SHARED VARIABLE DUA12 : INTEGER := 329; end component;
SHARED VARIABLE DUA13 : INTEGER := 240;
SHARED VARIABLE DUA14 : INTEGER := 399; COMPONENT CLOCKDIV is
port ( CLK : IN std_logic;
DIVOUT : buffer std_logic);
SHARED VARIABLE TIGA11 : INTEGER := 280;
end component;
SHARED VARIABLE TIGA12 : INTEGER := 299;
SHARED VARIABLE TIGA13 : INTEGER := 250;
SHARED VARIABLE TIGA14 : INTEGER := 299;
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, ELSIF ((i_pixel_row > 101) AND (i_pixel_row < 103)
H_TF1, H_TF2) AND (i_pixel_column >= 200) AND
(i_pixel_column <= 201))
BEGIN THEN o_red <= X"FF"; o_green <= X"FF";
o_blue <= X"FF";
IF clock60hz'event and clock60hz = '1' THEN
COUNT_1 := COUNT_1 + 1;
Script yang menampilkan tampilan tulisan AVOIDER dapat
IF COUNT_1 >= 4 THEN COUNT_1 := 4; dilihat dari sampel kode berikut tanpa menggunakan variabel
END IF; penghitung waktu.

ELSE COUNT_1 := COUNT_1; ELSIF (i_pixel_row >= A11) AND (i_pixel_row <= A12)
END IF; AND (i_pixel_column >= A13) AND
(i_pixel_column <= A14)
THEN o_red <= X"00"; o_green <= X"FF";
Proses menampilkan tampilan angka 1 saat hitungan o_blue <= X"00";
detik ke-1 dapat dilihat dari sampel kode berikut.

IF ((COUNT_1 = 1) AND (i_pixel_row >= SATU11) Proses menampilkan tampilan background warna hitam
AND (i_pixel_row <= SATU12) AND dapat dilihat dari kode berikut.
(i_pixel_column >= SATU13) AND
(i_pixel_column <= SATU14)) ELSE o_red <= X"00"; o_green <= X"00"; o_blue <=
THEN o_red <= X"FF"; o_green <= X"00"; X"00";
o_blue <= X"00"; END IF;
ELSIF ((COUNT_1 = 1) AND (i_pixel_row >= SATU21)
AND (i_pixel_row <= SATU22) AND Dengan menggunakan Clockdiv1 dengan frekuensi 60 Hz,
(i_pixel_column >= SATU23) AND dapat dilakukan pengaturan variabel Count yang hanya dapat
(i_pixel_column <= SATU24)) bernilai 3 sampai 33 yang berarti detik ke-3 sampai detik ke-
THEN o_red <= X"FF"; o_green <= X"00"; 33. yang menandakan lamanya waktu pada setiap level
o_blue <= X"00"; permainan. Dan kecepata rintangan pada tiap level yakni
variabel Difficulty pada level 1 bernilai 1 dan seterusnya pada
level 5 dengan nilai 5, tetapi pada permainan ini jumlah level
Proses menampiilkan kotak player, tembok dan celah saat dibatasi hanya sampai level 5. kode nya dapat dilihat sebagai
detik ke-4 dapat dilihat pada kode berikut. berikut.

ELSIF ((i_pixel_row > ATAS) AND (i_pixel_row <= IF clock60hz'event and clock60hz = '1' AND COUNT_1=4
BAWAH) AND (i_pixel_column >= KIRIE) THEN
AND (i_pixel_column < KIRI) AND COUNT_1 COUNT := COUNT + 1;
=4)
THEN o_red <= X"FF"; o_green <= X"00"; IF COUNT >= 33
o_blue <= X"00"; THEN
ELSIF ((i_pixel_row > ATAS) AND (i_pixel_row <= COUNT := 3;
BAWAH) AND (i_pixel_column >= KANAN) DIFFICULTY := DIFFICULTY + 1;
AND (i_pixel_column <= KANANE) AND
COUNT_1 =4) IF DIFFICULTY >= 5 THEN
THEN o_red <= X"FF"; o_green <= X"00"; DIFFICULTY := 5;
o_blue <= X"00";
ELSIF ((i_pixel_row > BATASATAS) AND (i_pixel_row END IF;
<= BATASBAWAH) AND (i_pixel_column >= END IF;
BATASKIRI) AND (i_pixel_column <= ELSE
BATASKANAN) AND COUNT_1 =4) COUNT := COUNT;
THEN o_red <= X"FF"; o_green <= X"00";
o_blue <= X"00"; END IF;
ELSIF ((i_pixel_row > ATAS) AND (i_pixel_row <
Proses
BAWAH)menampilkan tampilan bintang
AND (i_pixel_column dapatAND
>= KIRI) dilihat Untuk mengatur kecepatan dari player dapat
dari sampel kode berikut
(i_pixel_column tanpa menggunakan
<= KANAN) AND COUNT_1 variabel digunakan switch pada FPGA, pada saat switch dimatikan
penghitung=4)
waktu. maka kecepatan gerak player ke kanan dan ke kiri relative
THEN o_red <= X"00"; o_green <= X"00";
o_blue <= X"FF";
stabil, sedangkan pada saat switch dinyalakan gerak player ke
kanan dan ke kiri akan cepat. Kondisi ini digunakan ketika
rintan semakin cepat turun ke bawah. IF clock80hz'event and clock80hz = '1' AND COUNT_1
=4 AND i_M_US = '1' AND i_K_US = '1' AND i_H_US =
'0' AND i_M_BT = '1' THEN
BATASKANAN := BATASKANAN +
IF clock80hz'event and clock80hz = '1' AND COUNT_1 KECEPATAN;
=4 THEN BATASKIRI := BATASKIRI +
IF i_K_BT = '0' THEN KECEPATAN := 3; KECEPATAN;
ELSE KECEPATAN := 5;
END IF; IF BATASKANAN >= 639 THEN
END IF; BATASKANAN := 639;
BATASKIRI := 639 -49;
END IF;
Pada script di atas terjadi proses pergerakan rintangan
ELSIF clock80hz'event and clock80hz = '1' AND
menggunakan Clockdiv dengan frekuensi 80 Hz. COUNT_1 =4 AND i_M_US = '1' AND
IF clock80hz'event and clock80hz = '1' AND COUNT_1 =4 i_K_US = '1' AND i_H_US = '1' AND
THEN i_M_BT = '0' THEN
ATAS := ATAS + DIFFICULTY; BATASKANAN := BATASKANAN –
BAWAH := BAWAH + DIFFICULTY; KECEPATAN;
BATASKIRI := BATASKIRI –
IF ATAS >= 480 THEN KECEPATAN;
ATAS := 0;
BAWAH := 49; IF BATASKIRI <= 0 THEN
KANAN := KANAN + BATASKIRI := 0;
(COUNT * 80); BATASKANAN := 49;
KIRI := KIRI + (COUNT * 80); END IF;

IF KANAN >= 640 AND ELSE


KANAN < 1280 THEN
KANAN := KANAN – BATASKIRI := BATASKIRI;
640; BATASKANAN := BATASKANAN;
KIRI := KIRI - 640;
ELSIF KANAN >= 1280 AND END IF;
KANAN < 1920 THEN
KANAN := KANAN – Kode di atas adalah pengaturan arah gerak player ke
1280;
kanan dan ke kiri, saat arah gerak player ke kanan maka pixel
KIRI := KIRI - 1280;
ELSIF KANAN >= 1920 AND batas kanan dan batas kiri dari player akan ditambah dengan
KANAN < 2560 THEN sebesar variable kecepatan. Dan saat batas kanan player telah
KANAN := KANAN – mencapai pixel 639 maka player akan dipaksa berhenti
1920; sehingga arah geraknya berhenti saat menyentuh bagian kanan
KIRI := KIRI - 1920; tampilan layar.
ELSIF KANAN >= 2560 AND Saat arah gerak player ke kiri maka pixel batas kanan
KANAN < 3200 THEN
dan batas kiri dari player akan dikurang dengan sebesar
KANAN := KANAN –
2560; variable kecepatan. Dan saat batas kiri player telah mencapai
KIRI := KIRI - 2560; pixel 0 maka player akan dipaksa berhenti sehingga arah
ELSIF KANAN >= 3200 THEN geraknya berhenti saat menyentuh bagian kiri tampilan layar.
KANAN := KANAN –
3200; IF (BAWAH >= 448) AND (( BATASKIRI< KIRI) OR
KIRI := KIRI - 3200; (BATASKANAN > KANAN)) AND (COUNT_1 =4)
END IF; THEN
END IF; COUNT := 3;
ELSE COUNT_1 := 0;
ATAS := ATAS; DIFFICULTY := 1;
BAWAH := BAWAH;
ATAS := 1;
END IF; BAWAH := 50;
END IF;
END PROCESS;
Kode di atas adalah kode untuk kondisi player
menabrak tembok, saat player menyentuh tembok maka
permainan akan diulang dari awal dengan ditandai hitungan
maju.
Kode dibawah ini adalah kode dua buah clokdiv yang
masing-masing meniliki fungsi yang berbeda, clockdiv1
menggunakan frekuensi sebesar 60 Hz dengan fungsi untuk
menjadi penghitung waktu untuk pengacakan celah dan
pengaturan kecepatan rintangan pada tiap level. Clockdiv
lainnya dengan frekuensi 80 Hz digunakan untuk mengatur
pergerakan kotak player dan pergerakan rintangan.

tempik1 : clockdiv1
PORT MAP (
CLK => i_H_BT,
DIVOUT =>
clock60hz
);
tempik : clockdiv
PORT MAP (
CLK => i_H_BT,
DIVOUT =>
clock80hz
);

END behavioral;

C. Interrface dari Game Avoider


Berikut ini adalah interface dari game Avoider ini,
dapat dilihat pada gambar pertama menampilkan angka satu, .
gambar kedua menampilkan angka 2, kemudian gambar ketiga
menampilkan angka 3, dan yang terakhir gambar keempat
yang menampilkan posisi pada saat permainan sedang
berlangsung.
Kemudian berikut ini adalah kondisi ketika player menabrak [6] Wikipedia. 2018. VHDL. [Online] at
http://id.m.wikipedia.org/wiki/VHDL
atau menyentuh rintangan berupa tembok warna merah, dapat
[7] Wikipedia. 2018. VGA. [Online] at https://id.m.wikipedia.org/wiki/VGA
dilihat pada gambar berikut.

V. SIMPULAN
1. Dengan ini saya dapat menspesifikasi suatu system
digital sederhana
2. Kemudian saya dapat membagi system menjadi satu
jalur atau lebih jalur data dan kendali
3. Terdapat sekitar 12 jalur data dengan menggunakan
fungsi logika IF
4. Kemudian dapat mendesain kendali untuk system
5. Penyatuan dari seluruh fungsi yang ada akan
membentuk sistem kendali dan jalur data dari
keseluruhan game
6. Setelah itu kami melakukan tes menyeluruh terhadap
system dan itu terbukti berhasil
7. Pengimplementasian pada FPGA dan monitor
menampilkan interface yang diharapkan beserta
fungsi logikanya
8. Setelah melakukan pengujian, hasilnya adalah
pengujian tidak menampilkan error dan berjalan
sesuai dengan yang dibayangkan.

REFERENSI
[1] ALTERA DE 1 Development and Education Board. ALTERA
[2] Anonim. 2015. Rangkaian Sekuensial. [Online] at
https://dokumen.tips/amp/documents/rangkaian-sekuensial-
565f1ce52fc16.html
[3] Anonim. 2018. Petunjuk Praktikum Sistem Digital, Laboratorium Dasar
Teknik Elektro. Institut Teknologi Sumatera, Lampung Selatan. 2018
[4] Iwan Setiawan,ST., MT. 2006. Perancangan Software Embedded
System Berbasis FSM. [Online] at
http://peluangsaatini.blogspot.com/2014/02/rangkaian-
aritmatika.html?m=1
[5] Wikipedia. 2018. Altera Quartus. [Online] at
http://en.m.wikipedia.org/wiki/Altera_Quartus
Lampiran

 INTERFACE  SCRIPT
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; -- atas
i_K_US : IN STD_LOGIC; -- bawah
i_H_US : IN STD_LOGIC; -- kanan
i_M_BT : IN STD_LOGIC; -- kiri
i_K_BT : IN STD_LOGIC; -- kecepatan
i_H_BT : IN STD_LOGIC; -- waktu
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

--CONSTANT BATASBARIS : INTEGER := 479;


--CONSTANT BATASKOLOM : INTEGER := 639;

CONSTANT BATASATAS : INTEGER := 429;


--PLAYER
CONSTANT BATASBAWAH : INTEGER := 479; --
PLAYER

SHARED VARIABLE BATASKIRI : INTEGER := 300;


--PLAYER
SHARED VARIABLE BATASKANAN : INTEGER := 350;
--PLAYER

CONSTANT KIRIE :
INTEGER := 0;
CONSTANT KANANE :
INTEGER := 639;
SHARED VARIABLE KIRI : INTEGER := 320;
SHARED VARIABLE ATAS : INTEGER := 1;
SHARED VARIABLE BAWAH : INTEGER := 50;
SHARED VARIABLE KANAN : INTEGER := 399;

SHARED VARIABLE COUNT : INTEGER := 3;


SHARED VARIABLE COUNT_1 :
INTEGER := 0;

--SATU
SHARED VARIABLE SATU11 : INTEGER := 300;
SHARED VARIABLE SATU12 : INTEGER := 340;
SHARED VARIABLE SATU13 : INTEGER := 260;
SHARED VARIABLE SATU14 : INTEGER := 380;

SHARED VARIABLE SATU21 : INTEGER := 140;


SHARED VARIABLE SATU22 : INTEGER := 299;
SHARED VARIABLE SATU23 : INTEGER := 290;
SHARED VARIABLE SATU24 : INTEGER := 349;

SHARED VARIABLE SATU31 : INTEGER := 150;


SHARED VARIABLE SATU32 : INTEGER := 189;
SHARED VARIABLE SATU33 : INTEGER := 280;
SHARED VARIABLE SATU34 : INTEGER := 289;
SHARED VARIABLE SATU41 : INTEGER := 160; SHARED VARIABLE DUA121 : INTEGER := 150;
SHARED VARIABLE SATU42 : INTEGER := 189; SHARED VARIABLE DUA122 : INTEGER := 159;
SHARED VARIABLE SATU43 : INTEGER := 270; SHARED VARIABLE DUA123 : INTEGER := 290;
SHARED VARIABLE SATU44 : INTEGER := 279; SHARED VARIABLE DUA124 : INTEGER := 349;

SHARED VARIABLE SATU51 : INTEGER := 170; SHARED VARIABLE DUA131 : INTEGER := 180;
SHARED VARIABLE SATU52 : INTEGER := 189; SHARED VARIABLE DUA132 : INTEGER := 199;
SHARED VARIABLE SATU53 : INTEGER := 260; SHARED VARIABLE DUA133 : INTEGER := 250;
SHARED VARIABLE SATU54 : INTEGER := 269; SHARED VARIABLE DUA134 : INTEGER := 299;

--DUA SHARED VARIABLE DUA141 : INTEGER := 200;


SHARED VARIABLE DUA11 : INTEGER := 300; SHARED VARIABLE DUA142 : INTEGER := 229;
SHARED VARIABLE DUA12 : INTEGER := 329; SHARED VARIABLE DUA143 : INTEGER := 240;
SHARED VARIABLE DUA13 : INTEGER := 240; SHARED VARIABLE DUA144 : INTEGER := 289;
SHARED VARIABLE DUA14 : INTEGER := 399;
--TIGA
SHARED VARIABLE DUA21 : INTEGER := 280; SHARED VARIABLE TIGA11 : INTEGER := 280;
SHARED VARIABLE DUA22 : INTEGER := 299; SHARED VARIABLE TIGA12 : INTEGER := 299;
SHARED VARIABLE DUA23 : INTEGER := 240; SHARED VARIABLE TIGA13 : INTEGER := 250;
SHARED VARIABLE DUA24 : INTEGER := 259; SHARED VARIABLE TIGA14 : INTEGER := 299;

SHARED VARIABLE DUA31 : INTEGER := 270; SHARED VARIABLE TIGA21 : INTEGER := 300;
SHARED VARIABLE DUA32 : INTEGER := 299; SHARED VARIABLE TIGA22 : INTEGER := 329;
SHARED VARIABLE DUA33 : INTEGER := 260; SHARED VARIABLE TIGA23 : INTEGER := 260;
SHARED VARIABLE DUA34 : INTEGER := 279; SHARED VARIABLE TIGA24 : INTEGER := 289;

SHARED VARIABLE DUA41 : INTEGER := 260; SHARED VARIABLE TIGA31 : INTEGER := 300;
SHARED VARIABLE DUA42 : INTEGER := 299; SHARED VARIABLE TIGA32 : INTEGER := 339;
SHARED VARIABLE DUA43 : INTEGER := 280; SHARED VARIABLE TIGA33 : INTEGER := 290;
SHARED VARIABLE DUA44 : INTEGER := 299; SHARED VARIABLE TIGA34 : INTEGER := 349;

SHARED VARIABLE DUA51 : INTEGER := 250; SHARED VARIABLE TIGA41 : INTEGER := 300;
SHARED VARIABLE DUA52 : INTEGER := 289; SHARED VARIABLE TIGA42 : INTEGER := 329;
SHARED VARIABLE DUA53 : INTEGER := 300; SHARED VARIABLE TIGA43 : INTEGER := 350;
SHARED VARIABLE DUA54 : INTEGER := 319; SHARED VARIABLE TIGA44 : INTEGER := 379;

SHARED VARIABLE DUA61 : INTEGER := 240; SHARED VARIABLE TIGA51 : INTEGER := 270;
SHARED VARIABLE DUA62 : INTEGER := 279; SHARED VARIABLE TIGA52 : INTEGER := 299;
SHARED VARIABLE DUA63 : INTEGER := 320; SHARED VARIABLE TIGA53 : INTEGER := 340;
SHARED VARIABLE DUA64 : INTEGER := 339; SHARED VARIABLE TIGA54 : INTEGER := 389;

SHARED VARIABLE DUA71 : INTEGER := 230; SHARED VARIABLE TIGA61 : INTEGER := 260;
SHARED VARIABLE DUA72 : INTEGER := 269; SHARED VARIABLE TIGA62 : INTEGER := 269;
SHARED VARIABLE DUA73 : INTEGER := 340; SHARED VARIABLE TIGA63 : INTEGER := 330;
SHARED VARIABLE DUA74 : INTEGER := 359; SHARED VARIABLE TIGA64 : INTEGER := 379;

SHARED VARIABLE DUA81 : INTEGER := 230; SHARED VARIABLE TIGA71 : INTEGER := 220;
SHARED VARIABLE DUA82 : INTEGER := 249; SHARED VARIABLE TIGA72 : INTEGER := 259;
SHARED VARIABLE DUA83 : INTEGER := 360; SHARED VARIABLE TIGA73 : INTEGER := 320;
SHARED VARIABLE DUA84 : INTEGER := 389; SHARED VARIABLE TIGA74 : INTEGER := 369;

SHARED VARIABLE DUA91 : INTEGER := 200; SHARED VARIABLE TIGA81 : INTEGER := 210;
SHARED VARIABLE DUA92 : INTEGER := 229; SHARED VARIABLE TIGA82 : INTEGER := 219;
SHARED VARIABLE DUA93 : INTEGER := 350; SHARED VARIABLE TIGA83 : INTEGER := 330;
SHARED VARIABLE DUA94 : INTEGER := 399; SHARED VARIABLE TIGA84 : INTEGER := 379;

SHARED VARIABLE DUA101 : INTEGER := 180; SHARED VARIABLE TIGA91 : INTEGER := 180;
SHARED VARIABLE DUA102 : INTEGER := 199; SHARED VARIABLE TIGA92 : INTEGER := 209;
SHARED VARIABLE DUA103 : INTEGER := 340; SHARED VARIABLE TIGA93 : INTEGER := 340;
SHARED VARIABLE DUA104 : INTEGER := 389; SHARED VARIABLE TIGA94 : INTEGER := 389;

SHARED VARIABLE DUA111 : INTEGER := 160; SHARED VARIABLE TIGA101 : INTEGER := 150;
SHARED VARIABLE DUA112 : INTEGER := 179; SHARED VARIABLE TIGA102 : INTEGER := 179;
SHARED VARIABLE DUA113 : INTEGER := 270; SHARED VARIABLE TIGA103 : INTEGER := 350;
SHARED VARIABLE DUA114 : INTEGER := 369; SHARED VARIABLE TIGA104 : INTEGER := 379;
SHARED VARIABLE V51 : INTEGER := 10;
SHARED VARIABLE TIGA111 : INTEGER := 140; SHARED VARIABLE V52 : INTEGER := 39;
SHARED VARIABLE TIGA112 : INTEGER := 179; SHARED VARIABLE V53 : INTEGER := 390;
SHARED VARIABLE TIGA113 : INTEGER := 290; SHARED VARIABLE V54 : INTEGER := 399;
SHARED VARIABLE TIGA114 : INTEGER := 349;
SHARED VARIABLE O11 : INTEGER := 20;
SHARED VARIABLE TIGA121 : INTEGER := 150; SHARED VARIABLE O12 : INTEGER := 49;
SHARED VARIABLE TIGA122 : INTEGER := 179; SHARED VARIABLE O13 : INTEGER := 410;
SHARED VARIABLE TIGA123 : INTEGER := 260; SHARED VARIABLE O14 : INTEGER := 419;
SHARED VARIABLE TIGA124 : INTEGER := 289;
SHARED VARIABLE O21 : INTEGER := 40;
SHARED VARIABLE TIGA131 : INTEGER := 180; SHARED VARIABLE O22 : INTEGER := 59;
SHARED VARIABLE TIGA132 : INTEGER := 199; SHARED VARIABLE O23 : INTEGER := 420;
SHARED VARIABLE TIGA133 : INTEGER := 250; SHARED VARIABLE O24 : INTEGER := 429;
SHARED VARIABLE TIGA134 : INTEGER := 299;
SHARED VARIABLE O31 : INTEGER := 50;
SHARED VARIABLE A11 : INTEGER := 20; SHARED VARIABLE O32 : INTEGER := 59;
SHARED VARIABLE A12 : INTEGER := 59; SHARED VARIABLE O33 : INTEGER := 430;
SHARED VARIABLE A13 : INTEGER := 290; SHARED VARIABLE O34 : INTEGER := 439;
SHARED VARIABLE A14 : INTEGER := 299;
SHARED VARIABLE O41 : INTEGER := 40;
SHARED VARIABLE A21 : INTEGER := 40; SHARED VARIABLE O42 : INTEGER := 59;
SHARED VARIABLE A22 : INTEGER := 49; SHARED VARIABLE O43 : INTEGER := 440;
SHARED VARIABLE A23 : INTEGER := 300; SHARED VARIABLE O44 : INTEGER := 449;
SHARED VARIABLE A24 : INTEGER := 329;
SHARED VARIABLE O51 : INTEGER := 20;
SHARED VARIABLE A31 : INTEGER := 20; SHARED VARIABLE O52 : INTEGER := 49;
SHARED VARIABLE A32 : INTEGER := 59; SHARED VARIABLE O53 : INTEGER := 450;
SHARED VARIABLE A33 : INTEGER := 330; SHARED VARIABLE O54 : INTEGER := 459;
SHARED VARIABLE A34 : INTEGER := 339;
SHARED VARIABLE O61 : INTEGER := 10;
SHARED VARIABLE A41 : INTEGER := 10; SHARED VARIABLE O62 : INTEGER := 29;
SHARED VARIABLE A42 : INTEGER := 29; SHARED VARIABLE O63 : INTEGER := 440;
SHARED VARIABLE A43 : INTEGER := 320; SHARED VARIABLE O64 : INTEGER := 449;
SHARED VARIABLE A44 : INTEGER := 329;
SHARED VARIABLE O71 : INTEGER := 10;
SHARED VARIABLE A51 : INTEGER := 10; SHARED VARIABLE O72 : INTEGER := 19;
SHARED VARIABLE A52 : INTEGER := 19; SHARED VARIABLE O73 : INTEGER := 430;
SHARED VARIABLE A53 : INTEGER := 310; SHARED VARIABLE O74 : INTEGER := 439;
SHARED VARIABLE A54 : INTEGER := 319;
SHARED VARIABLE O81 : INTEGER := 10;
SHARED VARIABLE A61 : INTEGER := 10; SHARED VARIABLE O82 : INTEGER := 29;
SHARED VARIABLE A62 : INTEGER := 29; SHARED VARIABLE O83 : INTEGER := 420;
SHARED VARIABLE A63 : INTEGER := 300; SHARED VARIABLE O84 : INTEGER := 429;
SHARED VARIABLE A64 : INTEGER := 309;
SHARED VARIABLE I11 : INTEGER := 10;
SHARED VARIABLE V11 : INTEGER := 10; SHARED VARIABLE I12 : INTEGER := 59;
SHARED VARIABLE V12 : INTEGER := 39; SHARED VARIABLE I13 : INTEGER := 470;
SHARED VARIABLE V13 : INTEGER := 350; SHARED VARIABLE I14 : INTEGER := 479;
SHARED VARIABLE V14 : INTEGER := 359;
SHARED VARIABLE D11 : INTEGER := 10;
SHARED VARIABLE V21 : INTEGER := 30; SHARED VARIABLE D12 : INTEGER := 59;
SHARED VARIABLE V22 : INTEGER := 49; SHARED VARIABLE D13 : INTEGER := 490;
SHARED VARIABLE V23 : INTEGER := 360; SHARED VARIABLE D14 : INTEGER := 499;
SHARED VARIABLE V24 : INTEGER := 369;
SHARED VARIABLE D21 : INTEGER := 50;
SHARED VARIABLE V31 : INTEGER := 40; SHARED VARIABLE D22 : INTEGER := 59;
SHARED VARIABLE V32 : INTEGER := 59; SHARED VARIABLE D23 : INTEGER := 500;
SHARED VARIABLE V33 : INTEGER := 370; SHARED VARIABLE D24 : INTEGER := 509;
SHARED VARIABLE V34 : INTEGER := 379;
SHARED VARIABLE D31 : INTEGER := 40;
SHARED VARIABLE V41 : INTEGER := 30; SHARED VARIABLE D32 : INTEGER := 59;
SHARED VARIABLE V42 : INTEGER := 49; SHARED VARIABLE D33 : INTEGER := 510;
SHARED VARIABLE V43 : INTEGER := 380; SHARED VARIABLE D34 : INTEGER := 519;
SHARED VARIABLE V44 : INTEGER := 389;
SHARED VARIABLE D41 : INTEGER := 20;
SHARED VARIABLE D42 : INTEGER := 49; SHARED VARIABLE C13 : INTEGER := 180;
SHARED VARIABLE D43 : INTEGER := 520; SHARED VARIABLE C14 : INTEGER := 209;
SHARED VARIABLE D44 : INTEGER := 529;
SHARED VARIABLE C21 : INTEGER := 230;
SHARED VARIABLE D51 : INTEGER := 10; SHARED VARIABLE C22 : INTEGER := 239;
SHARED VARIABLE D52 : INTEGER := 29; SHARED VARIABLE C23 : INTEGER := 100;
SHARED VARIABLE D53 : INTEGER := 510; SHARED VARIABLE C24 : INTEGER := 139;
SHARED VARIABLE D54 : INTEGER := 519;
SHARED VARIABLE C31 : INTEGER := 220;
SHARED VARIABLE D61 : INTEGER := 10; SHARED VARIABLE C32 : INTEGER := 229;
SHARED VARIABLE D62 : INTEGER := 19; SHARED VARIABLE C33 : INTEGER := 80;
SHARED VARIABLE D63 : INTEGER := 500; SHARED VARIABLE C34 : INTEGER := 159;
SHARED VARIABLE D64 : INTEGER := 509;
SHARED VARIABLE C41 : INTEGER := 210;
SHARED VARIABLE E11 : INTEGER := 10; SHARED VARIABLE C42 : INTEGER := 219;
SHARED VARIABLE E12 : INTEGER := 59; SHARED VARIABLE C43 : INTEGER := 60;
SHARED VARIABLE E13 : INTEGER := 540; SHARED VARIABLE C44 : INTEGER := 179;
SHARED VARIABLE E14 : INTEGER := 549;
SHARED VARIABLE C51 : INTEGER := 200;
SHARED VARIABLE E21 : INTEGER := 50; SHARED VARIABLE C52 : INTEGER := 209;
SHARED VARIABLE E22 : INTEGER := 59; SHARED VARIABLE C53 : INTEGER := 50;
SHARED VARIABLE E23 : INTEGER := 550; SHARED VARIABLE C54 : INTEGER := 199;
SHARED VARIABLE E24 : INTEGER := 569;
SHARED VARIABLE C61 : INTEGER := 180;
SHARED VARIABLE E31 : INTEGER := 30; SHARED VARIABLE C62 : INTEGER := 199;
SHARED VARIABLE E32 : INTEGER := 39; SHARED VARIABLE C63 : INTEGER := 40;
SHARED VARIABLE E33 : INTEGER := 550; SHARED VARIABLE C64 : INTEGER := 109;
SHARED VARIABLE E34 : INTEGER := 569;
SHARED VARIABLE C71 : INTEGER := 160;
SHARED VARIABLE E41 : INTEGER := 10; SHARED VARIABLE C72 : INTEGER := 179;
SHARED VARIABLE E42 : INTEGER := 19; SHARED VARIABLE C73 : INTEGER := 30;
SHARED VARIABLE E43 : INTEGER := 550; SHARED VARIABLE C74 : INTEGER := 89;
SHARED VARIABLE E44 : INTEGER := 569;
SHARED VARIABLE C81 : INTEGER := 120;
SHARED VARIABLE R11 : INTEGER := 10; SHARED VARIABLE C82 : INTEGER := 159;
SHARED VARIABLE R12 : INTEGER := 59; SHARED VARIABLE C83 : INTEGER := 20;
SHARED VARIABLE R13 : INTEGER := 580; SHARED VARIABLE C84 : INTEGER := 79;
SHARED VARIABLE R14 : INTEGER := 589;
SHARED VARIABLE C91 : INTEGER := 100;
SHARED VARIABLE R21 : INTEGER := 10; SHARED VARIABLE C92 : INTEGER := 119;
SHARED VARIABLE R22 : INTEGER := 19; SHARED VARIABLE C93 : INTEGER := 30;
SHARED VARIABLE R23 : INTEGER := 590; SHARED VARIABLE C94 : INTEGER := 89;
SHARED VARIABLE R24 : INTEGER := 609;
SHARED VARIABLE C101 : INTEGER := 80;
SHARED VARIABLE R31 : INTEGER := 20; SHARED VARIABLE C102 : INTEGER := 99;
SHARED VARIABLE R32 : INTEGER := 39; SHARED VARIABLE C103 : INTEGER := 40;
SHARED VARIABLE R33 : INTEGER := 610; SHARED VARIABLE C104 : INTEGER := 109;
SHARED VARIABLE R34 : INTEGER := 619;
SHARED VARIABLE C111 : INTEGER := 70;
SHARED VARIABLE R41 : INTEGER := 30; SHARED VARIABLE C112 : INTEGER := 79;
SHARED VARIABLE R42 : INTEGER := 49; SHARED VARIABLE C113 : INTEGER := 50;
SHARED VARIABLE R43 : INTEGER := 600; SHARED VARIABLE C114 : INTEGER := 199;
SHARED VARIABLE R44 : INTEGER := 609;
SHARED VARIABLE C121 : INTEGER := 60;
SHARED VARIABLE R51 : INTEGER := 30; SHARED VARIABLE C122 : INTEGER := 69;
SHARED VARIABLE R52 : INTEGER := 39; SHARED VARIABLE C123 : INTEGER := 60;
SHARED VARIABLE R53 : INTEGER := 590; SHARED VARIABLE C124 : INTEGER := 179;
SHARED VARIABLE R54 : INTEGER := 599;
SHARED VARIABLE C131 : INTEGER := 50;
SHARED VARIABLE R61 : INTEGER := 50; SHARED VARIABLE C132 : INTEGER := 59;
SHARED VARIABLE R62 : INTEGER := 59; SHARED VARIABLE C133 : INTEGER := 80;
SHARED VARIABLE R63 : INTEGER := 610; SHARED VARIABLE C134 : INTEGER := 159;
SHARED VARIABLE R64 : INTEGER := 619;
SHARED VARIABLE C141 : INTEGER := 40;
SHARED VARIABLE C11 : INTEGER := 190; SHARED VARIABLE C142 : INTEGER := 49;
SHARED VARIABLE C12 : INTEGER := 199; SHARED VARIABLE C143 : INTEGER := 100;
SHARED VARIABLE C144 : INTEGER := 139; ELSIF ((COUNT_1 = 2) AND (i_pixel_row > DUA11) AND
(i_pixel_row <= DUA12) AND (i_pixel_column >= DUA13)
SHARED VARIABLE C151 : INTEGER := 80; AND (i_pixel_column <= DUA14))
SHARED VARIABLE C152 : INTEGER := 89; THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
SHARED VARIABLE C153 : INTEGER := 180; ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA21) AND
SHARED VARIABLE C154 : INTEGER := 209; (i_pixel_row <= DUA22) AND (i_pixel_column >= DUA23)
AND (i_pixel_column <= DUA24))
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
SHARED VARIABLE DIFFICULTY : INTEGER := 1; ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA31) AND
(i_pixel_row <= DUA32) AND (i_pixel_column >= DUA33)
SIGNAL M_TF1, M_TF2 : STD_LOGIC; AND (i_pixel_column <= DUA34))
SIGNAL K_TF1, K_TF2 : STD_LOGIC; THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
SIGNAL H_TF1, H_TF2 : STD_LOGIC; ELSIF ((COUNT_1= 2) AND (i_pixel_row >= DUA41) AND
SIGNAL grid : STD_LOGIC; (i_pixel_row <= DUA42) AND (i_pixel_column >= DUA43)
AND (i_pixel_column <= DUA44))
SHARED VARIABLE KECEPATAN : INTEGER := 0; THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
SIGNAL clock80hz : STD_LOGIC; ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA51) AND
SIGNAL clock60hz : STD_LOGIC; (i_pixel_row <= DUA52) AND (i_pixel_column >= DUA53)
AND (i_pixel_column <= DUA54))
COMPONENT CLOCKDIV1 is THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
port ( CLK : IN std_logic; ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA61) AND
DIVOUT : buffer std_logic); (i_pixel_row <= DUA62) AND (i_pixel_column >= DUA63)
end component; AND (i_pixel_column <= DUA64))
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
COMPONENT CLOCKDIV is ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA71) AND
port ( CLK : IN std_logic; (i_pixel_row <= DUA72) AND (i_pixel_column >= DUA73)
DIVOUT : buffer std_logic); AND (i_pixel_column <= DUA74))
end component; THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA81) AND
BEGIN (i_pixel_row <= DUA82) AND (i_pixel_column >= DUA83)
AND (i_pixel_column <= DUA84))
PROCESS(i_pixel_row,i_pixel_column, i_M_US , i_K_US , THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
i_H_US , i_M_BT , i_K_BT , i_H_BT, M_TF1, M_TF2, ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA91) AND
K_TF1, K_TF2, H_TF1, H_TF2) (i_pixel_row <= DUA92) AND (i_pixel_column >= DUA93)
AND (i_pixel_column <= DUA94))
BEGIN THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA101) AND
(i_pixel_row <= DUA102) AND (i_pixel_column >= DUA103)
IF clock60hz'event and clock60hz = '1' THEN AND (i_pixel_column <= DUA104))
COUNT_1 := COUNT_1 + 1; THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
IF COUNT_1 >= 4 THEN COUNT_1 := 4; ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA111) AND
END IF; (i_pixel_row <= DUA112) AND (i_pixel_column >= DUA113)
AND (i_pixel_column <= DUA114))
ELSE COUNT_1 := COUNT_1; THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
END IF; ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA121) AND
(i_pixel_row <= DUA122) AND (i_pixel_column >= DUA123)
IF ((COUNT_1 = 1) AND (i_pixel_row >= SATU11) AND AND (i_pixel_column <= DUA124))
(i_pixel_row <= SATU12) AND (i_pixel_column >= SATU13) THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
AND (i_pixel_column <= SATU14)) ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA131) AND
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; (i_pixel_row <= DUA132) AND (i_pixel_column >= DUA133)
ELSIF ((COUNT_1 = 1) AND (i_pixel_row >= SATU21) AND AND (i_pixel_column <= DUA134))
(i_pixel_row <= SATU22) AND (i_pixel_column >= SATU23) THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
AND (i_pixel_column <= SATU24)) ELSIF ((COUNT_1 = 2) AND (i_pixel_row >= DUA141) AND
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; (i_pixel_row <= DUA142) AND (i_pixel_column >= DUA143)
ELSIF ((COUNT_1 = 1) AND (i_pixel_row > SATU31) AND AND (i_pixel_column <= DUA144))
(i_pixel_row <= SATU32) AND (i_pixel_column >= SATU33) THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
AND (i_pixel_column <= SATU34)) ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA11) AND
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; (i_pixel_row <= TIGA12) AND (i_pixel_column >= TIGA13)
ELSIF ((COUNT_1 = 1) AND (i_pixel_row >= SATU41) AND AND (i_pixel_column <= TIGA14))
(i_pixel_row < SATU42) AND (i_pixel_column >= SATU43) THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
AND (i_pixel_column <= SATU44)) ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA21) AND
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; (i_pixel_row <= TIGA22) AND (i_pixel_column >= TIGA23)
ELSIF ((COUNT_1 = 1) AND (i_pixel_row >= SATU51) AND AND (i_pixel_column <= TIGA24))
(i_pixel_row <= SATU52) AND (i_pixel_column >= SATU53) THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
AND (i_pixel_column <= SATU54))
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00";
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA31) AND THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
(i_pixel_row <= TIGA32) AND (i_pixel_column >= TIGA33) ELSIF ((i_pixel_row > 378) AND (i_pixel_row < 380) AND
AND (i_pixel_column <= TIGA34)) (i_pixel_column >= 143) AND (i_pixel_column <= 145))
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA41) AND ELSIF ((i_pixel_row > 461) AND (i_pixel_row < 463) AND
(i_pixel_row <= TIGA42) AND (i_pixel_column >= TIGA43) (i_pixel_column >= 440) AND (i_pixel_column <= 441))
AND (i_pixel_column <= TIGA44)) THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; ELSIF ((i_pixel_row > 126) AND (i_pixel_row < 128) AND
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA51) AND (i_pixel_column >= 235) AND (i_pixel_column <= 234))
(i_pixel_row <= TIGA52) AND (i_pixel_column >= TIGA53) THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
AND (i_pixel_column <= TIGA54)) ELSIF ((i_pixel_row > 101) AND (i_pixel_row < 103) AND
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; (i_pixel_column >= 572) AND (i_pixel_column <= 571))
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA61) AND THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
(i_pixel_row <= TIGA62) AND (i_pixel_column >= TIGA63) ELSIF ((i_pixel_row > 68) AND (i_pixel_row < 70) AND
AND (i_pixel_column <= TIGA64)) (i_pixel_column >= 157) AND (i_pixel_column <= 158))
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA71) AND ELSIF ((i_pixel_row > 96) AND (i_pixel_row < 98) AND
(i_pixel_row <= TIGA72) AND (i_pixel_column >= TIGA73) (i_pixel_column >= 262) AND (i_pixel_column <= 263))
AND (i_pixel_column <= TIGA74)) THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; ELSIF ((i_pixel_row > 402) AND (i_pixel_row < 404) AND
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA81) AND (i_pixel_column >= 150) AND (i_pixel_column <= 151))
(i_pixel_row <= TIGA82) AND (i_pixel_column >= TIGA83) THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
AND (i_pixel_column <= TIGA84)) ELSIF ((i_pixel_row > 287) AND (i_pixel_row < 289) AND
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; (i_pixel_column >= 503) AND (i_pixel_column <= 504))
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA91) AND THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
(i_pixel_row <= TIGA92) AND (i_pixel_column >= TIGA93) ELSIF ((i_pixel_row > 372) AND (i_pixel_row < 374) AND
AND (i_pixel_column <= TIGA94)) (i_pixel_column >= 146) AND (i_pixel_column <= 147))
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA101) ELSIF ((i_pixel_row > 169) AND (i_pixel_row < 171) AND
AND (i_pixel_row <= TIGA102) AND (i_pixel_column >= (i_pixel_column >= 85) AND (i_pixel_column <= 86))
TIGA103) AND (i_pixel_column <= TIGA104)) THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; ELSIF ((i_pixel_row > 346) AND (i_pixel_row < 348) AND
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA111) (i_pixel_column >= 78) AND (i_pixel_column <= 79))
AND (i_pixel_row <= TIGA112) AND (i_pixel_column >= THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
TIGA113) AND (i_pixel_column <= TIGA114)) ELSIF ((i_pixel_row > 238) AND (i_pixel_row < 240) AND
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; (i_pixel_column >= 185) AND (i_pixel_column <= 186))
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA121) THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
AND (i_pixel_row <= TIGA122) AND (i_pixel_column >= ELSIF ((i_pixel_row > 153) AND (i_pixel_row < 155) AND
TIGA123) AND (i_pixel_column <= TIGA124)) (i_pixel_column >= 285) AND (i_pixel_column <= 286))
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((COUNT_1 = 3) AND (i_pixel_row >= TIGA131) ELSIF ((i_pixel_row > 443) AND (i_pixel_row < 445) AND
AND (i_pixel_row <= TIGA132) AND (i_pixel_column >= (i_pixel_column >= 385) AND (i_pixel_column <= 386))
TIGA133) AND (i_pixel_column <= TIGA134)) THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; ELSIF ((i_pixel_row > 373) AND (i_pixel_row < 375) AND
ELSIF ((i_pixel_row > ATAS) AND (i_pixel_row <= BAWAH) (i_pixel_column >= 485) AND (i_pixel_column <= 486))
AND (i_pixel_column >= KIRIE) AND (i_pixel_column < THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
KIRI) AND COUNT_1 =4) ELSIF ((i_pixel_row > 131) AND (i_pixel_row < 132) AND
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; (i_pixel_column >= 501) AND (i_pixel_column <= 502))
ELSIF ((i_pixel_row > ATAS) AND (i_pixel_row <= BAWAH) THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
AND (i_pixel_column >= KANAN) AND (i_pixel_column <= ELSIF ((i_pixel_row > 181) AND (i_pixel_row < 183) AND
KANANE) AND COUNT_1 =4) (i_pixel_column >= 531) AND (i_pixel_column <= 532))
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > BATASATAS) AND (i_pixel_row <= ELSIF ((i_pixel_row > 197) AND (i_pixel_row < 199) AND
BATASBAWAH) AND (i_pixel_column >= BATASKIRI) (i_pixel_column >= 608) AND (i_pixel_column <= 609))
AND (i_pixel_column <= BATASKANAN) AND COUNT_1 THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
=4) ELSIF ((i_pixel_row > 183) AND (i_pixel_row < 185) AND
THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; (i_pixel_column >= 606) AND (i_pixel_column <= 607))
ELSIF ((i_pixel_row > ATAS) AND (i_pixel_row < BAWAH) THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
AND (i_pixel_column >= KIRI) AND (i_pixel_column <= ELSIF ((i_pixel_row > 167) AND (i_pixel_row < 169) AND
KANAN) AND COUNT_1 =4) (i_pixel_column >= 629) AND (i_pixel_column <= 630))
THEN o_red <= X"00"; o_green <= X"00"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 101) AND (i_pixel_row < 103) AND ELSIF ((i_pixel_row > 155) AND (i_pixel_row < 157) AND
(i_pixel_column >= 200) AND (i_pixel_column <= 201)) (i_pixel_column >= 611) AND (i_pixel_column <= 612))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 204) AND (i_pixel_row < 206) AND ELSIF ((i_pixel_row > 110) AND (i_pixel_row < 112) AND
(i_pixel_column >= 345) AND (i_pixel_column <= 346)) (i_pixel_column >= 614) AND (i_pixel_column <= 615))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 134) AND (i_pixel_row < 136) AND ELSIF ((i_pixel_row > 101) AND (i_pixel_row < 103) AND
(i_pixel_column >= 623) AND (i_pixel_column <= 624)) (i_pixel_column >= 608) AND (i_pixel_column <= 609))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 188) AND (i_pixel_row < 190) AND ELSIF ((i_pixel_row > 251) AND (i_pixel_row < 253) AND
(i_pixel_column >= 600) AND (i_pixel_column <= 601)) (i_pixel_column >= 200) AND (i_pixel_column <= 201))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 121) AND (i_pixel_row < 123) AND ELSIF ((i_pixel_row > 258) AND (i_pixel_row < 260) AND
(i_pixel_column >= 571) AND (i_pixel_column <= 572)) (i_pixel_column >= 203) AND (i_pixel_column <= 204))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 117) AND (i_pixel_row < 119) AND ELSIF ((i_pixel_row > 261) AND (i_pixel_row < 263) AND
(i_pixel_column >= 599) AND (i_pixel_column <= 600)) (i_pixel_column >= 213) AND (i_pixel_column <= 214))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 105) AND (i_pixel_row < 107) AND ELSIF ((i_pixel_row > 264) AND (i_pixel_row < 266) AND
(i_pixel_column >= 581) AND (i_pixel_column <= 582)) (i_pixel_column >= 218) AND (i_pixel_column <= 219))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 109) AND (i_pixel_row < 111) AND ELSIF ((i_pixel_row > 267) AND (i_pixel_row < 269) AND
(i_pixel_column >= 555) AND (i_pixel_column <= 556)) (i_pixel_column >= 231) AND (i_pixel_column <= 232))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 148) AND (i_pixel_row < 150) AND ELSIF ((i_pixel_row > 273) AND (i_pixel_row < 275) AND
(i_pixel_column >= 510) AND (i_pixel_column <= 511)) (i_pixel_column >= 248) AND (i_pixel_column <= 249))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 127) AND (i_pixel_row < 129) AND ELSIF ((i_pixel_row > 286) AND (i_pixel_row < 288) AND
(i_pixel_column >= 589) AND (i_pixel_column <= 590)) (i_pixel_column >= 339) AND (i_pixel_column <= 340))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 143) AND (i_pixel_row < 145) AND ELSIF ((i_pixel_row > 388) AND (i_pixel_row < 390) AND
(i_pixel_column >= 617) AND (i_pixel_column <= 618)) (i_pixel_column >= 301) AND (i_pixel_column <= 302))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 174) AND (i_pixel_row < 176) AND ELSIF ((i_pixel_row > 477) AND (i_pixel_row < 479) AND
(i_pixel_column >= 638) AND (i_pixel_column <= 639)) (i_pixel_column >= 318) AND (i_pixel_column <= 319))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 104) AND (i_pixel_row < 106) AND ELSIF ((i_pixel_row > 461) AND (i_pixel_row < 463) AND
(i_pixel_column >= 616) AND (i_pixel_column <= 617)) (i_pixel_column >= 281) AND (i_pixel_column <= 283))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 116) AND (i_pixel_row < 118) AND ELSIF ((i_pixel_row > 462) AND (i_pixel_row < 464) AND
(i_pixel_column >= 606) AND (i_pixel_column <= 607)) (i_pixel_column >= 283) AND (i_pixel_column <= 284))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 127) AND (i_pixel_row < 129) AND ELSIF ((i_pixel_row > 407) AND (i_pixel_row < 409) AND
(i_pixel_column >= 602) AND (i_pixel_column <= 603)) (i_pixel_column >= 215) AND (i_pixel_column <= 216))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 144) AND (i_pixel_row < 146) AND ELSIF ((i_pixel_row > 411) AND (i_pixel_row < 413) AND
(i_pixel_column >= 573) AND (i_pixel_column <= 574)) (i_pixel_column >= 217) AND (i_pixel_column <= 218))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 192) AND (i_pixel_row < 194) AND ELSIF ((i_pixel_row > 416) AND (i_pixel_row < 418) AND
(i_pixel_column >= 551) AND (i_pixel_column <= 552)) (i_pixel_column >= 234) AND (i_pixel_column <= 235))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 198) AND (i_pixel_row < 200) AND ELSIF ((i_pixel_row > 419) AND (i_pixel_row < 421) AND
(i_pixel_column >= 523) AND (i_pixel_column <= 524)) (i_pixel_column >= 288) AND (i_pixel_column <= 289))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 105) AND (i_pixel_row < 107) AND ELSIF ((i_pixel_row > 323) AND (i_pixel_row < 325) AND
(i_pixel_column >= 512) AND (i_pixel_column <= 513)) (i_pixel_column >= 204) AND (i_pixel_column <= 205))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 137) AND (i_pixel_row < 139) AND ELSIF ((i_pixel_row > 328) AND (i_pixel_row < 330) AND
(i_pixel_column >= 505) AND (i_pixel_column <= 506)) (i_pixel_column >= 213) AND (i_pixel_column <= 214))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 180) AND (i_pixel_row < 182) AND ELSIF ((i_pixel_row > 327) AND (i_pixel_row < 329) AND
(i_pixel_column >= 508) AND (i_pixel_column <= 509)) (i_pixel_column >= 217) AND (i_pixel_column <= 218))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 163) AND (i_pixel_row < 165) AND ELSIF ((i_pixel_row > 318) AND (i_pixel_row < 320) AND
(i_pixel_column >= 560) AND (i_pixel_column <= 561)) (i_pixel_column >= 223) AND (i_pixel_column <= 224))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 169) AND (i_pixel_row < 171) AND ELSIF ((i_pixel_row > 311) AND (i_pixel_row < 313) AND
(i_pixel_column >= 568) AND (i_pixel_column <= 569)) (i_pixel_column >= 229) AND (i_pixel_column <= 230))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 108) AND (i_pixel_row < 110) AND ELSIF ((i_pixel_row > 371) AND (i_pixel_row < 373) AND
(i_pixel_column >= 581) AND (i_pixel_column <= 582)) (i_pixel_column >= 234) AND (i_pixel_column <= 235))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 378) AND (i_pixel_row < 380) AND ELSIF ((i_pixel_row > 419) AND (i_pixel_row < 421) AND
(i_pixel_column >= 266) AND (i_pixel_column <= 267)) (i_pixel_column >= 37) AND (i_pixel_column <= 38))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 384) AND (i_pixel_row < 386) AND ELSIF ((i_pixel_row > 423) AND (i_pixel_row < 425) AND
(i_pixel_column >= 258) AND (i_pixel_column <= 259)) (i_pixel_column >= 31) AND (i_pixel_column <= 32))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 363) AND (i_pixel_row < 365) AND ELSIF ((i_pixel_row > 422) AND (i_pixel_row < 424) AND
(i_pixel_column >= 324) AND (i_pixel_column <= 325)) (i_pixel_column >= 28) AND (i_pixel_column <= 29))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 338) AND (i_pixel_row < 340) AND ELSIF ((i_pixel_row > 418) AND (i_pixel_row < 419) AND
(i_pixel_column >= 331) AND (i_pixel_column <= 332)) (i_pixel_column >= 20) AND (i_pixel_column <= 21))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 346) AND (i_pixel_row < 348) AND ELSIF ((i_pixel_row > 473) AND (i_pixel_row < 475) AND
(i_pixel_column >= 253) AND (i_pixel_column <= 254)) (i_pixel_column >= 12) AND (i_pixel_column <= 13))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 356) AND (i_pixel_row < 358) AND ELSIF ((i_pixel_row > 193) AND (i_pixel_row < 195) AND
(i_pixel_column >= 246) AND (i_pixel_column <= 247)) (i_pixel_column >= 380) AND (i_pixel_column <= 381))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 309) AND (i_pixel_row < 311) AND ELSIF ((i_pixel_row > 389) AND (i_pixel_row < 391) AND
(i_pixel_column >= 213) AND (i_pixel_column <= 214)) (i_pixel_column >= 15) AND (i_pixel_column <= 16))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 328) AND (i_pixel_row < 330) AND ELSIF ((i_pixel_row > 395) AND (i_pixel_row < 397) AND
(i_pixel_column >= 218) AND (i_pixel_column <= 219)) (i_pixel_column >= 18) AND (i_pixel_column <= 19))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 315) AND (i_pixel_row < 317) AND ELSIF ((i_pixel_row > 367) AND (i_pixel_row < 369) AND
(i_pixel_column >= 202) AND (i_pixel_column <= 203)) (i_pixel_column >= 19) AND (i_pixel_column <= 20))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 353) AND (i_pixel_row < 355) AND ELSIF ((i_pixel_row > 353) AND (i_pixel_row < 355) AND
(i_pixel_column >= 84) AND (i_pixel_column <= 85)) (i_pixel_column >= 27) AND (i_pixel_column <= 28))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 354) AND (i_pixel_row < 356) AND ELSIF ((i_pixel_row > 348) AND (i_pixel_row < 350) AND
(i_pixel_column >= 89) AND (i_pixel_column <= 90)) (i_pixel_column >= 14) AND (i_pixel_column <= 15))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 350) AND (i_pixel_row < 352) AND ELSIF ((i_pixel_row > 328) AND (i_pixel_row < 330) AND
(i_pixel_column >= 92) AND (i_pixel_column <= 93)) (i_pixel_column >= 88) AND (i_pixel_column <= 89))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 359) AND (i_pixel_row < 361) AND ELSIF ((i_pixel_row > 421) AND (i_pixel_row < 423) AND
(i_pixel_column >= 91) AND (i_pixel_column <= 92)) (i_pixel_column >= 98) AND (i_pixel_column <= 99))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 300) AND (i_pixel_row < 302) AND ELSIF ((i_pixel_row > 364) AND (i_pixel_row < 368) AND
(i_pixel_column >= 93) AND (i_pixel_column <= 94)) (i_pixel_column >= 96) AND (i_pixel_column <= 97))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 314) AND (i_pixel_row < 316) AND ELSIF ((i_pixel_row > 400) AND (i_pixel_row < 402) AND
(i_pixel_column >= 81) AND (i_pixel_column <= 82)) (i_pixel_column >= 101) AND (i_pixel_column <= 102))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 94) AND (i_pixel_row < 96) AND ELSIF ((i_pixel_row > 414) AND (i_pixel_row < 416) AND
(i_pixel_column >= 389) AND (i_pixel_column <= 390)) (i_pixel_column >= 112) AND (i_pixel_column <= 113))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 80) AND (i_pixel_row < 82) AND ELSIF ((i_pixel_row > 423) AND (i_pixel_row < 425) AND
(i_pixel_column >= 419) AND (i_pixel_column <= 420)) (i_pixel_column >= 116) AND (i_pixel_column <= 117))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 466) AND (i_pixel_row < 468) AND ELSIF ((i_pixel_row > 189) AND (i_pixel_row < 191) AND
(i_pixel_column >= 58) AND (i_pixel_column <= 59)) (i_pixel_column >= 533) AND (i_pixel_column <= 534))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 448) AND (i_pixel_row < 450) AND ELSIF ((i_pixel_row > 177) AND (i_pixel_row < 179) AND
(i_pixel_column >= 54) AND (i_pixel_column <= 55)) (i_pixel_column >= 515) AND (i_pixel_column <= 516))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 437) AND (i_pixel_row < 439) AND ELSIF ((i_pixel_row > 164) AND (i_pixel_row < 166) AND
(i_pixel_column >= 48) AND (i_pixel_column <= 49)) (i_pixel_column >= 507) AND (i_pixel_column <= 508))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 414) AND (i_pixel_row < 416) AND ELSIF ((i_pixel_row > 154) AND (i_pixel_row < 156) AND
(i_pixel_column >= 43) AND (i_pixel_column <= 44)) (i_pixel_column >= 545) AND (i_pixel_column <= 546))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 412) AND (i_pixel_row < 414) AND ELSIF ((i_pixel_row > 149) AND (i_pixel_row < 151) AND
(i_pixel_column >= 39) AND (i_pixel_column <= 40)) (i_pixel_column >= 445) AND (i_pixel_column <= 446))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 133) AND (i_pixel_row < 135) AND ELSIF ((i_pixel_row > 87) AND (i_pixel_row < 89) AND
(i_pixel_column >= 508) AND (i_pixel_column <= 509)) (i_pixel_column >= 370) AND (i_pixel_column <= 371))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 126) AND (i_pixel_row < 128) AND ELSIF ((i_pixel_row > 99) AND (i_pixel_row < 101) AND
(i_pixel_column >= 515) AND (i_pixel_column <= 516)) (i_pixel_column >= 399) AND (i_pixel_column <= 400))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 119) AND (i_pixel_row < 121) AND ELSIF ((i_pixel_row > 192) AND (i_pixel_row < 194) AND
(i_pixel_column >= 522) AND (i_pixel_column <= 523)) (i_pixel_column >= 411) AND (i_pixel_column <= 412))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 104) AND (i_pixel_row < 106) AND ELSIF ((i_pixel_row > 169) AND (i_pixel_row < 171) AND
(i_pixel_column >= 528) AND (i_pixel_column <= 529)) (i_pixel_column >= 422) AND (i_pixel_column <= 423))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 76) AND (i_pixel_row < 78) AND ELSIF ((i_pixel_row > 151) AND (i_pixel_row < 153) AND
(i_pixel_column >= 534) AND (i_pixel_column <= 535)) (i_pixel_column >= 377) AND (i_pixel_column <= 378))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 83) AND (i_pixel_row < 85) AND ELSIF ((i_pixel_row > 147) AND (i_pixel_row < 149) AND
(i_pixel_column >= 383) AND (i_pixel_column <= 384)) (i_pixel_column >= 388) AND (i_pixel_column <= 389))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 392) AND (i_pixel_row < 394) AND ELSIF ((i_pixel_row > 362) AND (i_pixel_row < 364) AND
(i_pixel_column >= 91) AND (i_pixel_column <= 92)) (i_pixel_column >= 599) AND (i_pixel_column <= 600))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 374) AND (i_pixel_row < 376) AND ELSIF ((i_pixel_row > 358) AND (i_pixel_row < 360) AND
(i_pixel_column >= 112) AND (i_pixel_column <= 113)) (i_pixel_column >= 552) AND (i_pixel_column <= 553))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 415) AND (i_pixel_row < 417) AND ELSIF ((i_pixel_row > 353) AND (i_pixel_row < 355) AND
(i_pixel_column >= 142) AND (i_pixel_column <= 143)) (i_pixel_column >= 457) AND (i_pixel_column <= 458))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 443) AND (i_pixel_row < 445) AND ELSIF ((i_pixel_row > 437) AND (i_pixel_row < 439) AND
(i_pixel_column >= 133) AND (i_pixel_column <= 134)) (i_pixel_column >= 449) AND (i_pixel_column <= 450))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 451) AND (i_pixel_row < 453) AND ELSIF ((i_pixel_row > 463) AND (i_pixel_row < 469) AND
(i_pixel_column >= 129) AND (i_pixel_column <= 130)) (i_pixel_column >= 428) AND (i_pixel_column <= 429))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 437) AND (i_pixel_row < 439) AND ELSIF ((i_pixel_row > 477) AND (i_pixel_row < 479) AND
(i_pixel_column >= 92) AND (i_pixel_column <= 93)) (i_pixel_column >= 415) AND (i_pixel_column <= 416))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 428) AND (i_pixel_row < 430) AND ELSIF ((i_pixel_row > 455) AND (i_pixel_row < 457) AND
(i_pixel_column >= 105) AND (i_pixel_column <= 106)) (i_pixel_column >= 402) AND (i_pixel_column <= 403))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 190) AND (i_pixel_row < 192) AND ELSIF ((i_pixel_row > 475) AND (i_pixel_row < 477) AND
(i_pixel_column >= 414) AND (i_pixel_column <= 415)) (i_pixel_column >= 365) AND (i_pixel_column <= 367))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 120) AND (i_pixel_row < 122) AND ELSIF ((i_pixel_row > 470) AND (i_pixel_row < 472) AND
(i_pixel_column >= 418) AND (i_pixel_column <= 419)) (i_pixel_column >= 395) AND (i_pixel_column <= 396))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 125) AND (i_pixel_row < 127) AND ELSIF ((i_pixel_row > 340) AND (i_pixel_row < 342) AND
(i_pixel_column >= 428) AND (i_pixel_column <= 429)) (i_pixel_column >= 493) AND (i_pixel_column <= 494))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 145) AND (i_pixel_row < 147) AND ELSIF ((i_pixel_row > 333) AND (i_pixel_row < 335) AND
(i_pixel_column >= 450) AND (i_pixel_column <= 451)) (i_pixel_column >= 488) AND (i_pixel_column <= 489))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 165) AND (i_pixel_row < 167) AND ELSIF ((i_pixel_row > 292) AND (i_pixel_row < 294) AND
(i_pixel_column >= 444) AND (i_pixel_column <= 445)) (i_pixel_column >= 444) AND (i_pixel_column <= 445))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 170) AND (i_pixel_row < 172) AND ELSIF ((i_pixel_row > 280) AND (i_pixel_row < 282) AND
(i_pixel_column >= 425) AND (i_pixel_column <= 426)) (i_pixel_column >= 432) AND (i_pixel_column <= 433))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 180) AND (i_pixel_row < 182) AND ELSIF ((i_pixel_row > 265) AND (i_pixel_row < 267) AND
(i_pixel_column >= 365) AND (i_pixel_column <= 366)) (i_pixel_column >= 552) AND (i_pixel_column <= 553))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 85) AND (i_pixel_row < 87) AND ELSIF ((i_pixel_row > 260) AND (i_pixel_row < 262) AND
(i_pixel_column >= 357) AND (i_pixel_column <= 358)) (i_pixel_column >= 555) AND (i_pixel_column <= 556))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF ((i_pixel_row > 90) AND (i_pixel_row < 92) AND ELSIF ((i_pixel_row > 279) AND (i_pixel_row < 281) AND
(i_pixel_column >= 388) AND (i_pixel_column <= 389)) (i_pixel_column >= 632) AND (i_pixel_column <= 633))
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF ((i_pixel_row > 205) AND (i_pixel_row < 207) AND ELSIF (i_pixel_row >= O81) AND (i_pixel_row <= O82) AND
(i_pixel_column >= 500) AND (i_pixel_column <= 501)) (i_pixel_column >= O83) AND (i_pixel_column <= O84)
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF ((i_pixel_row > 230) AND (i_pixel_row < 232) AND ELSIF (i_pixel_row >= I11) AND (i_pixel_row <= I12) AND
(i_pixel_column >= 379) AND (i_pixel_column <= 380)) (i_pixel_column >= I13) AND (i_pixel_column <= I14)
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF ((i_pixel_row > 290) AND (i_pixel_row < 292) AND ELSIF (i_pixel_row >= D11) AND (i_pixel_row <= D12) AND
(i_pixel_column >= 365) AND (i_pixel_column <= 366)) (i_pixel_column >= D13) AND (i_pixel_column <= D14)
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF ((i_pixel_row > 300) AND (i_pixel_row < 302) AND ELSIF (i_pixel_row >= D21) AND (i_pixel_row <= D22) AND
(i_pixel_column >= 370) AND (i_pixel_column <= 371)) (i_pixel_column >= D23) AND (i_pixel_column <= D24)
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= A11) AND (i_pixel_row <= A12) AND ELSIF (i_pixel_row >= D31) AND (i_pixel_row <= D32) AND
(i_pixel_column >= A13) AND (i_pixel_column <= A14) (i_pixel_column >= D33) AND (i_pixel_column <= D34)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= A21) AND (i_pixel_row <= A22) AND ELSIF (i_pixel_row >= D41) AND (i_pixel_row <= D42) AND
(i_pixel_column >= A23) AND (i_pixel_column <= A24) (i_pixel_column >= D43) AND (i_pixel_column <= D44)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= A31) AND (i_pixel_row <= A32) AND ELSIF (i_pixel_row >= D51) AND (i_pixel_row <= D52) AND
(i_pixel_column >= A33) AND (i_pixel_column <= A34) (i_pixel_column >= D53) AND (i_pixel_column <= D54)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= A41) AND (i_pixel_row <= A42) AND ELSIF (i_pixel_row >= D61) AND (i_pixel_row <= D62) AND
(i_pixel_column >= A43) AND (i_pixel_column <= A44) (i_pixel_column >= D63) AND (i_pixel_column <= D64)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= A51) AND (i_pixel_row <= A52) AND ELSIF (i_pixel_row >= E11) AND (i_pixel_row <= E12) AND
(i_pixel_column >= A53) AND (i_pixel_column <= A54) (i_pixel_column >= E13) AND (i_pixel_column <= E14)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= A61) AND (i_pixel_row <= A62) AND ELSIF (i_pixel_row >= E21) AND (i_pixel_row <= E22) AND
(i_pixel_column >= A63) AND (i_pixel_column <= A64) (i_pixel_column >= E23) AND (i_pixel_column <= E24)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= V11) AND (i_pixel_row <= V12) AND ELSIF (i_pixel_row >= E31) AND (i_pixel_row <= E32) AND
(i_pixel_column >= V13) AND (i_pixel_column <= V14) (i_pixel_column >= E33) AND (i_pixel_column <= E34)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= V21) AND (i_pixel_row <= V22) AND ELSIF (i_pixel_row >= E41) AND (i_pixel_row <= E42) AND
(i_pixel_column >= V23) AND (i_pixel_column <= V24) (i_pixel_column >= E43) AND (i_pixel_column <= E44)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= V31) AND (i_pixel_row <= V32) AND ELSIF (i_pixel_row >= R11) AND (i_pixel_row <= R12) AND
(i_pixel_column >= V33) AND (i_pixel_column <= V34) (i_pixel_column >= R13) AND (i_pixel_column <= R14)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= V41) AND (i_pixel_row <= V42) AND ELSIF (i_pixel_row >= R21) AND (i_pixel_row <= R22) AND
(i_pixel_column >= V43) AND (i_pixel_column <= V44) (i_pixel_column >= R23) AND (i_pixel_column <= R24)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= V51) AND (i_pixel_row <= V52) AND ELSIF (i_pixel_row >= R31) AND (i_pixel_row <= R32) AND
(i_pixel_column >= V53) AND (i_pixel_column <= V54) (i_pixel_column >= R33) AND (i_pixel_column <= R34)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= O11) AND (i_pixel_row <= O12) AND ELSIF (i_pixel_row >= R41) AND (i_pixel_row <= R42) AND
(i_pixel_column >= O13) AND (i_pixel_column <= O14) (i_pixel_column >= R43) AND (i_pixel_column <= R44)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= O21) AND (i_pixel_row <= O22) AND ELSIF (i_pixel_row >= R51) AND (i_pixel_row <= R52) AND
(i_pixel_column >= O23) AND (i_pixel_column <= O24) (i_pixel_column >= R53) AND (i_pixel_column <= R54)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= O31) AND (i_pixel_row <= O32) AND ELSIF (i_pixel_row >= R61) AND (i_pixel_row <= R62) AND
(i_pixel_column >= O33) AND (i_pixel_column <= O34) (i_pixel_column >= R63) AND (i_pixel_column <= R64)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00";
ELSIF (i_pixel_row >= O41) AND (i_pixel_row <= O42) AND ELSIF (i_pixel_row >= C11) AND (i_pixel_row <= C12) AND
(i_pixel_column >= O43) AND (i_pixel_column <= O44) (i_pixel_column >= C13) AND (i_pixel_column <= C14)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF (i_pixel_row >= O51) AND (i_pixel_row <= O52) AND ELSIF (i_pixel_row >= C21) AND (i_pixel_row <= C22) AND
(i_pixel_column >= O53) AND (i_pixel_column <= O54) (i_pixel_column >= C23) AND (i_pixel_column <= C24)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF (i_pixel_row >= O61) AND (i_pixel_row <= O62) AND ELSIF (i_pixel_row >= C31) AND (i_pixel_row <= C32) AND
(i_pixel_column >= O63) AND (i_pixel_column <= O64) (i_pixel_column >= C33) AND (i_pixel_column <= C34)
THEN o_red <= X"00"; o_green <= X"FF"; o_blue <= X"00"; THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF (i_pixel_row >= O71) AND (i_pixel_row <= O72) AND ELSIF (i_pixel_row >= C41) AND (i_pixel_row <= C42) AND
(i_pixel_column >= O73) AND (i_pixel_column <= O74) (i_pixel_column >= C43) AND (i_pixel_column <= C44)
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; IF clock80hz'event and clock80hz = '1' AND COUNT_1 =4
ELSIF (i_pixel_row >= C51) AND (i_pixel_row <= C52) AND THEN -- TEMBOK BERGERAK
(i_pixel_column >= C53) AND (i_pixel_column <= C54) ATAS := ATAS + DIFFICULTY;
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; BAWAH := BAWAH + DIFFICULTY;
ELSIF (i_pixel_row >= C61) AND (i_pixel_row <= C62) AND IF ATAS >= 480 THEN
(i_pixel_column >= C63) AND (i_pixel_column <= C64) -- CELAH ACAK
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; ATAS := 0;
ELSIF (i_pixel_row >= C71) AND (i_pixel_row <= C72) AND BAWAH := 49;
(i_pixel_column >= C73) AND (i_pixel_column <= C74) KANAN := KANAN + (COUNT * 80);
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; KIRI := KIRI + (COUNT * 80);
ELSIF (i_pixel_row >= C81) AND (i_pixel_row <= C82) AND
(i_pixel_column >= C83) AND (i_pixel_column <= C84) IF KANAN >= 640 AND KANAN < 1280 THEN
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; KANAN := KANAN - 640;
ELSIF (i_pixel_row >= C91) AND (i_pixel_row <= C92) AND KIRI := KIRI - 640;
(i_pixel_column >= C93) AND (i_pixel_column <= C94) ELSIF KANAN >= 1280 AND KANAN < 1920 THEN
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; KANAN := KANAN - 1280;
ELSIF (i_pixel_row >= C101) AND (i_pixel_row <= C102) KIRI := KIRI - 1280;
AND (i_pixel_column >= C103) AND (i_pixel_column <= ELSIF KANAN >= 1920 AND KANAN < 2560 THEN
C104) KANAN := KANAN - 1920;
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; KIRI := KIRI - 1920;
ELSIF (i_pixel_row >= C111) AND (i_pixel_row <= C112) ELSIF KANAN >= 2560 AND KANAN < 3200 THEN
AND (i_pixel_column >= C113) AND (i_pixel_column <= KANAN := KANAN - 2560;
C114) KIRI := KIRI - 2560;
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; ELSIF KANAN >= 3200 THEN
ELSIF (i_pixel_row >= C121) AND (i_pixel_row <= C122) KANAN := KANAN - 3200;
AND (i_pixel_column >= C123) AND (i_pixel_column <= KIRI := KIRI - 3200;
C124) END IF;
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; END IF;
ELSIF (i_pixel_row >= C131) AND (i_pixel_row <= C132) ELSE
AND (i_pixel_column >= C133) AND (i_pixel_column <= ATAS := ATAS;
C134) BAWAH := BAWAH;
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF";
ELSIF (i_pixel_row >= C141) AND (i_pixel_row <= C142) END IF;
AND (i_pixel_column >= C143) AND (i_pixel_column <=
C144) IF clock80hz'event and clock80hz = '1' AND COUNT_1 =4
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; AND i_M_US = '1' AND i_K_US = '1' AND i_H_US = '0' AND
ELSIF (i_pixel_row >= C151) AND (i_pixel_row <= C152) i_M_BT = '1' THEN
AND (i_pixel_column >= C153) AND (i_pixel_column <= BATASKANAN := BATASKANAN + KECEPATAN; ---Arah
C154) kanan
THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; BATASKIRI := BATASKIRI + KECEPATAN;
IF BATASKANAN >= 639 THEN
ELSE o_red <= X"00"; o_green <= X"00"; o_blue <= X"00"; BATASKANAN := 639;
END IF; BATASKIRI := 639 -49;
END IF;
IF clock60hz'event and clock60hz = '1' AND COUNT_1 =4
THEN --NAIK LEVEL ELSIF clock80hz'event and clock80hz = '1' AND COUNT_1 =4
COUNT := COUNT + 1; AND i_M_US = '1' AND i_K_US = '1' AND i_H_US = '1' AND
IF COUNT >= 33 THEN COUNT := 3; i_M_BT = '0' THEN
BATASKANAN := BATASKANAN - KECEPATAN; ---Arah
DIFFICULTY := DIFFICULTY + 1; Kiri
IF DIFFICULTY >= 5 THEN DIFFICULTY := 5; --LEVEL BATASKIRI := BATASKIRI - KECEPATAN;
MAX IF BATASKIRI <= 0 THEN
END IF; BATASKIRI := 0;
END IF; BATASKANAN := 49;
ELSE END IF;
COUNT := COUNT;
END IF; ELSE
IF clock80hz'event and clock80hz = '1' AND COUNT_1 =4
THEN BATASKIRI := BATASKIRI;
IF i_K_BT = '0' THEN BATASKANAN := BATASKANAN;
KECEPATAN := 3;
ELSE END IF;
KECEPATAN := 5;
END IF; IF (BAWAH >= 448) AND (( BATASKIRI < KIRI) OR
END IF; (BATASKANAN > KANAN)) AND (COUNT_1 =4) THEN
COUNT := 3;
COUNT_1 := 0;
DIFFICULTY := 1; -- MENABRAK
ATAS := 1;
BAWAH := 50;
END IF;
END PROCESS;

tempik1 : clockdiv1
PORT MAP (
CLK => i_H_BT,
DIVOUT => clock60hz
);
tempik : clockdiv
PORT MAP (
CLK => i_H_BT,
DIVOUT => clock80hz
);

END behavioral;

Anda mungkin juga menyukai