Praktikum6_Septian Gilang Permana Putra

download Praktikum6_Septian Gilang Permana Putra

of 22

Transcript of Praktikum6_Septian Gilang Permana Putra

Proyek Perancangan Rangkaian Digital (LED Ping-Pong)Praktikan: Septian Gilang Permana Putra (13210003)Asisten:Ichsan Mulia P (13207041) Waktu Percobaan: 28 November 2011 EL2195-Praktikum Sistem Digital Laboratorium Dasar Teknik Elektro Sekolah Teknik Elektro dan Informatika ITB

1.

Deskripsi Umum

Pada proyek ini, kami mendesign Projek LED Ping-Pong. LED Pingpong adalah sebuah permainan yang dapat dimainkan oleh dua orang menggunakan FPGA dengan memodelkan bola pingpong dengan LED yang menyala bergerak dari ujung ke ujung serta memodelkan Pad dengan push button sebagai pengontrol. Salah satu ujung push button harus ditekan untuk memukul bola sehingga bola pingpong bergerak ke ujung lainnya. 2. Spesifikasi Projek

LED Pingpong ini dikendalikan dengan menggunakan 4 push button yang masing2 mengontrol START, RESET, PAD1, dan PAD2. START digunakan untuk memulai permainan atau bisa juga digunakan untuk servis. RESET digunakan untuk mereset scoreboard dan mengembalikan kondisi ke kondisi awal. PAD1 dan PAD2 digunakan untuk mengendalikan bola saat dalam permainan sera digunakan saat servis. Selain yang dideskripsikan seperti di atas LED Pingpong memiliki beberapa fitur-fitur menarik lain. Fitur tersebut salah satunya adalah scoreboard. Scoreboard pada LED pingpong ini dimodelkan dengan dua seven segment. Kedua seven segmen ini menunjukkan skor kedua pemain dan angka yang ditunjukkan seven segment akan bertambah bila pemain yang bersangkutan mendapatkan poin (bola masuk). Skor pemain akan bertambah sampai salah satu pemain mencapai angka 10 (game). Bila salah satu pemain mencapai angka 10 maka kedua seven segment akan kembali menunjukkan angka 0. Selain itu maka kedua seven segment akan kembali menunjukkan angka 0 bila push buton reset ditekan. Selain itu dalam LED pingpong ini juga terdapat fitur perayaan poin. Setelah salah satu pemain mendapatkan poin, maka empat LED terkanan dan terkiri akan menyala secara bergantian sampai pemain yang mendapatkan poin menekan push button untuk bersiap-siap melakukan servis. Selama push button belum ditekan oleh pemain yang bersangkutan, kondisi tadi akan terus berlangsung. Fitur unik lain yang ada pada LED Pingpong ini adalah pencegah kecurangan. Fitur ini mencegah pemain berbuat curang dengan menekan tombol lama atau secara terus menerus saat memukul bola. Dengan fitur ini, pemain hanya dapat memukul bola saat bola (LED yang menyala) berada pada 2 posisi terdekat hanya dan dapat dipukul dalam rentang waktu 300ms untuk setiap posisi. Penekanan push button secara terus menerus akan tetap dianggap sebagai 1 pukulan. 3. ASM Diagram

Diagram ASM (Algorihmic State Machine) adalah diagram yang digunakan untuk merancang Finite State Machine (FSM). Diagram ASM memiliki bentuk seperti diagram keadaan (state diagram) tapi kurang formal dan lebih sederhana, dengan demikian lebih mudah untuk dipahami. Diagram ASM adalah metode untuk menggambarkan operasi sekuensial sistem digital. Sistem LED Ping-Pong ini kami design dengan menggunakan pendekatan struktural. LED Ping-Pong kami ini terdiri dari 4 control unit, yaitu MAIN, INCNT, PRESSCNT, dan GAME. Berikut ini penjelasan tentang control unit beserta Diagram ASM.3.1 MAIN

Halaman

