• Tidak ada hasil yang ditemukan

MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL 2. STUDI PUSTAKA

N/A
N/A
Protected

Academic year: 2021

Membagikan "MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL 2. STUDI PUSTAKA"

Copied!
7
0
0

Teks penuh

(1)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 1

MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL

Reno Rasyad (13511045)

Yonas Dwiananta (18011015)

Asisten: Rizka Widyarini

Tanggal Percobaan: 5/12/2012

EL2195-Praktikum Sistem Digital

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

Abstrak

Percobaan yang dilakukan kali ini adalah merancang sendiri

rangkaian digital yang terdiri dari tahapan desain,

implementasi, dan pengujuan sistem. Persyaratannya adalah :

menggunakan satu atau lebih interface yang ada di board

(VGA, soundcard, LCD, USB, dan lainnya), interaktif

(mempunyai input, push button, mouse, keyboard),

mempunyai bagian FSM, seidikitnya terdiri dari 3 blok.

Kata kunci: FPGA, VHDL, VGA.

1. P

ENDAHULUAN

Percobaan kali ini dilakukan dengan tujuan:

1. Menspesifikasikan suatu system digital

sederhana.

2. Membagi system menjadi satu atau lebih

jalur data dan kembali.

3. Mendesain jalur data untuk sistem.

4. Mendesain kendali untuk sistem.

5. Mengintegrasikan jalur data dan kendali ke

dalam sistem secara keseluruhan.

6. Melakukan tes menyeluruh terhadap sistem.

7. Mengimplementasikan

sistem

digital

menggunakan FPGA dan komponen

tambahan yang diperlukan.

8. Menguji dan menganalisa sistem yang

sudah dibangun

Untuk

itu,

dilakukan

percobaan

seperti

menghasilkan keluaran berwarna merah dan putih,

seperti bendera Indonesia pada layar, agar

praktikan mengerti apa saja yang sebenarnya

dibutuhkan untuk menghasilkan keluaran seperti

diatas. Percobaan membuat kotak bertujuan sama,

agar praktikan lebih paham lagi tentang kode

VHDL. Percobaan terakhir dilakukan agar

praktikan lebih mengerti fungsi counter dan cara

kerja menggerakkan suatu objek pada VGA.

2. S

TUDI

P

USTAKA

2.1

FSM

Ada dua jenis rangkaian yaitu rangkaian

kombinasional

dan

rangkaian

sekuensial.

Perbedaan mendasar dari kedua rangkaian

tersebut adalah ada tidaknya memori state.

Keluaran rangkaian sekuensial bergantung pada

state dan bergantung pada masuknya (rangkaian

Mealy) atau hanya tergantung pada state saja

(rangkaian Moore)

salah satu model yang sering digunakan untuk

membantu merancang rangkaian sekuensial

adalah Finite State Machine (FSM). Dinamakan

FSM karena jumlah state yang mungkin terbatas

dan rangkaian sekuensial bekerja mirip dengan

mesin yang beroperasi dengan urutan state.

Level abstaksi perancangan FSM pun

bertingkat-tingkat. pada perancangan dengan level behavioral,

sebelum mengimplementasikan menggunakan

VHDL, kita cukup membuat state diagram atau

flow chart statenya. Deklarasi-deklarasi yang harus

ada pada state diagram adalah deklarasi input dan

output, definisi state, transisi dan keluarannya.

Gambar di bawah adalah contoh gambar state

diagram FSM Mealy .

2.2

VGA

Video Graphics Array (VGA) masih menjadi

interface yang populer untuk sebuah tampilan.

VGA interface ini masih banyak ditemukan di

beberapa device sekarang, misalnya layar LCD dan

proyektor. VGA interface ini terdapat juga di board

altera yang kita gunakan saat ini.

(2)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 2

Pada percobaan kali ini tampilan VGA

digunakan agar tampilan hasil desain yang kita

rancang menjadi lebih menarik, tidak terbatas

hanya pada LED atau 7-Segment. Tujuan

percobaan kali ini juga adalah memberikan

ilustrasi penggunaan interface I/O yang ada pada

FPGA, misalnya GPIO, komunikasi serial

menggunakan RS232, Audio CODEC, LCD

karakter 16x2, dll. Interface ke VGA menggunakan

