ping pong games

34
LAPORAN PROJECT EL 3011 Perancangan Rangkaian Sekuensial Ping-Pong Games on 8 x 4 LED Dibuat untuk memenuhi tugas mata kuliah EL 3011 Perancangan Rangkaian Sekuensial Disusun oleh : Nicholas Melky (NIM 13206010) Rangga Guntur Wibawa (NIM 13206204) PROGRAM STUDI TEKNIK ELEKTRO

Upload: nicholas-melky

Post on 03-Jul-2015

381 views

Category:

Documents


6 download

DESCRIPTION

My project of designing a asynchronous circuit on Altera Quartus II.

TRANSCRIPT

Page 1: Ping Pong Games

LAPORAN PROJECTEL 3011 Perancangan Rangkaian Sekuensial

Ping-Pong Games on 8 x 4 LED

Dibuat untuk memenuhi tugas mata kuliahEL 3011 Perancangan Rangkaian Sekuensial

Disusun oleh :Nicholas Melky (NIM 13206010)

Rangga Guntur Wibawa (NIM 13206204)

PROGRAM STUDI TEKNIK ELEKTROSEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA

INSTITUT TEKNOLOGI BANDUNG2010

Page 2: Ping Pong Games

ABSTRAK

Project yang dirancang adalah permainan ping-pong sederhana yaitu memukul bola yang dipresentasikan dengan lampu LED dan pemukul/ paddle yang direpresentasikan dengan push button. Implementasi perancangan dilakukan pada program Altera Quartus II Versi 6.0. Perancangan dimulai dengan metransformasi permainan menjadi FSM (Finite State Machine) yang kemudian diimplentasikan menjadi rangkaian pada program. Dengan simulasi pada program, dapat dilihat reponse dan hasil output rangkaian sudah sesuai dengan aturan permainan yaitu pemain dapat memukul bola dan mendapatkan nilai apabila pemain lawan miss dalam memukul bola.

Kata kunci: Ping-Pong, FSM, LED, Project, Paddle, Response, Miss.

Page 3: Ping Pong Games

BAB IPENDAHULUAN

1.1.PendahuluanPada mata kuliah Perancangan Rangkaian Sekuensial mahasiswa telah mempelajari

sejumlah materi mengenai rangkaian sekuensial baik berupa sychronous maupun asynchronous. Synchronous Sequential Circuit adalah rangkaian yang perubahan statenya diatur oleh adanya perubahan pada clock yaitu pada raising clock edge atau falling clock edge. Sedangkan Asynchronous Sequqntial Circuit adalah rangkaian yang perubahan statenya terjadi pada ketika adanya perubahan input rangkaian itu sendiri. Implementasi penggunaan rangkaian sekuensial banyak terdapat pada sirkuit elektrik yang sederhana dan tidak menggunakan prosesor. Implementasi dapat berupa bermacam-macam bentuk. Untuk itu, project ini akan membahas salah satu bentuk implentasi sirkuit sequential sederhana, yaitu permainan Ping-pong pada 32 buah LED dengan lebar 8 dan panjang 4 buah LED.

1.2.Deskripsi MasalahTugas project ini adalah merancang dan membangun sebuah sirkuit sekuensial

menggunakan state machine, shift register, dan counter. Sirkuit ini akan berfungsi sebagai permainan ping-pong sederhana. Bentuk permainan, 8 x 4 led akan mewakili bola ping-pong bergerak dan empat pushbutton pada masing-masing sisi akan digunakan sebagai paddle (pemukul). Sebuah led menyala atau “bola” akan bergerak dari kiri ke kanan dan "memantul" kembali dari kanan ke kiri jika pemain kanan menekan tombol pemukul – tidak terlalu cepat dan tidak terlalu terlambat. Demikian juga, pemain kiri menggunakan tombol pemukul untuk memukul bola ketika bola berada di paling kiri posisi.

1.3.Requirement perancangan

Score atau hasil pertandingan akan ditampilkan pada sebuah 7-segmen pada masing-masing pemain. Pada sirkuit ping-pong akan terdapat input dan output pin sebagai berikut :CLOCK Onboard 25 MHz Oscillator.RESET Master synchronous reset input.LPB3 – LPB0 Left paddle push button inputRPB3 – RPB0 Right paddle push button input.A7-A0, B7-B0, C7-C0, and D7-D0 Keluaran 4 x 8 LED yang merepresentasikan