MAIN adalah control unit yang mengatur kesuluruhan berjalannnya sistem. MAIN memiliki 3 input, yaitu START, OVER dan 2 state yaitu PLAYING=0 dan PLAYING=1. Jika input RESET=1, maka next state yang diyuju adalah PLAYING=0 untuk semua present state. Dalam implementasinya sistem akan kembali ke keadaan tidak sedang melakukan permainan (LED berhenti bergerak, score 0-0) saat tombol reset ditekan, baiksebelumnya sistem dalam keadaaan melakukan permainan (LED menyala bergerak dan dapat dikendalikan) ataupun tidak.

1

Apabila present state adalah PLAYING=0 maka next statenya bergantung pada input START. Jika START=1 maka next state yang dituju adalah PLAYING=1, sedangkan jika START=0 next state yang dituju adalah PLAYING=0 lagi. Dalam imlementasinya, Sistem hanya akan masuk ke keadaan melakukan permainan jika tombol START ditekan. Apabila present statenya adalah PLAYING=1 maka next statenya bergantung pada input OVER. Jika OVER=1 maka next state yang dituju adalah PLAYING=0, sedangkan jika OVER=0 next state yang dituju adalah PLAYING=1 lagi. Dalam implementasinya sistem hanya akan masuk ke keadaan tidak melakukan permainan jika input OVER=1 yaitu saat salah satu pemain gagal mengembalikan pukulan. Berikut ini adalah Diagram ASM untuk Control Unit Main.

PLAYING = 0

0

START

1

PLAYING = 1

0

OVER

1

Gambar 3.1 Control Unit Main3.2 INCNT

INCNT adalah control unit yang mengatur bertambahnya angka yang ditunjukkan oleh seven segment sebagai display score. Terdapat 2 control INCNT dalam sistem yang kami buat untuk mengatur display kedua pemain. INCNT memiliki 1 input, yaitu INC dan 3 state yaitu INC_0=0 pertama, INC_0=1 dan INC_0=0 kedua. Apabila present state adalah INC_0=0 pertama dan input INC=1 maka next state yang dituju adalah INC_0=1, jikat input INC=0 state tidak berpindah. Apabila present state adalah INC_0=1 dan input INC=1 maka next state yang dituju adalah INC_0=0 kedua, jikat input INC=0 state tidak berpindah. Apabila present state adalah INC_0=0 kedua dan input INC=0 maka next state yang dituju adalah INC_0=0 pertama, jikat input INC=1 state tidak berpindah. Dalam Implementasinya, State dalam Control Machine ini adalah Clock Enable untuk Counter Score kedua pemain. Counter Score akan berjalan jika present state-nya adalah INC_0=1. Berikut ini adalah Diagram ASM untuk Control Unit INCNT.

Halaman

2

INC_0 = 0

0

INC

1

INC_0 = 1

INC_0 = 0

1

INC

0

Gambar 3.2 Diagram ASM Control Unit INCNT3.3 PRESSCNT

PRESSCNT control unit yang mengatur input pukulan pemain untuk mengemalikan bola yang datang. Terdapat 2 control PRESSCNT dalam sistem yang kami buat untuk mengatur input pukulan kedua pemain. PRESSCNT memiliki 2 input, yaitu PRESS dan dan TIMEOUT serta 3 state yaitu PRESS_0=0 pertama, PRESS_0=1 dan PRESS_0=0 kedua. Apabila present state adalah PRESS_0=0 pertama dan input PRESS=1 maka next state yang dituju adalah PRESS_0=1, jikat input PRESS=0 state tidak berpindah. Apabila present state adalah PRESS_0=1 dan input TIMEOUT=1 maka next state yang dituju adalah PRESS_0=0 kedua, jikat input TIMEOUT=0 state tidak berpindah. Apabila present state adalah PRESS_0=0 kedua dan input PRESS=0 maka next state yang dituju adalah INC_0=0 pertama, jikat input INC=1 state tidak berpindah. Dalam Implementasinya, State dalam Control Machine ini adalah Clock Enable untuk input pukulan kedua pemain. Pukulan hanya akan dianggap jika dilakukan pada saat jangka waktu sebelum TIMEOUT untuk menghindari kecurangan pemain dengan cara menekan tombol pukul lama. Berikut ini adalah Diagram ASM untuk Control Unit PRESSCNT.