2 jenis sinyal, yaitu : sinyal warna (Merah, Hijau,

dan Biru) dan sinyal sinkron (horizontal dan

vertical). Berikut adalah penjelasan beberapa sinyal

yang digunakan :

a. Horizontal Sync (TTL level)

Sinyal ini akan aktif pada range piksel

kolom 0 sampai dengan 639. Sehingga

kalau sinyal ini tidak aktif, yang terjadi

adalah pergantian baris.

b. Vertical Sync (TTL level)

Sinyal ini akan aktif pada range piksel baris

0 sampai dengan 479. Sehingga kalau

sinyal ini tidak aktif, yang terjadi adalah

pergantian layar, atau kembali ke baris

pertama.

c. Sinyal RGB (Analog 3 pin: 0,7 – 1 V)

Sinyal ini merepresentasikan intensitas

untuk masing2 komponen warna merah,

hijau, dan biru untuk setiap pixel yang saat

itu aktif. Sehingga yang terjadi ketiga

sinyal ini berubah- ubah sesuai pixel yang

sedang aktif dalam proses scanning (dari

kiri ke kanan untuk setiap baris,

selanjutnya dari baris paling atas sampai

baris paling bawah).

3. M

ETODOLOGI

Peralatan yang digunakan para percobaan ini

antara lain:

1. Komputer/PC

yang

telah

terinstal

program Quartus II

2. Catu daya + kabel dan konektor tambahan

serta kabel downloader

3. Monitor LCD

4. FPGA devepment board tipe ALTERA DE1

3.1

P

ERCOBAAN

Gambar 3-1 Diagram Percobaan

4. H

ASIL DAN

A

NALISIS

4.1

S

PESIFIKASI

Proyek yang praktikan buat adalah sebuah game

ping-pong sederhana. Game ini terdiri dari modus:

1. Modus 2 pemain: Game ini hanya

memungkinkan untuk dimainkan oleh dua orang

pemain

2. Single ball mode/ Multi-ball mode: Mode

standar adalah mode single-ball, sehingga pada

layar hanya terdapat satu bola saja. Sedangkan

apabila

mode

multi-ball

diaktifkan,

memungkinkan untuk adanya bola lebih dari satu

3. Reset score: Memungkinkan user untuk mereset

scorenya

Gameplay:

Bola akan berjalan dengan arah kanan-bawah pada

awalnya, lalu apabila menabrak dinding kanan,

arah horizontal bola akan berubah menjadi ke kiri

namun arah vertikal tetap. Apabila menabrak

dinding kanan juga arah horizontal akan berubah

menjadi ke kanan namun arah vertikal tetap.

Sedangkan apabila menabrak dinding atas, bawah,

ataupun kedua paddle arah vertikal bola akan

berubah (apabila awalnya ke arah atas akan

menjadi ke arah bawah, begitupun sebaliknya) dan

arah horizontal akan tetap.

Apabila bola memantul dikarenakan menabrak

dinding atas, score pada pemain yang di bawah

akan bertambah 1, dan apabila bola memantul

dikarenakan menabrak dinding bawah, score pada

pemain yang di atas akan bertambah 1.

Manajemen File

• Buat folder sebagai direktori

kerja baru untuk praktikum

kali ini

• lakukan realisasi kode dari

ide yang telah dibuat

Implementasi

• Implementasikan desain

tersebut di board sehingga

terlihat di monitor

(3)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 3

Tugas pemain atas adalah menjaga agar bola tidak

memantul di batas atas dengan menggerakan

paddle yang dimilikinya ke kiri atau ke kanan,

demikian sebaliknya untuk pemain bawah. Pemain

dengan score terbanyak akan memenangkan game

ini.

4.2

P

ROSES

D

ESAIN

Tidak dibutuhkan waktu lama untuk membuat

konsep permainan ini, yang membutuhkan waktu

ialah merealisasikan konsep ini menjadi deretan

kode. Pada praktikum sebelumnya, kami telah

berhasil membuat permainan ping-pong sederhana

ini, tp tanpa scoring.

Setelah praktikum, kode untuk scoring dibuat.

Akan tetapi, pada saat hari praktikum selanjutnya,

score tidak muncul ke layar, sehingga dilakukan

perbaikan kode sampai akhirnya scoring bisa

muncul di layar monitor.

4.3

H

ASIL

Berikut adalah kode yang digunakan untuk

