ping pong games

Click here to load reader

Post on 03-Jul-2015

357 views

Category:

Documents

6 download

Embed Size (px)

DESCRIPTION

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

TRANSCRIPT

LAPORAN PROJECTEL 3011 Perancangan Rangkaian SekuensialPing-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 SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2010

ABSTRAKProject 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.

BAB I PENDAHULUAN1.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 masingmasing pemain. Pada sirkuit ping-pong akan terdapat input dan output pin sebagai berikut : y CLOCK Onboard 25 MHz Oscillator. y RESET Master synchronous reset input. yLPB3 LPB0 Left paddle push button input y RPB3 RPB0 Right paddle push button input. y 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. y A_7segment_A - A_7segment_G Keluaran untuk menghasilkan score pemain kiri pada tampilan 7-segmen.

yB_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.

BAB II PERANCANGAN RANGKAIAN2.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

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-pongPresent State A B C D E F G H I J K Next State (LPB, RPB, MAX_A, MIN_A, HIT) 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 A A A A A A A A G G G C C C C D D D D C C C B B B B B B B B B B B E G E G E G E G E G E F F F F F F F F F F F F F F F F F F F G G G H H I I H H I I H H I G G G G G G G G G G G J B J B J B J B J B J K K K K K K K K K K K K K K K K K K K K K K

Present State A B C D E F G H I J K

Next State (LPB, RPB, MAX_A, MIN_A, HIT) 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 G G G G G B B B B B B C D D D D C C C C D D B B B B B B B B B B B G E G E G E G E G E G F F F F F F F F F F F G G G G G F F F F F F I H H I I H H I I H H G G G G G G G G G G G B J B J B J B J B J B K K K K K K K K K K K K K K K K B B B B B B

Next State (LPB, RPB, MAX_A, MIN_A, HIT) Present State 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 A B B A A A A A A A A B D D C C C C D D D D C B B B B B B B B B B D E G E G E G E G E G E F F F F F F F F F F F F F G G G G G G G G G I I H H I I H H I I H G G G G G G G G G G I J B J B J B J B J B J K K K K K K K K K K K 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.

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 B = Y2 C = Y1 D = Y0

E = LPB F = RPB G = MAX_A 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.

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 = r s t ; Output Z = y 0 ;

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.

2.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 A7A0 hingga D7-D0 yang mewakili keluaran LED seperti pada gambar berikut.

Gambar 2.2-1. Output 8x4 LED 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

2.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. 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.

2.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.

2.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 7segmen sesuai dengan kaki-kakinya seperti pada gambar.

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.

BAB III IMPLENTASI SISTEM3.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 : y 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. y 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. y 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. y 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. y 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. y 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. y 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.

y

y

y y

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 : y LPB3, LPB2, LPB1, dan LPB0 adalah input push button dengan posisi LPB3 berada pada posisi paling atas dan LPB0 berada paling bawah. y RPB3, RPB2, RPB1, dan RPB0 adalah input push button dengan posisi RPB3 berada pada posisi paling atas dan RPB0 berada paling bawah. y LAST_ON_L adalah input yang menunjukan bahwa bola bergerak diagonal ke kanan. y LAST_ON_R adalah input yang menunjukan bahwa bola bergerak diagonal ke kiri. y HIT adalah input yang menunjukan bahwa bola terpukul. y Score_max_A adalah input yang menunjukan bahwa score pemain A telah mencapai maksimum (bernilai digit 9). y Score_max_B adalah input yang menunjukan bahwa score pemain B telah mencapai maksimum (bernilai digit 9). y RESET adalah input yang mereset permainan ping-pong. y CLK adalah input clock dari rangkaian synchronous.

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

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.

3.2. Perancangan Output SistemSetelah 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

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.

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.

3.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.

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 1 0 1 1 0 x 1 x x x x x x 1 1 0 1 0 x x 1 x x x x x 1 1 1 1 0 x x x 1 x x x x 1 0 0 0 1 x x x x 1 x x x 1 0 1 0 1 x x x x x 1 x x 1 1 0 0 1 x x x x x x 1 x 1 1 1 0 1 x x x x x x x 1 1

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

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.

3.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.

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

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.

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

Gambar 3.5-1. Rangkaian Penghitung Score

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

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

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

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.

BAB IV KESIMPULAN DAN SARAN4.1. KesimpulanRangkaian 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.

4.2. SaranKarena 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.