Halaman

3

PRESS_0 = 0

0

PRESS

1

PRESS_0 = 1

0

TIMEOUT

1

PRESS_0 = 0

1

PRESS

0

Gambar 3.3 Diagram ASM Control Unit PRESSCNT3.4 GAME

GAME adalah control unit yang mengatur berjalannya permainan. GAME memiliki 3 input, yaitu RESET, HIT1 dan HIT2 serta 16 state yaitu 0,0 s.d. 0,7 dan 1.0 s.d 1.7. Angka sebelum koma menunjukkan arah gerak bola (0 untuk ke kanan dan 1 untuk ke kiri), sedangkan angka setelah koma menunjukkan nomor urut LED yang menyala dari kiri ke kanan. Jika input RESET=1, maka next state yang dituju adalah 0,0 untuk semua present state. Dalam implementasinya sistem akan kembali ke keadaan LED paling kiri menyala saat tombol reset ditekan, untuk apapun present statenya.. Apabila present state adalah 0,7=0 maka next statenya bergantung pada input HIT2. Jika HIT2=1 maka next state yang dituju adalah 1,6, sedangkan jika HIT2=0 next state yang dituju adalah IDLE01. Dalam imlementasinya, nyala LED akan bergerak ke arah ke kiri jika tombol pukul ditekan oleh pemain kanan saat nyala LED berada di ujung terdekat. Dan jika tidak dipukul, maka bola servis untuk pemain kiri. Apabila present state adalah 1,0 maka next statenya bergantung pada input HIT1. Jika HIT1=1 maka next state yang dituju adalah 0,1 , sedangkan jika HIT1=0 next state yang dituju adalah IDLE11. Dalam imlementasinya, nyala LED akan bergerak ke arah ke kanan jika tombol pukul ditekan oleh pemain kiri saat nyala LED berada di ujung terdekat. Dan jika tidak dipukul, maka bola servis untuk pemain kanan. Apabila present state adalah IDLE, maka next statenya akan bergantung pada input HIT1 atau HIT2. Jika input HIT1 atau HIT2 adalah 1, maka state akan berpindah menuju state untuk servis, yaitu 0,0 dan 1,7. Jika HIT1 atau

Halaman

4

HIT2 adalah 1, maka state akan berpindah ke state IDLE yang lain. Dalam implementasinya, state idle ni adalah keadaan perayaan sesaat setelah bola masuk. Keadaan ini akan berhenti sampai pemain yang memasukkan bola menekan hit untuk bersiap-siap melakukan servis. Berikut ini adalah Diagram ASM untuk Control Unit PRESSCNT.

RESET 1 TURN = 0 LED = 0 TURN = 0 LED = 1 0 HIT1 1 TURN = 0 LED = 2 TURN = 0 LED = 3 TURN = 0 LED = 4 TURN = 0 LED = 5 TURN = 0 LED = 6 0 IDLE01 1 1 TURN = 1 LED = 0 IDLE11 HIT1 0 HIT1 0

IDLE02

TURN = 1 LED = 1 TURN = 1 LED = 2 TURN = 1 LED = 3 TURN = 1 LED = 4

0

HIT2

1

1

IDLE12

HIT1

0

1 TURN = 1 LED = 5 TURN = 1 LED = 6 TURN = 1 LED = 7

HIT2

HIT2

0

TURN = 0 LED=7 0 1

HIT2

Gambar 3.4 Diagram ASM Control Unit GAME

Halaman

5

4.4.1

State TableMAIN

Berikut ini adalah State Table dan State Diagram untuk keempat unit control di atas.

S_1

S_2

Gambar 4.1 Diagram State Control Unit MAIN

Present State S_1 S_1 S_2 S_2 S_1 S_2 S_2 S_1

Next State START