membuat game ping-pong ini:

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_clk : IN STD_LOGIC; i_left : IN STD_LOGIC; i_right : IN STD_LOGIC; i_up : IN STD_LOGIC; i_down : IN STD_LOGIC; i_25 : IN STD_LOGIC; i_10 : IN STD_LOGIC; i_5 : IN STD_LOGIC; i_pixel_column : IN STD_LOGIC_VECTOR( 9 DOWNTO 0 ); i_pixel_row : IN STD_LOGIC_VECTOR( 9 DOWNTO 0 ); o_red : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 ); o_green : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 ); o_blue : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 )); END color_rom_vhd;

ARCHITECTURE behavioral OF color_rom_vhd IS

SHARED VARIABLE C_0 : INTEGER := 300; SHARED VARIABLE C_1 : INTEGER := 500; SHARED VARIABLE C2_0 : INTEGER := 300; SHARED VARIABLE C2_1 : INTEGER := 500; CONSTANT R_MAX : INTEGER := 480;

CONSTANT C_MAX : INTEGER := 640; CONSTANT C_scoreatas1 : INTEGER := 20; CONSTANT C_scoreatas2 : INTEGER := 40; CONSTANT C_scorebawah1 : INTEGER := 420; CONSTANT C_scorebawah2 : INTEGER := 440; CONSTANT R_MIN : INTEGER := 0;

CONSTANT C_MIN : INTEGER := 0; CONSTANT bolahawal : INTEGER := 600; CONSTANT bolavawal : INTEGER := 240; SHARED VARIABLE bolah : INTEGER:= 600; SHARED VARIABLE bolav : INTEGER:= 240; SHARED VARIABLE bolahnext : INTEGER:= 0; SHARED VARIABLE bolavnext : INTEGER:= 0; SIGNAL score1, score2, score1pul, score2pul : INTEGER:= 0;

SIGNAL div : BIT; SIGNAL M : STD_LOGIC; SIGNAL B : STD_LOGIC; SIGNAL arahh : STD_LOGIC; SIGNAL arahv : STD_LOGIC; SIGNAL berubah : STD_LOGIC; CONSTANT R1 : INTEGER := 277; CONSTANT R4 : INTEGER := 335; CONSTANT R7 : INTEGER := 306; CONSTANT C1kiri : INTEGER := 12; CONSTANT C4kiri : INTEGER := 12; CONSTANT C7kiri : INTEGER := 12; CONSTANT C1kanan : INTEGER := 37; CONSTANT C4kanan : INTEGER := 37; CONSTANT C7kanan : INTEGER := 37; CONSTANT C2 : INTEGER := 39; CONSTANT C3 : INTEGER := 39; CONSTANT C5 : INTEGER := 10; CONSTANT C6 : INTEGER := 10; CONSTANT R2atas : INTEGER := 284; CONSTANT R3atas : INTEGER := 313; CONSTANT R5atas : INTEGER := 313; CONSTANT R6atas : INTEGER := 284; CONSTANT R2bawah : INTEGER := 309; CONSTANT R3bawah : INTEGER := 338; CONSTANT R5bawah : INTEGER := 338; CONSTANT R6bawah : INTEGER := 309; SIGNAL seg_atkir1 : STD_LOGIC; SIGNAL seg_atkir2 : STD_LOGIC; SIGNAL seg_atkir3 : STD_LOGIC; SIGNAL seg_atkir4 : STD_LOGIC; SIGNAL seg_atkir5 : STD_LOGIC; SIGNAL seg_atkir6 : STD_LOGIC; SIGNAL seg_atkir7 : STD_LOGIC; SIGNAL seg_atkan1 : STD_LOGIC; SIGNAL seg_atkan2 : STD_LOGIC; SIGNAL seg_atkan3 : STD_LOGIC; SIGNAL seg_atkan4 : STD_LOGIC; SIGNAL seg_atkan5 : STD_LOGIC; SIGNAL seg_atkan6 : STD_LOGIC; SIGNAL seg_atkan7 : STD_LOGIC;

(4)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 4