bola ping-pong. A7,B7,C7, dan D7 adalah LED bagian paling kiri, dan A0,B0,C0, and D0 adalah bagian paling kanan.

A_7segment_A - A_7segment_G Keluaran untuk menghasilkan score pemain kiri pada tampilan 7-segmen.

Page 4: Ping Pong Games

B_7segment_A - B_7segment_G Keluaran untuk menghasilkan score pemain kanan pada tampilan 7-segmen.

1.4.Metodologi PerancanganPerancangan dilakukan pada program Altera Quartus II 6.0sp1 Web Edition Full.

Program ini dapat merancang dan mensimulasikan rangkaian digital dengan berbagai jenis gate baik primitive gate seperti AND, OR, XOR, NOT, dan sebagainya sampai simbol-simbol IC seperti seri 74LS. Dengan merancang pada Altera Quartu II 6.0sp1 ini, kita dapat melihat bagaimana respons dari rangkaian yang dipasang pada program tersebut. Reponse rangkaian dapat dilihat pada Simulasi Timing dan Fungsional.

Perancangan dimulai dengan mengubah aturan permainan menjadi Finite State Machine (FSM). Kemudian dari FSM tersebut dilakukan optimasi dengan berbagai metoda optimasi pada rangkaian sekuensial, diantaranya adalah dengan implication chart, state assignment, dan sebagainya. Dari hasil optimasi tersebut diimplentasikan menjadi rangkaian sirkuit dengan cover minimal. Pada akhirnya, dapat dilihat hasil response yang diinginkan.

Page 5: Ping Pong Games

BAB IIPERANCANGAN RANGKAIAN

1.1.Perancangan SistemPermainan ping-pong dirancang dengan mengubah aturan permainan menjadi Finite

State Machine (FSM). FSM hasil rancangan permainan ping-pong adalah sebagai berikut :

Gambar 2.1-1. FSM yang merepresentasikan permainan ping-pong

Pertama permainan dimulai pada START yang menuju STATE WAIT. STATE WAIT adalah state dimana permainan menunggu untuk dimulai. Permainan dapat dimulai dari pemain kiri atau pemain kanan. Ketika salah satu pemain memulai permainan dengan demikian sebuah tombol (push button) telah ditekan. Apabila LPB (Left Push Button) ditekan

Page 6: Ping Pong Games

maka permainan dimulai dari pemain kiri dan permainan akan masuk ke state START FROM LEFT. Di sini LED akan dilihat apabila berada pada paling kiri atau belum berada pada paling kanan (MAX_A=0) maka nyala LED akan berpindah ke kanan atau di-counting satu per satu setiap berada pada STATE COUNTING. Setelah nyala LED berpindah ke kanan oleh STATE COUNTING, maka akan kembali ke STATE START FROM LEFT dan dicek apakah nyala LED sudah berada pada posisi paling kanan. Hal ini karena pada posisi paling kanan adalah saat dimana pemain kiri harus memukul bola agar tidak kalah. Oleh sebab itu pada state HIT? akan dilakukan pengecekan apakah bola terpukul atau tidak dan apabila berpindah ke state MISS akan pemain kiri akan mendapat penambahan nilai score. Permainan baru akan dimulai dengan pemukul kanan menekan push button dan permainan akan dimulai dari kanan. Apabila tidak berpindah ke state MISS atau bola HIT, maka permainan akan dimulai dari kanan dan dicounting ke kiri kembali.

Dari FSM diatas dapat dihasilkan State Table FSM Ping-pong

Present State

Next State (LPB, RPB, MAX_A, MIN_A, HIT)0000

00000

10001

00001

10010

00010

10011

00011

10100

00100

10101

0A A A A A A A A A G G GB C C C C D D D D C C CC B B B B B B B B B B BD E G E G E G E G E G EE F F F F F F F F F F FF F F F F F F F F G G GG H H I I H H I I H H IH G G G G G G G G G G GI J B J B J B J B J B JJ K K K K K K K K K K KK K K K K K K K K K K K

Present State

Next State (LPB, RPB, MAX_A, MIN_A, HIT)0101

10110

00110

10111

00111

11000

01000

11001

01001

11010

01010

1A G G G G G B B B B B BB C D D D D C C C C D DC B B B B B B B B B B BD G E G E G E G E G E GE F F F F F F F F F F FF G G G G G F F F F F FG I H H I I H H I I H HH G G G G G G G G G G GI B J B J B J B J B J BJ K K K K K K K K K K KK K K K K K B B B B B B