Conditions NOT (START) NOT (OVER) OVER

Gambar 4.1 Tabel State Control Unit MAIN4.2 INCNT

Gambar 4.1 Diagram State Control Unit INCNT

Present State S_1 S_1 S_2 S_3 S_3 S_1 S_2 S_2 S_1 S_3

Next State NOT (INC) INC NOT (INC) INC

Conditions

Gambar 4.1 Tabel State Control Unit INCNT

4.3

PRESSCNT

Halaman

6

Gambar 4.1 Diagram State Control Unit PRESSCNT

Present State S_1 S_1 S_2 S_2 S_3 S_3 S_1 S_2 S_2 S_3 S_1 S_3

Next State PRESS

Conditions NOT (PRESS) NOT (TIMEOUT) TIMEOUT NOT (PRESS) PRESS

Gambar 4.1 Tabel State Control Unit PRESSCNT4.4 MAINIDLE 02 IDLE 01

S_00

S_01

S_02

S_03

S_04

S_05

S_06

S_07

S_10

S_11

S_12

S_13

S_14

S_15

S_16

S_17

S_11

IDLE 12

Halaman

Gambar 4.1 Diagram State Control Unit GAME

7

Present State IDLE01 IDLE01 IDLE02 IDLE02 IDLE11 IDLE11 IDLE12 IDLE12 S_00 S_00 S_01 S_02 S_03 S_04 S_05 S_06 S_06 S_07 S_07 S_17 S_17 S_16 S_15 S_14 S_13 S_12 S_11 S_11 S_10 S_10 S_00

Next State IDLE02 IDLE01 S_00 IDLE12 S_17 IDLE11 S_17 S_00 S_01 S_02 S_03 S_04 S_05 S_06 S_07 S_15 IDLE01 S_16 S_17 S_16 S_15 S_14 S_13 S_12 S_11 S_10 S_02 IDLE11 S_01 NOT (HIT1) HIT1 NOT (HIT1) HIT1 NOT (HIT2) HIT2 NOT (HIT2) HIT2

Conditions NOT(ENA) . NOT(HIT1) NOT(ENA) . (HIT1) + ENA NOT(ENA) . NOT(HIT1) NOT(ENA) . (HIT1) + ENA NOT(ENA) . NOT(HIT2) NOT(ENA) . (HIT2) + ENA NOT(ENA) . NOT(HIT2) NOT(ENA) . (HIT2) + ENA NOT(ENA) . NOT(HIT1) NOT(ENA) . (HIT1) + ENA

NOT(ENA) . NOT(HIT2) NOT(ENA) . (HIT1) + ENA

Gambar 4.1 Tabel State Control Unit PRESSCNT Dalam Proyek ini ENA dikendalikan oleh tombol START. 5. VHDL Code untuk Sistem

Halaman

8

VHDL untuk proyek ini dapat dilihat pada bagian lampiran. . Dari VHDL tersebut, dapat juga dibentuk menjadi diagram rangkaian/skematik seperti berikut ini.

Gambar 5.1a Skematik LED Ping-Pong

6.6.1

Hasil Simulasi Secara FungsionalHasil Simulasi Fungsional

Berikut ini adalah hasil simulasi Fungsional untuk LED Ping-Pong untuk mengecek input PRESS1 dan PRESS2.

Gambar 6.1a Simulasi Fungsional LED Ping-Pong

Berikut ini adalah hasil simulasi Fungsional untuk LED Ping-Pong untuk mengecek input START.

Gambar 6.1b Simulasi Fungsional LED Ping-Pong

Halaman

9

7.

Penjelasan Tentang Pin Planer