SIGNAL seg_bawkir1 : STD_LOGIC; SIGNAL seg_bawkir2 : STD_LOGIC; SIGNAL seg_bawkir3 : STD_LOGIC; SIGNAL seg_bawkir4 : STD_LOGIC; SIGNAL seg_bawkir5 : STD_LOGIC; SIGNAL seg_bawkir6 : STD_LOGIC; SIGNAL seg_bawkir7 : STD_LOGIC; SIGNAL seg_bawkan1 : STD_LOGIC; SIGNAL seg_bawkan2 : STD_LOGIC; SIGNAL seg_bawkan3 : STD_LOGIC; SIGNAL seg_bawkan4 : STD_LOGIC; SIGNAL seg_bawkan5 : STD_LOGIC; SIGNAL seg_bawkan6 : STD_LOGIC; SIGNAL seg_bawkan7 : STD_LOGIC; SIGNAL menangatas : STD_LOGIC; SIGNAL menangbawah : STD_LOGIC; COMPONENT CLOCKDIV IS

PORT (i_25: IN std_logic; i_10: IN std_logic; i_5: IN std_logic; CLK: IN std_logic; DIVOUT: buffer BIT); end COMPONENT; BEGIN clock : CLOCKDIV PORT MAP( i_25 => i_25, i_10 => i_10, i_5 => i_5, CLK => i_clk, DIVOUT => div ); PROCESS(score1, score2) BEGIN IF (score2 =2) THEN seg_bawkir1 <= '0'; seg_bawkir2 <= '1'; seg_bawkir3 <= '1'; seg_bawkir4 <= '0'; seg_bawkir5 <= '0'; seg_bawkir6 <= '0'; seg_bawkir7 <= '0'; ELSIF (score2 =4 ) THEN

seg_bawkir1 <= '1'; seg_bawkir2 <= '1'; seg_bawkir3 <= '0'; seg_bawkir4 <= '1'; seg_bawkir5 <= '1'; seg_bawkir6 <= '0'; seg_bawkir7 <= '1'; ELSIF (score2 =6 ) THEN

seg_bawkir1 <= '1'; seg_bawkir2 <= '1'; seg_bawkir3 <= '1'; seg_bawkir4 <= '1'; seg_bawkir5 <= '0'; seg_bawkir6 <= '0'; seg_bawkir7 <= '1'; ELSIF (score2 =8 ) THEN

seg_bawkir1 <= '0'; seg_bawkir2 <= '1'; seg_bawkir3 <= '1'; seg_bawkir4 <= '0'; seg_bawkir5 <= '0'; seg_bawkir6 <= '1'; seg_bawkir7 <= '1'; ELSIF (score2 =10 ) THEN

seg_bawkir1 <= '1'; seg_bawkir2 <= '0'; seg_bawkir3 <= '1'; seg_bawkir4 <= '1'; seg_bawkir5 <= '0'; seg_bawkir6 <= '1'; seg_bawkir7 <= '1';

ELSIF (score2 =12 ) THEN seg_bawkir1 <= '1'; seg_bawkir2 <= '0'; seg_bawkir3 <= '1'; seg_bawkir4 <= '1'; seg_bawkir5 <= '1'; seg_bawkir6 <= '1'; seg_bawkir7 <= '1'; ELSIF (score2 =14 ) THEN

seg_bawkir1 <= '1'; seg_bawkir2 <= '1'; seg_bawkir3 <= '1'; seg_bawkir4 <= '0'; seg_bawkir5 <= '0'; seg_bawkir6 <= '0'; seg_bawkir7 <= '0'; ELSIF (score2 =16 ) THEN

seg_bawkir1 <= '1'; seg_bawkir2 <= '1'; seg_bawkir3 <= '1'; seg_bawkir4 <= '1'; seg_bawkir5 <= '1'; seg_bawkir6 <= '1'; seg_bawkir7 <= '1'; ELSIF (score2 =18 ) THEN

seg_bawkir1 <= '1'; seg_bawkir2 <= '1'; seg_bawkir3 <= '1'; seg_bawkir4 <= '1'; seg_bawkir5 <= '0'; seg_bawkir6 <= '1'; seg_bawkir7 <= '1'; ELSE seg_bawkir1 <= '1'; seg_bawkir2 <= '1'; seg_bawkir3 <= '1'; seg_bawkir4 <= '1'; seg_bawkir5 <= '1'; seg_bawkir6 <= '1'; seg_bawkir7 <= '0'; END IF; IF (score1 =2) THEN seg_atkir1 <= '0'; seg_atkir2 <= '1'; seg_atkir3 <= '1'; seg_atkir4 <= '0'; seg_atkir5 <= '0'; seg_atkir6 <= '0'; seg_atkir7 <= '0'; ELSIF (score1 =4 ) THEN