Page 7: Ping Pong Games

Present State

Next State (LPB, RPB, MAX_A, MIN_A, HIT)1011

0 10111 11000 110011101

0 11011 11100 111011111

0 11111A B B A A A A A A A AB D D C C C C D D D DC B B B B B B B B B BD E G E G E G E G E GE F F F F F F F F F FF F F G G G G G G G GG I I H H I I H H I IH G G G G G G G G G GI J B J B J B J B J BJ K K K K K K K K K KK B B B B B B B B B B

Setelah diperoleh State Table FSM Ping-pong dapat dilakukan assignment dengan jumlah Flip-flop terdiri dari 4. Jumlah Flip-flop diperoleh dari 16 kemungkinan state assignment. 16 kemungkinan ini diperoleh dari jumlah minimum yang dapat di isi dengan 11 state yang ada pada permainan Ping-pong. Kemudian kita akan mencari fungsi dari eksitasi Y3Y2Y1Y0 yang mengisi keempat flip-flop yang ada. Karena kerumitan akibat banyaknya state yang ada, seperti jumlah state ada 11 dan input ada 5 maka untuk mempermudah optimasi dilakukan pengoptimalan dengan menggunakan sebuah program, yaitu Logic Friday. Logic Friday adalah freeware untuk pelajar, hobbyists, dan engineer yang bekerja pada sirkuit logika digital yang menggunakan paket IC standard. Dengan Logic Friday dapat dilakukan pemasukan fungsi logika seperti truth table, persamaan, atau diagram gate. Pemasukan fungsi dapat sampai 16 input dan 16 output. Juga, dengan Logic Friday dapat juga dilakukan minimisasi fungsi.

Page 8: Ping Pong Games

Gambar 2.1-2. Penggunaan Program Logic Friday

Dari program Logic Friday tersebut dapat diperoleh fungsi eksitasi keempat Flip-flop pada rancangan FSM ping-pong. Keempat fungsi eksitasi tersebut adalah :

Y3 = F I + A' F H + E' F H' + D G H I';Y2 = D' G + G H' + H I + A' B F' H' I';Y1 = A' F H + D' G H + G H I + G' H' I + A' B F' G' H' + E H I + B H' I;Y0 = B' G H' + F H' I' + G H' I' + F' G' H I' + C F' G' H' I + D' F' H I' + A G' H I' + A B' H' I';

Dengan : A = Y3 E = LPBB = Y2 F = RPBC = Y1 G = MAX_AD = Y0 G = MAX_A

I = HIT

Dengan demikian telah diperoleh sebuah FSM Controller untuk menghasilkan permainan game ping-pong. Tahap selanjutnya adalah merancang bagaimana reset bekerja.

Page 9: Ping Pong Games

Gambar 2.1-3. FSM yang merepresentasikan guna tombol reset pada permainan

Dari gambar FSM diatas dapat dihasilkan eksitasi sebuah Flip-Flop, dimana hanya terdapat dua buah state sehingga hanya dibutuhkan 1 flip-flop. Eksitasi flip-flop tombol reset ini adalah :

Gambar 2.1-4. K-map dari eksitasi Y0 dan output Z pada FSM reset.

Y0 = reset’;Output Z = y0’;

Hasil eksitasi dari reset nanti akan mempengaruhi perpindahan state pada FSM ping-pong sebelumnya. Oleh karena itu, pada implementasinya hasil eksitasi reset akan di AND dengan hasil eksitasi FSM ping-pong agar apabila reset ditekan maka hasil eksitasi FSM ping-pong akan kembali ke state asal (STATE WAIT) dengan nilai eksitasi Y3Y2Y1Y0 = 0000.

1.2.Perancangan Output SistemPada tahap ini perancangan akan dilihat dari segi output pada LED yang berfungsi sebagai bola pada permainan ping-pong. Dengan melihat keluaran pin masing-masing output dari A7-A0 hingga D7-D0 yang mewakili keluaran LED seperti pada gambar berikut.

Gambar 2.2-1. Output 8x4 LED

Page 10: Ping Pong Games

Karena banyaknya output yang ada, seperti pada gambar terdapat 8 x 4 = 32 buah pin output. Maka untuk menyederhanakan pin tersebut dilakukan pemisahan sumbu horizontal dan vertikal. Sehingga, apabila LED tersebut menyala maka sumbu nilai sumbu horizontalnya bernilai ‘1’ dan sumbu vertikalnya juga bernilai ‘1’, seperti pada gambar berikut.