Berikut ini adalah tabel assignment Pin dari program ke FPGA DE-1. Direction Input Input Input Input Input Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Node Name CLK_0 PRESS1 RESET0 START PRESS2 DIS1[6] DIS1[5] DIS1[4] DIS1[3] DIS1[2] DIS1[1] DIS1[0] DIS2[6] DIS2[5] DIS2[4] DIS2[3] DIS2[2] DIS2[1] DIS2[0] LED[7] LED[6] LED[5] LED[4] LED[3] LED[2] LED[1] Location PIN_A12 PIN_T21 PIN_T22 PIN_R21 PIN_R22 PIN_E1 PIN_H6 PIN_H5 PIN_H4 PIN_G3 PIN_D2 PIN_D1 PIN_J2 PIN_J1 PIN_H2 PIN_H1 PIN_F2 PIN_F1 PIN_E2 PIN_U22 PIN_U21 PIN_V22 PIN_V21 PIN_W22 PIN_W21 PIN_Y22 Keterangan Clock internal 24MHz Push button paling kanan (KEY3) Push button kedua dari kanan (KEY2) Push button kedua dari kiri (KEY1) Push button paling kiri (KEY0) Seven Segmen paling kanan, segmen 0 (HEX1[0]) Seven Segmen paling kanan, segmen 1 (HEX1[1]) Seven Segmen paling kanan, segmen 2 (HEX1[2]) Seven Segmen paling kanan, segmen 3 (HEX1[3]) Seven Segmen paling kanan, segmen 4 (HEX1[4]) Seven Segmen paling kanan, segmen 5 (HEX1[5]) Seven Segmen paling kanan, segmen 6 (HEX1[6]) Seven Segmen kedua dari kanan, segmen 0 (HEX0[0]) Seven Segmen kedua dari kanan, segmen 1 (HEX0[1]) Seven Segmen kedua dari kanan, segmen 2 (HEX0[2]) Seven Segmen kedua dari kanan, segmen 3 (HEX0[3]) Seven Segmen kedua dari kanan, segmen 4 (HEX0[4]) Seven Segmen kedua dari kanan, segmen 5 (HEX0[5]) Seven Segmen kedua dari kanan, segmen 6 (HEX0[6]) LED Hijau ke-1 dari kanan (LEDG[0]) LED Hijau ke-2 dari kanan (LEDG[1]) LED Hijau ke-3 dari kanan (LEDG[2]) LED Hijau ke-4 dari kanan (LEDG[3]) LED Hijau ke-5 dari kanan (LEDG[4])

Halaman

LED Hijau ke-7 dari kanan (LEDG[6])

10

LED Hijau ke-6 dari kanan (LEDG[5])

Output

LED[0]

PIN_Y21

LED Hijau ke-8 dari kanan (LEDG[7])

Berikut ini posisi segmen untuk Seven Segment yang digunakan.

Gambar 7.1 Posisi Segment untuk Seven Segment FPGA DE-1 8.8.1

Simulasi dengan FPGAStrategi Pengujian yang Digunakan

Strategi pengujian yang digunakan adalah sebagai berikut: Pertama, pemain kiri memukul bola dan pemain kanan mendiamkan/tidak memukul. Hasil yang diharapkan adalah LED bergerak ke kanan lalu point bertambah untuk pemain kiri. Kedua, pemain kiri memukul bola, kemudian pemain kanan memukul/mengembalikan bola, dan kemudian pemain kiri mendiamkan/tidak memukul. Hasil yang diharapkan adalah LED bergerak kekanan, lalu setelah mencapai ujung kembali ke kiri dan poin bertambah unuk pemain kanan. Ketiga, pemain kanan memukul bola dan pemain kanan mendiamkan/tidak memukul. Diulang sampai pemain kanan mendapatkan score 10 (game). Hasil yang diharapkan adalah, setelah skor untuk pemain kanan menunjukkan angka 9 kemudian skor kembali ke 0 untuk kedua pemain.8.2 Hasil Simulasi FPGA

Simulasi berjalan baik dan hasilnya sesuai dengan yang diharapkan.

Halaman

11

LAMPIRANBerikut ini lampiran untuk source code program dalam bentuk VHDLnya.

Halaman

12

Halaman

13

Halaman

14

Halaman

15

Halaman

16

Halaman

17

Halaman

18

Halaman

19

Halaman

20

Halaman

21

Halaman

22