seg_atkir1 <= '1'; seg_atkir2 <= '1'; seg_atkir3 <= '0'; seg_atkir4 <= '1'; seg_atkir5 <= '1'; seg_atkir6 <= '0'; seg_atkir7 <= '1'; ELSIF (score1 =6 ) THEN

seg_atkir1 <= '1'; seg_atkir2 <= '1'; seg_atkir3 <= '1'; seg_atkir4 <= '1'; seg_atkir5 <= '0'; seg_atkir6 <= '0'; seg_atkir7 <= '1'; ELSIF (score1 =8 ) THEN

seg_atkir1 <= '0'; seg_atkir2 <= '1'; seg_atkir3 <= '1'; seg_atkir4 <= '0'; seg_atkir5 <= '0'; seg_atkir6 <= '1'; seg_atkir7 <= '1';

(5)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 5

ELSIF (score1 =10 ) THEN seg_atkir1 <= '1'; seg_atkir2 <= '0'; seg_atkir3 <= '1'; seg_atkir4 <= '1'; seg_atkir5 <= '0'; seg_atkir6 <= '1'; seg_atkir7 <= '1'; ELSIF (score1 =12 ) THEN

seg_atkir1 <= '1'; seg_atkir2 <= '0'; seg_atkir3 <= '1'; seg_atkir4 <= '1'; seg_atkir5 <= '1'; seg_atkir6 <= '1'; seg_atkir7 <= '1'; ELSIF (score1 =14 ) THEN

seg_atkir1 <= '1'; seg_atkir2 <= '1'; seg_atkir3 <= '1'; seg_atkir4 <= '0'; seg_atkir5 <= '0'; seg_atkir6 <= '0'; seg_atkir7 <= '0'; ELSIF (score1 =16 ) THEN

seg_atkir1 <= '1'; seg_atkir2 <= '1'; seg_atkir3 <= '1'; seg_atkir4 <= '1'; seg_atkir5 <= '1'; seg_atkir6 <= '1'; seg_atkir7 <= '1'; ELSIF (score1 =18 ) THEN

seg_atkir1 <= '1'; seg_atkir2 <= '1'; seg_atkir3 <= '1'; seg_atkir4 <= '1'; seg_atkir5 <= '0'; seg_atkir6 <= '1'; seg_atkir7 <= '1'; ELSE seg_atkir1 <= '1'; seg_atkir2 <= '1'; seg_atkir3 <= '1'; seg_atkir4 <= '1'; seg_atkir5 <= '1'; seg_atkir6 <= '1'; seg_atkir7 <= '0'; END IF; END PROCESS; PROCESS(i_pixel_row,i_pixel_column, i_left, i_right, i_up, i_down) BEGIN

IF ((i_pixel_column > C_0) AND

(i_pixel_column < C_1) AND (i_pixel_row = R_MIN+10) ) OR ((i_pixel_column > C2_0) AND (i_pixel_column < C2_1) AND

(i_pixel_row = R_MAX-10) ) THEN M <= '1'; ELSIF ((i_pixel_column > bolah-10) AND (i_pixel_column < bolah+10) AND

(i_pixel_row > bolav-10) AND (i_pixel_row < bolav+10) ) THEN M <= '1';

ELSIF ((i_pixel_column > C1kiri) AND (i_pixel_column < C1kanan) AND

(i_pixel_row = R1) AND (seg_bawkir1 = '1')) THEN M <= '1';

ELSIF ((i_pixel_column > C1kiri) AND (i_pixel_column < C1kanan) AND

(i_pixel_row = R4) AND (seg_bawkir4 = '1')) THEN M <= '1';

ELSIF ((i_pixel_column > C1kiri) AND (i_pixel_column < C1kanan) AND

(i_pixel_row = R7) AND (seg_bawkir7 = '1')) THEN M <= '1';

ELSIF ((i_pixel_row > R2atas) AND (i_pixel_row < R2bawah) AND

(i_pixel_column = C2) AND (seg_bawkir2 = '1')) THEN M <= '1';

ELSIF ((i_pixel_row > R3atas) AND (i_pixel_row < R3bawah) AND

(i_pixel_column = C3) AND (seg_bawkir3 = '1')) THEN M <= '1';