Gambar 2.2-2. LED menyala oleh kedua sumbu

Setelah itu untuk menyederhanakan lagi, pada setiap posisi pada kedua sumbu dilakukan assignment nilai. Nilai assignment tersebut bernilai minimal agar kita hanya menggunakan dua buah digit untuk sumbu vertikal dan tiga buah digit untuk sumbu horizontal.

Gambar 4-3. Assignment nilai pada kedua sumbu

Dari assignment nilai tersebut dapat dimasukkan ke decoder agar menghasilkan output satu buah nyala saja baik pada sumbu horizontal maupun vertikal.

Gambar 2.2-4. Pemberian label input untuk masukan ke decoder

1.3.Perancangan HIT (Hit Checker)Perancangan selanjutnya adalah merancang bagaimana menghasilkan nilai HIT seperti pada FSM ping-pong. Nilai HIT akan dicek pada saat berada di state “HIT?” apabila bernilai 1 maka perpindahan akan ke state “START FROM RIGHT” pada FSM ping-pong.

Page 11: Ping Pong Games

Perancangan HIT atau Hit Checker adalah komponen yang mengeluarkan nilai ‘1’ pada saat tombol ditekan sesuai dengan posisi bola. Apabila bola berada pada posisi paling kanan, maka nilai HIT akan keluar sesuai dengan penekanan tombol, contohnya seperti pada gambar.

Gambar 2.3-1. Pelacak pukulan yang menghasilkan HIT = ‘1’

Dari gambar dapat disimpulkan bahwa rangkaian Hit Checker adalah rangkaian Kombinasional yang menginput posisi bola dan penekanan Push Button.

1.4.Perancangan Push Button sebagai paddle / pemukulPush button (PB) yang diinginkan akan menghasilkan pukulan diagonal ke kiri, diagonal ke kanan, atau lurus secara RANDOM. Rangkaian random di implentasikan dengan berubahnya secara terus-menerus pilihan diagonal kiri, kanan, atau lurus dan dapat terpilih pilihannya apabila push button ditekan (bernilai ‘1’).

Gambar 2.4-1. Push button yang akan menghasilkan arah bola bergerak

Push button juga akan menghasilkan sebuah sinyal ‘1’ diakhir penekanan yang panjangnya sebuah clock menandakan push button ditekan. Push button tidak bisa ditahan ditekan terus menerus karena hanya akan menghasilkan output diakhir penekanan.

1.5.Perancangan Penghitung nilai score (count_score)Penghitung nilai score adalah rangkaian yang menghitung atau menambahkan nilai setiap kali pemain memenangkan sebuah ronde permainan. Penghitung score menerima input count untuk meningkatkan nilai yang ada sebanyak satu nilai dan memberi keluaran output ke 7-segmen sesuai dengan kaki-kakinya seperti pada gambar.

Page 12: Ping Pong Games

Gambar 2.5-1. Output pin kaki 7-segment

Dari penjelasan sebelumnya dapat disimpulkan bahwa rangkaian ini akan menggunakan counter agar penghitungan score dapat dilakukan. Penambahan nilai setiap kali pemain memenangkan sebuah ronde permainan akan dihitung oleh counter. Dari counter tersebut akan dioutput sebuah nilai biner ke 7-segment akan tetapi perlu ditambah sebuah decoder ke 7-segment.

Page 13: Ping Pong Games

BAB IIIIMPLENTASI SISTEM

1.1.Perancangan FSM Ping-pongImplementasi dilakukan pada Altera Quartus II 6.0. Perancangan dari FSM Ping-pong yang menggunakan 4 buah flip-flop diimplementasikan pada program ini. FSM mempunyai input dan output seperti pada gambar symbol rangkaian sebagai berikut.

Gambar 3.1-1. Symbol Rangkaian FSM Ping-Pong

Output rangkaian terdiri dari B0, B1, A0, A1, A2, MAX_A, MIN_A, N_EN_B, N_EN_A, UP_SCORE_A, UP_SCORE_B, LEFT_ON, RIGHT_ON, dan reset_led. Penjelasan dari output tersebut adalah :

B0 dan B1 adalah output LED sumbu vertikal yang akan diinput ke dalam decoder untuk dikeluarkan pada 8 x 4 LED yang merepresentasikan nyala bola.

