Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Yogi Salomo Mangontang Pratama (13511059) Asisten: Anugerah Firdauzi / 13209109 Tanggal Percobaan: 20/11/2012 EL2195-Praktikum Sistem Digital
Abstrak
Setelah mempelajari mengenai pembuatan rangkaian kombinasional dan sekuensial dan menerapkannya pada FPGA, saatnya untuk mengimplementasikan kepada sesuatu yang dapat lebih diamati dengan lebih baik. Ada berbagai macam implementasi dari rangkaian ini dalam bentuk interface I/O antara lain GPIO, komunikasi serial menggunakan RS232, Audio CODEC, LCD karakter 16x2, dll. Dan pada percobaan ini kita akan menggunakan modul VGA pada FPGA. Video Graphics Array atau biasa disebut VGA adalah suatu interface yang banyak digunakan pada peralatan elektronik zaman sekarang. VGA bekerja dengan menggunakan sinyal antara lain Horizontal Sync, Vertical Sync, dan Sinyal RGB yang merupakan sinyal warnanya.
1. Mendapatkan pengetahuan dan pengalaman menggunakan interface pada board evaulasi FPGA. 2. Memahami cara kerja VGA pada umumya.
Alat-alat yang digunakan dalam percobaan ini antara lain : 1. Komputer yang telah ter-install program Quartus II 2. FPGA development board, tipe DE1 beserta perlengkapannya yang meliputi :
GAMBAR 2.1.1 PROSES SCAN PADA VGA
Pada VGA juga dikenal Refresh rate yang harus dibuat lebih dari 60Hz karena bila tidak demikian manusia akan dapat melihat adanya flicker.
Board FPGA tipe UP2, DE1, DE2, atau DE2-70 Catu Daya+ Kabel dan konektor tambahan Kabel downloader ByteBlaster II dan USB-Blaster.
3. Monitor LCD.
Dapat dilihat melalui bagan bahwa pada awalnya kita memasukkan data dari computer kita yang terdiri dari kode inputan beserta sinyal clk. Kemudian FPGA akan merubahnya menjadi sinyal RGB yang digital beserta sinyal sinkronisasi. Kemudian sinyal teresebut akan diterima oleh chip DAC, yang bertugas merubah sinyal digital menjadi analog. Dalam hal ini adalah sinyal RGBnya dari digital menjadi analog, demikian pula sebaliknya. Sinyal yang telah dirubah tersebut dimasukkan kepada VGA yang akan menampilkannya pada layar LCD. Demikianlah garis besar dari cara kerja VGA yang akan kita terapkan secara langsung pada percobaan ini.
3. METODOLOGI
b. display_vhd.vhd
c. top_level.vhd
Pada percobaan kedua ini kita kembali akan menggambar bendera, akan tetapi tidak seukuran satu layar penuh seperti pada percobaan pertama. Pada percobaan ini kita ingin agar ukuran bendera dapat diubah, dan kita menginginkan ukurannya adalah 50x50 pixel. Cara yang dilakukan adalah dengan mengatur kembali batas pada color_rom_vhd.vhd nya yang tadinya hanya memiliki satu batas, sekarang ada 4 batas, yaitu batas atas, kiri, kanan, dan bawah dari bendera yang ingin kita buat. Untuk beberapa file seperti display, top_level, pll digunakan file yang sama dengan percobaan pertama.
Berikut adalah file VHDL yang diubah dari percobaan sebelumnya : a. color_rom_vhd.vhd
Untuk file yang menampilkan kotaknya, digunakan file yang sama dengan percobaan kedua. Berikut adalah file FSM yang digunakan : a. FSM_atas_bawah.vhd
b. FSM_kiri_kanan.vhd
c. top_level_vhd.vhd
d. CLOCKDIV.vhd
Gambar yang kami dapatkan sesuai dengan spesifikasi yang diberikan oleh modul.
Adapun cara kerja dari penggambaran bendera ini adalah pertama dengan mengatur color_rom_vhd.vhd nya. Pada file ini kita membuat spesifikasi yang akan ditampilkan pada layar. Di soal disebutkan bahwa ukuran bendera harus ditengah-tengah yaitu <241. Oleh karena itu kita membuat syarat tersebut dalam file ini, sebagai berikut :
Dimana kami membuat konstanta yang bernilai 241. Dan selama barisnya berada di atas konstanta tersebut, nilai merah akan bernilai 1. Dan di bawahnya kami meng-assign warna sesuai dengan kondisi apabila merah ( merah = 1) atau putih. Setelah selesai, file color_rom_vhd.vhd ini ditambahkan menjadi PORT pada file display_vhd.vhd. File ini adalah file yang berperan untuk mengatur display dari masukan yang telah kita buat ke dalam vga. Semua output yang kita buat dari file color_rom_vhd.vhd dijadikan input pada file ini. Dan kemudian display_vhd.vhd ini juga ditambahkan sebagai PORT pada top_level_vhd.vhd. File ini berperan sebagai driver, semua file yang dibutuhkan ditambahkan disini, dan semua masukan dari berbagai file itu akan di assign kepada input yang dibutuhkan oleh VGA untuk menampilkannya pada layar. Demikianlah cara kerja dari percobaan pertama. Untuk percobaan yang kedua, hasil yang kami dapatkan adalah sebagai berikut :
Cara kerja yang dilakukan kurang lebih sama dengan percobaan pertama, yang berubah hanya satu, yaitu batas yang digunakan untuk nilai merah menjadi 1. Karena kita ingin membuat sebuah persegi yang ukurannya tertentu, maka konstanta yang digunakan tidak cukup hanya satu. Kita harus menambahkan konstanta seperti yang dicantumkan pada potongan file berikut :
Dapat dilihat bahwa ada tambahan konstanta batas atas, kiri, kanan, dan bawah. Oleh karena diinginkan persegi berukuran 50pixel, konstanta harus dibuat berjarak 51pixel. Dan kami memilih 200-251 untuk vertikal, dan 400-451 untuk horizontal. Dan pada syarat agar nilai merah menjadi 1 juga dilakukan sedikit modifikasi, yaitu nilai merah hanya menjadi 1
apabila nilai dari i_pixel_row dan i_pixel_column berada di antara batas-batas yang telah diberikan, dan sisanya dibiarkan bernilai 0. Untuk pewarnaan sendiri tidak mengalami perubahan dari percobaan pertama. Sementara untuk tahapan dari file ke file, untuk percobaan kedua ini sama persis dengan percobaan pertama sehingga tidak ada perbedaan. Untuk percobaan ketiga, hasil yang didapatkan adalah sebagai berikut :
dan V yang berubah sesuai waktu, oleh karena itulah maka kita melihat kotak seperti bergerak, karena perubahannya terjadi sangat cepat dan tidak dapat kita amati. Demikianlah hasil dan analisis yang didapat dari percobaan mengimplementasikan VGA ke layar LCD.
5. KESIMPULAN
GAMBAR 4.3 POTONGAN GAMBAR PERGERAKAN KOTAK KE ARAH ATAS DAN KIRI
Kemungkinan besar gambar yang ditampilkan kurang dapat memberikan gambaran mengenai gerakan dari kotak tersebut. Akan tetapi akan dijelaskan bagaimana cara kerja dari kotak bergerak tersebut. File DIVCLOCK digunakan untuk membuat nilai clk atau waktu dari rangkaian tersebut menjadi teramati oleh mata manusia. Nantinya file DIVCLOCK ini akan dijadikan port dalam FSM yang akan digunakan, baik untuk kiri kanan ataupun atas bawah. Pada masing-masing FSM dibuat terdiri dari 2 state yaitu A,B,C,D. Untuk atas dan bawah, pada saat input g_atas bernilai 0, maka nilai COUNT akan berkurang satu per satu. Sementara bila g_bawah bernilai 0, nilai COUNT akan bertambah satu per satu. Nilai dari COUNT ini akan di assign kepada nilai V atau nilai dari vertikal yang nantinya akan digunakan pada color_rom_vhd dan juga pada top_level_vhd. Begitu pula cara kerja pada FSM kiri dan kanan, dimana pada saat g_kiri bernilai 0 maka COUNT akan bertambah satu per satu dan demikian sebaliknya bila g_kanan bernilai 0. Nantinya nilai dari COUNT ini akan di assign kepada sinyal H yang akan menjadi input pada color_rom_vhd.vhd. FSM ini akan dimasukkan ke dalam driver atau main dari rangkaian ini yaitu top_level_vhd.vhd sebagai PORT. Nilai dari H dan V yang telah dihasilkan dari FSM akan dimasukkan sebagai input pada display_vhd.vhd yang bertugas untuk menampilkan rangkaian tersebut pada LCD. Output tampilan akan ter-refresh sementara FSM terus bekerja, dengan nilai H
VGA merupakan implementasi yang cukup baik dan mudah diterapkan apabila kita ingin menampilkan rangkaian yang telah kita buat dengan VHDL. Yang kita perlukan adalah modul vga itu sendiri dan sebuah layar LCD. Dengan menggabungkan kinerja dari FSM dan VGA kita dapat membuat rangkaian kita interaktif dan dapat ditampilkan pada layar. Sehingga dengan kombinasi keduanya kita dapat membuat suatu aplikasi ataupun program yang dapat memberikan output tampilan yang berdasarkan input dari user.
6. DAFTAR PUSTAKA Brown, Steven dan Varesnic, Zvonko. 2005. Fundamental Of Digital Logic with VHDL Design.
Hutabarat, Mervin, dkk, Modul Praktikum Sistem Digital, Institut Teknologi Bandung, Bandung, 2012