ELSIF ((i_pixel_row > R5atas) AND (i_pixel_row < R5bawah) AND

(i_pixel_column = C5) AND (seg_bawkir5 = '1')) THEN M <= '1';

ELSIF ((i_pixel_row > R6atas) AND (i_pixel_row < R6bawah) AND

(i_pixel_column = C6) AND (seg_bawkir6 = '1')) THEN M <= '1';

ELSIF ((i_pixel_column > C1kiri) AND (i_pixel_column < C1kanan) AND

(i_pixel_row = R1-100) AND (seg_atkir1 = '1')) THEN M <= '1';

ELSIF ((i_pixel_column > C1kiri) AND (i_pixel_column < C1kanan) AND

(i_pixel_row = R4-100) AND (seg_atkir4 = '1')) THEN M <= '1';

ELSIF ((i_pixel_column > C1kiri) AND (i_pixel_column < C1kanan) AND

(i_pixel_row = R7-100) AND (seg_atkir7 = '1')) THEN M <= '1';

ELSIF ((i_pixel_row > R2atas-100) AND (i_pixel_row < R2bawah-100) AND

(i_pixel_column = C2) AND (seg_atkir2 = '1')) THEN M <= '1';

ELSIF ((i_pixel_row > R3atas-100) AND (i_pixel_row < R3bawah-100) AND

(i_pixel_column = C3) AND (seg_atkir3 = '1')) THEN M <= '1';

ELSIF ((i_pixel_row > R5atas-100) AND (i_pixel_row < R5bawah-100) AND

(i_pixel_column = C5) AND (seg_atkir5 = '1')) THEN M <= '1';

ELSIF ((i_pixel_row > R6atas-100) AND (i_pixel_row < R6bawah-100) AND

(i_pixel_column = C6) AND (seg_atkir6 = '1')) THEN M <= '1';

ELSIF ((i_pixel_row > 0) AND

(i_pixel_row < 240) AND (i_pixel_column > 0) AND (menangbawah = '1')) THEN M <= '1';

ELSIF ((i_pixel_row > 240) AND (i_pixel_row < 639) AND (i_pixel_column > 0) AND (menangatas = '1')) THEN M <= '1'; ELSE

M <= '0'; END IF;

IF (B = '1') THEN o_red <= X"00"; o_green <= X"00"; o_blue <= X"FF"; ELSIF (M = '1') THEN o_red <= X"FF"; o_green <= X"00"; o_blue <= X"00"; ELSIF (M = '0') THEN o_red <= X"FF"; o_green <= X"FF"; o_blue <= X"FF"; END IF;