A0, A1, dan A2 adalah output LED sumbu horizontal yang akan diinput ke dalam decoder untuk dikeluarkan pada 8 x 4 LED yang merepresentasikan nyala bola.

MAX_A adalah output dimana apabila nilai A0, A1, dan A2 sudah maksimal yaitu bernilai ‘111’, maka MAX_A bernilai ‘1’. Hal ini menunjukkan juga bahwa bola berada pada posisi paling kanan dan siap dipukul oleh pemain kanan.

MIN_A adalah output bernilai ‘1’ apabila nilai A0, A1, dan A2 minimal yaitu bernilai ‘000’. Hal ini juga menunjukan bahwa bla berada pada posisi paling kiri dan siap dipukul oleh pemain kiri.

N_EN_B adalah Enable nyala sumbu vertikal yang bersifat Low-Active. Hal ini diperlukan karena pada permainan baru dimulai (STATE WAIT), maka lampu LED tidak ada yang menyala satupun.

N_EN_A adalah Enable nyala sumbu horizontal yang bersifat Low-Active. Hal ini diperlukan karena pada permainan baru dimulai (STATE WAIT), maka lampu LED tidak ada yang menyala satupun.

UP_SCORE_A adalah output untuk meningkatkan nilai score pada pemain A. Dengan memberikan rising edge output pada UP_SCORE_A maka score pemain A akan bertambah 1 poin secara bit.

Page 14: Ping Pong Games

UP_SCORE_B adalah output untuk meningkatkan nilai score pada pemain B. Dengan memberikan rising edge output pada UP_SCORE_B maka score pemain B akan bertambah 1 poin secara bit.

LEFT_ON adalah menandakan bahwa ketika bola bergerak diagonal dan telah mencapai posisi paling bawah, maka LEFT_ON akan bernilai ‘1’ yang memandakan bahwa bola berpindah dari diagonal kanan ke diagonal kiri.

RIGHT_ON adalah menandakan bahwa ketika bola bergerak diagonal dan telah mencapai posisi paling atas, maka RIGHT_ON akan bernilai ‘1’ yang menandakan

reset_led adalah output yang akan mereset nilai pada score kedua pemain. Reset_led akan bernilai ‘1’ apabila tombol RESET ditekan atau salah satu pemain telah mencapai nilai maksimum (nilai maksimum pemain adalah 9 pada 7-segement).

Input rangkaian terdiri dari LPB3, LPB2, LPB1, LPB0, RPB1, RPB2, RPB3, LAST_ON_L, LAST_ON_R, HIT, score_max_A, score_max_B, RESET, dan CLK. Penjelasan dari input tersebut adalah :

LPB3, LPB2, LPB1, dan LPB0 adalah input push button dengan posisi LPB3 berada pada posisi paling atas dan LPB0 berada paling bawah.

RPB3, RPB2, RPB1, dan RPB0 adalah input push button dengan posisi RPB3 berada pada posisi paling atas dan RPB0 berada paling bawah.

LAST_ON_L adalah input yang menunjukan bahwa bola bergerak diagonal ke kanan. LAST_ON_R adalah input yang menunjukan bahwa bola bergerak diagonal ke kiri. HIT adalah input yang menunjukan bahwa bola terpukul. Score_max_A adalah input yang menunjukan bahwa score pemain A telah mencapai

maksimum (bernilai digit 9). Score_max_B adalah input yang menunjukan bahwa score pemain B telah mencapai

maksimum (bernilai digit 9). RESET adalah input yang mereset permainan ping-pong. CLK adalah input clock dari rangkaian synchronous.

Page 15: Ping Pong Games

Dengan demikian hasil rangkaian FSM Ping-Pong beserta Outputnya adalah sebagai berikut.

Gambar 3.1-2. Sirkuit Rangkaian FSM Ping-Pong

Gambar diatas menunjukkan bahwa terdapat 4 buah Flip-Flop untuk FSM Ping-Pong da terdapat sebuah Flip-Flop untuk FSM reset. Dari output reset akan di AND dengan eksitasi FSM Ping-Pong. Output FSM Ping-Pong juga cukup banyak seperti pada gambar diatas. Setelah rangkaian dibentuk, maka rangkaian FSM Ping-Pong akan disimulasi seperti pada gambar berikut.

Gambar 3.1-3. Contoh Response Rangkaian

Page 16: Ping Pong Games

Pada contoh response rangkaian ini, permainan di mulai dengan input LPB1 pada clock waktu kedua. Pada saat itu output rangkaian akan counting terus menerus sampai MAX_A=’1’. Atau untuk lebih jelasnya dapat dilihat pada gambar berikut.

1.2.Perancangan Output Sistem

Setelah diperoleh nilai kedua sumbu yaitu sumbu vertikal (B0 dan B1) dan sumbu horizontal (A2, A1, dan A0), maka akan di output pada led dengan sebuah decoder dan gate AND antara kedua sumbu. Gambar symbol rangkaiannya adalah sebagai berikut.

Gambar 3.2-1. Contoh Response Rangkaian

Page 17: Ping Pong Games

Isi decoder adalah sebagai berikut.

Gambar 3.2-2. Sirkuit Decoder LED dan Response Rangkaiannya

Dari gambar dapat disimpulkan bahwa decoder bekerja dengan mengoutput dari 3 digit pada sumbu horizontal menjadi 7 digit dengan contoh : A2A1A0 = ‘101’ dihasilkan output 76543210 = ‘00000100’, atau A2A1A0 = ‘011’ dihasilkan output 76543210 = ‘00010000’. Begitu pula pada sumbu vertikal, decoder bekerja mengoutput dari 2 digit menjadi 4 digit, dengan contoh : B1B0 = ‘10’ dihasilkan output ABCD = ‘0100’. Dan terakhir pada, N_EN_A=’1’ dapat dilihat bahwa enable bekerja low active dan semua output menghasilkan ‘0’ atau ground.

Page 18: Ping Pong Games

Isi gate AND yang menghubungkan sumbu horizontal dan vertikal adalah sebagai berikut.

Gambar 3.2-3. Sirkuit gate AND yang menghubungkan sumbu vertikal dan horizontal

Barulah setelah sumbu vertikal dan horizontal di AND akan menghasilkan ke-32 output yang merepresentasikan bola pada permainan Ping-Pong.

Gambar 3.2-4. Response sirkuit gate AND

Dari gambar dapat dilihat bahwa output bekerja sesuai dengan Gambar 2.2-2 sebelumnya, yaitu LED menyala oleh kedua sumbu. Contoh reponse menunjukan bahwa pada saat A=’1’ dan 4=’1’ maka A4 = ‘1’.

1.3.Perancangan HIT (Hit Checker)Perancangan selanjutnya adalah mengecek apakah HIT dengan rangkaian ini. Dari penjelasan sebelumnya dapat diketahui bahwa rangkaian ini adalah kombinasional. Gambar symbol rangkaiannya adalah sebagai berikut.

Page 19: Ping Pong Games

Gambar 3.3-1. Symbol Rangkaian Hit Checker

Dari gambar dapat dilihat input rangkaian adalah tombol push button dan posisi bola. Dari input tersebut diinginkan output seperti tabel berikut.

B1

B0

MIN_A

MAX_A

LPB3

LPB2

LPB1

LPB0

RPB3

RPB2

RPB1

RPB0

HIT

0 0 1 0 1 x x x x x x x 10 1 1 0 x 1 x x x x x x 11 0 1 0 x x 1 x x x x x 11 1 1 0 x x x 1 x x x x 10 0 0 1 x x x x 1 x x x 10 1 0 1 x x x x x 1 x x 11 0 0 1 x x x x x x 1 x 11 1 0 1 x x x x x x x 1 1

Page 20: Ping Pong Games

Maka dihasilkan sirkuit rangkaian sebagai berikut.

Gambar 3.3-2. Sirkuit Rangkaian Hit Checker

Gambar 3.3-3. Reponse Rangkaian Hit Checker

Dapat dilihat bahwa response rangkaian akan mengecek posisi bola dan penekanan tombol, seperti pada gambar bahwa posisi bola pada B1B0 = ‘01’ dan MIN_A = ‘1’ yaitu bola berada pada posisi paling kiri dan berada pada kedua dari atas, dan dihasilkan HIT = ‘1’. Begitu pula

Page 21: Ping Pong Games

pada saat bole berada pada paling kanan yaitu MAX_A = ‘1’ dan posisi bola di ketiga dari atas, pada saat RPB = ‘1’ ditekan (bernilai ‘1’) dapat dilihat HIT = ‘1’.