IF ((div'EVENT) AND (div = '1')) THEN IF ((i_left = '0') AND (C_0 > 0)) THEN C_0 := C_0 - 1; C_1 := C_1 - 1; END IF; IF ((i_right = '0') AND (C_1 <= C_MAX)) THEN C_0 := C_0 + 1; C_1 := C_1 + 1; END IF;

(6)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 6

Setelah diimplementasikan, game ping-pong ini

berhasil ditampilkan di layar monitor dan

berfungsi dengan baik.

Gambar 4-1 Hasil Implementasi Percobaan, ditampilkan di layar monitor

Gambar 4-2 Hasil Implementasi Percobaan, ditampilkan di layar monitor

Gambar 4-3 Hasil Implementasi Percobaan, ditampilkan di layar monitor

Dapat dilihat bahwa implementasi berhasil

dilakukan, dengan menampilkan score di bagian

kiri layar (dapat dilihat di video).

4.4

K

ESESUAIAN

H

ASIL

D

ENGAN

S

PESIFIKASI

Pada spesifikasi awal, kami menginginkan adanya:

modus 2 pemain, single dan multi-ball mode, serta

reset score. Pada akhirnya, yang terealisasikan

adalah modus 2 pemain dan single-ball mode,

dengan

score

berbentuk

7segment

yang

ditampilkan pada layar monitor.

IF ((i_up = '0') AND (C2_0 > 0)) THEN C2_0 := C2_0 - 1; C2_1 := C2_1 - 1; END IF; IF ((i_down = '0') AND (C2_1 <= C_MAX)) THEN C2_0 := C2_0 + 1; C2_1 := C2_1 + 1; END IF; if (bolah=bolahawal and bolav=bolavawal) then arahh <= '1'; arahv <= '1'; elsif (bolah+10=C_MAX) then

arahh <= '0'; arahv <= arahv; elsif (bolah-10=C_MIN) then

arahh <= '1'; arahv <= arahv; elsif (bolav-10=R_MIN) then

arahh <= arahh; arahv <= '1'; score2 <= score2+1; elsif (bolav+10=R_MAX) then

arahh <= arahh; arahv <= '0'; score1 <= score1+1;

elsif (bolav-10=R_MIN+10) and ((bolah-10>C_0) and (bolah+10<C_1)) then

arahh <= arahh; arahv <= '1'; elsif (bolav+10=R_MAX-10) and ((bolah-10>C2_0) and (bolah+10<C2_1)) then arahh <= arahh; arahv <= '0'; else arahh <= arahh; arahv <= arahv; berubah <= '0'; end if; if (arahh='1') then bolahnext := bolah+1; else bolahnext := bolah-1; end if; if (arahv='1') then bolavnext := bolav+1; else bolavnext := bolav-1; end if; bolav := bolavnext; bolah := bolahnext; if (score1>19) then menangatas<='1'; elsif (score2>19) then

menangbawah<='1'; else menangatas <= '0'; menangbawah <= '0'; end if; END IF; END PROCESS; END behavioral;

(7)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 7

Sebelumnya tidak ada mode untuk akhir

permainan, tapi akhirnya dibuat, dimana layar

yang dipakai sebagai daerah pemain tersebut akan

berwarna merah apabila pemain tersebut kalah.

4.5

P

EMBAGIAN

K

ERJA

Kami berdua bekerja bersama-sama untuk

menghasilkan permainan ping-pong sederhana ini,

kami berdiskusi dan saling membantu satu sama

lain.

4.6

E

MAIL

A

NGGOTA

K

ELOMPOK

Reno Rasyad (13511045) :

rasyad.reno@gmail.com

Yonas Dwiananta (18011015):

yonasdwiananta@gmail.com

5. K

ESIMPULAN

Permainan ping-pong sederhana ini berhasil dibuat,

dengan spesifikasi: modus 2 pemain, single-ball

mode, dan menampilkan score yang berbentuk

7segment di layar monitor. Bagian layar pemain

yang kalah akan ditutupi oleh warna merah.

D

AFTAR

P

USTAKA

[1]

Hutabarat, Mervin T. dkk, Praktikum Sistem Digital,

hal. 69-76, Sekolah Teknik Elektro dan Informatika

Institut Teknologi Bandung, Bandung, 2012.

Gambar

Gambar  di  bawah  adalah  contoh  gambar  state   diagram  FSM  Mealy .
Gambar 3-1 Diagram Percobaan
Gambar 4-1 Hasil Implementasi Percobaan, ditampilkan di  layar monitor

Referensi

Dokumen terkait

Berdasarkan latar belakang tersebut di atas, maka diyakini akan menimbulkan pengaruh terhadap perubahan karakter serta gaya hidup pada masyarakat Desa Bayung Gede

Dari nilai rata-rata hasil pre test dan post test pengaruh pelatihan terhadap hasil belajar anak tunanetra sebelum diberikan perlakuan/treatmen adalah 57,91

PERAN DINAS LINGKUNGAN HIDUP KABUPATEN BANTUL DALAM PENGELOLAAN SAMPAH PLASTIK DI KAWASAN PANTAI DEPOK BANTUL Fakultas Hukum Universitas Sebelas Maret

Metode penelitian yang digunakan dalam penelitian ini adalah metode Pre-Experimental- One-Group Pretest-Posttest Design dengan penggunaan media Pop-Up sebagai

Kualitas hidup didefinisikan sebagai persepsi akan kemampuan, keterbatasan, gejala dan kemampuan psikososial dalam hidup pada konteks budaya dan system nilai sesuai fungsi

Kegunaan diagnostik dan prognostik ULJ setelah revaskularisasi koroner (mis, 5-10 tahun) lebih besar dari pada awal (kurang dari 1 tahun) ULJ, karena respon abnormal yang

Setelah melalui proses validasi oleh ketiga validator sehingga diperoleh perhitungan yaitu perangkat RPP memperoleh presentase 82,22% dari 15 kategori pertanyaan

AKTIVITAS PENGUJIAN PL (1) Tested Subsystem Subsystem Code Functional Integration Unit Tested Subsystem Requirements Analysis Document System Design Document Tested Subsystem