1.4.Perancangan Push Button sebagai paddle / pemukulPush button dirancang untuk menghasilkan output ‘1’ tanpa bisa ditahan berlama-lama. Dan juga, pemilihan diagonal ke kiri, ke kanan, ataupun lurus dipilih secara random. Implentasi rangkaian adalah sebagai berikut.

Gambar 3.4-1. Symbol Rangkaian Push Button

Gambar 3.4-2. Sirkuit Rangkaian Push Button

Sirkuit terdapat output LAST_ON_L dan LAST_ON_R yang berfungsi menunjukan output bergerak diagonal ke kiri atau ke kanan. Pada gambar terdapat symbol randomizer yang isinya adalah sebagai berikut.

Page 22: Ping Pong Games

Gambar 3.4-3. Sirkuit Rangkaian Randomizer

Gambar 3.4-4. Sirkuit Rangkaian Randomizer

Rangkaian randomizer adalah rangkaian yang menyimpan pemilihan diagonal ke kiri, ke kanan, dan lurus dengan secara berganti-ganti tiap clock. Namun, pada saat push button ditekan, maka pemilihan tidak akan berganti agar tidak terjadi kesalahan.

Pada gambar juga terdapat sequencer. Fungsi sequencer adalah agar tombol tidak dapat ditekan secara terus menerus. Dan akan menghasilkan output ‘1’ selama ‘1’ clock pada saat nilai seq = ‘1’. FSM dari rangkaian ini adalah sebagai berikut.

Gambar 3.4-4. FSM Sequencer

Page 23: Ping Pong Games

Gambar 3.4-5. Rangkaian Sequencer

Gambar 3.4-6. Response Rangkaian Sequencer

Dapat dilhat bahwa output hanya akan keluar selama 1 clock apabila nilai seq= ‘1’ dengan panjang berapapun.

1.5.Perancangan Penghitung nilai score (count_score)Rangkaian penghitung score dirancang dengan menggunakan Counter dan BCD to 7-Segment seperti pada gambar berikut.

Gambar 3.5-1. Rangkaian Penghitung Score

Page 24: Ping Pong Games

Gambar 3.5-2. Response Rangkaian Penghitung Score

Terlihat bahwa counter menghitung nilai score dan bertambah setiap kali nilai COUNT_UP = ‘1’. Output dari response rangkaian diatas dapat dilihat pada gambar berikut.

Gambar 3.5-3. Output 7-segment

Page 25: Ping Pong Games

1.6.Integrasi SistemPenggabungan semua komponen rangkaian Ping-Pong dapat dilihat sebagai berikut.

Gambar 3.6-1. Integrasi Seluruh Komponen Rangkaian Ping-Pong.

Page 26: Ping Pong Games

Gambar 3.6-2. Response Rangkaian Ping-Pong.

Dari gambar dapat dilihat bahwa bola dimulai dari pemain kiri dan dipukul oleh LPB1 dan bola bergerak ke diagonal ke kiri dan memantul-mantul sampai ke posisi paling kanan. Apabila pemain B tidak memukul maka pemain A mendapatkan nilai seperti pada gambar tersebut yang menunjukan A_7segment bernilai digit 1 (0110000). Untuk lebih jelas melihat perpindahan bola, dapat diperhatikan gambar berikut.

Gambar 3.6-3. Output Rangkaian Ping-Pong.

Page 27: Ping Pong Games

BAB IVKESIMPULAN DAN SARAN

1.1.Kesimpulan

Rangkaian Ping-pong dapat didesain pada program Altera Quartus II versi 6.0 dengan

perancangan berbagai komponen. Komponen tersebut adalah FSM controller, Push Button,

Hit Checker, Decoder, dan Count Score. Masing-masing komponen mempunyai response

yang sesuai dengan fungsi komponen. Dengan simulasi yang ada dapat disimpulkan bahwa

Permainan Ping-Pong dapat berjalan sesuai dengan aturan permainan, seperti pemain dapat

memukul bola dan apabila miss memukul maka pemain lawan akan mendapatkan poin.

1.2.Saran

Karena keterbatasan alat, sehingga perancangan rangkaian permainan Ping-pong hanya

sebatas simulasi saja. Program Altera Quartu II versi 6.0 tidak hanya dapat mensimulasikan

sebuah sirkuit namun dapat juga menjalankannya pada FPGA. Apabila terdapat FPGA

dengan output 32 buah, rangkaian permainan Ping-pong ini dapat saja langsung diujicobakan.