BAB 3 PERANCANGAN SISTEM 3.1 Rancangan Sistem Rancangan sistem secara keseluruhan dapat dilihat pada gambar 3.1. Keyboard FPGA dan NanoBoard Monitor Gambar 3.1 Diagram Blok Sistem Dari blok diagram diatas terdapat tiga blok sistem yaitu blok keyboard, blok FPGA dan NanoBoard, dan monitor. Blok sistem keyboard berisi bagaimana data dikirim dari keyboard ke FPGA dan NanoBoard. Blok FPGA dan NanoBoard berisi bagaimana cara memproses data yang dikirim oleh keyboard dan dikirim kembali ke monitor untuk ditampilkan di layar. Blok monitor berisi bagaimana cara menampilkan gambar di monitor berdasarkan data yang dikirimkan oleh NanoBoard dan FPGA. 28
29 3.1.1 Perangkat Keras 3.1.1.1 Modul FPGA FPGA yang digunakan adalah modul Xilinx Spartan 3 XC3S1500-4FG676 keluaran Xilinx dengan spesifikasi : Gambar 3.2 Modul FPGA tampak depan (kiri) dan tampak belakang (kanan) 3.1.1.2 Modul NanoBoard Modul NanoBoard yang digunakan adalah NB2-DSK01 V1.2.42 dengan fitur-fitur sebagai berikut: Main Board USB 2.0
30 TFT layar sentuh 4 channel, 8-bit ADC dan 10-bit DAC, I2C kompatibel Variasi switch dan light emitting diode (LED) untuk tujuan umum. Secure Digital (SD) card reader Stereo analog audio system with high-quality on-board amplifiers, mixer, line in/out and stereo speakers Serial Peripheral Interface (SPI) Real-Time Clock with 3V batere cadangan Konektor daya DC 5 Volt Tombol Home/ Reset Dual User Board JTAG headers for direct interaction dan development on production board Variasi dari standar komunikasi penghubung: RS-232 serial CAN PS/2 mini-din Peripheral Board Audio/Video Peripheral Board (PB01) Composite and S-Video output and capture 24-bit VGA output High-performance I2S stereo audio codec Interface Peripheral Board (PB02)
31 Compact Flash SD card slot ATA hard-drive interfaces Data Communications Peripheral Board (PB03) 10/100 Ethernet interface USB 2.0 interface 4MBits/sec IrDA Gambar 3.3 Modul NanoBoard 3.1.1.3 Monitor CRT Monitor CRT yang digunakan adalah merek SyncMaster 591s ukuran 15 inch berfungsi untuk melihat tampilan yang dihasilkan dari proses pengolahan data di dalam FPGA.
32 Gambar 3.4 Layar CRT 3.1.1.4 Keyboard Keyboard yang digunakan adalah merek Logitech Standard Keyboard dengan jumlah tombol 104 buah yang berfungsi sebagai input dari user. Gambar 3.5 Keyboard 3.1.1.5 Kabel USB Kabel USB digunakan untuk mengirimkan hasil rancangan dari PC ke FPGA. Gambar 3.6 Kabel USB
33 3.1.1.6 Power Supply Power Supply digunakan untuk memberikan memberikan daya ke Altium NanoBoard. Gambar 3.7 Power Supply NanoBoard 3.1.2 Perangkat Lunak Pengembangan Driver VGA Card dengan menggunakan software Altium Designer Summer 08. Gambar 3.8 Software Altium Designer Summer 08. 3.1.2.1 Penjelasan Software Jenis FPGA yang digunakan adalah Spartan 3 dengan tipe xc3s1500 dengan package 4fg676, kemudian pada software Altium Designer Summer 08 menyediakan fitur pemrograman
menggunakan bahasa VHDL, bahasa Verilog, bahasa C dan bahasa Assembly. 34 Gambar 3.9 Fitur pemrograman Altium Designer Untuk pemrosesan FPGA seperti Compile Synthesize Build Program FPGA menggunakan bantuan software Xilinx WebPack ISE 10.1, apabila software tersebut tidak terdapat pada PC maka icon-icon pada gambar 3.10 tidak akan muncul. Gambar 3.10 Icon-icon dalam FPGA Project
35 3.1.2.2 Proses pemrograman FPGA Proses untuk memprogram FPGA adalah sebagai berikut: Compile Synthesize Build (Translate Design, Map Design To FPGA, Place and Route, Timing Analysis, Make Bit File) Program FPGA. Proses untuk melakukan semua ini terjadi di dalam software Xilinx ISE Webpack 10.1. Gambar 3.11 Proses pemrograman FPGA 3.1.3 Skematik Sistem PS2B_CLK PS2B_DATA U21 IOBUF U22 U1 PS2CLKTRI PS2CLKO PS2CLKI PS2DATATRI CLK_BRD CLK PS2DATAO PS2DATAI U3 IOBUF PS2 U2 CLK_REF / 10 / 2 CDIV10DC50 CDIV2 CLK RST DATAO[7..0] DATAI[7..0] BUSY STROBE INT CLK_1MHZ CLK GND GND Designator keyboard.vhd kbd[7..0] interrupt LEDS[7..0] clk font_clk_o led[149..0] CLK ON 1 2 3 4 5 6 7 8 SW[7..0] SW_USER0 SW_USER1 SW_USER2 vga va.vhd font_clk_i in_sw[149..0] sw[7..0] s s1 s2 CLK R[7..0] G[7..0] B[7..0] HS VS CLK VGA_CLK VGA_RED[7..0] VGA_GREEN[7..0] VGA_BLUE[7..0] VGA_HSYNC VGA_VSYNC Gambar 3.12 Skematik Sistem
36 Sistem dimulai dari keyboard (PS2B CLK dan PS2B DATA). Komunikasi PS2B CLK dan PS2B DATA adalah komunikasi serial seperti yang sudah dijelaskan pada bab 2. Data data tersebut masuk ke dalam library keyboard, berikut gambaran untuk Library keyboard. Gambar 3.13 Library Keyboard Tabel 3.1 Deskripsi pin library keyboard Nama Tipe Polaritas/ Lebar bit Deskripsi Control Signal CLK I Rising External (sistem) clock CLK_1MHZ O High Referensi clock untuk timing constant pada PS2 timing spesifikasi standard RST I High External (sistem) reset Host Microcontroller Interface Signal DATAO O 8 Output data bus DATAI I 8 Input data bus BUSY O High Aktif ketika PS2 controller mengirim data ke, atau menerima data dari, PS2 device
37 Nama Tipe Polaritas/ Lebar bit Deskripsi STROBE I High Sinyal ini digunakan untuk inisial transmisi data dari luar ke PS2 device. Interrupt sinyal. Digunakan untuk INT O High memberitahukan kedatangan data yang diterima dari alat PS2 PS2 Interface Signal PS2CLKTRI O Low Tri-state enable signal untuk PS2CLK bidirectional buffer PS2CLKO O - PS2 clock output PS2CLKI I - PS2 clock input PS2DATATRI O Low PS2DATAO O - PS2DATAI I - Tri-state enable signal untuk PS2DATA bidirectional buffer PS2 data output (data dari PS2 controller ke PS2 device) PS2 data input ( data dari PS2 controller ke PS2 device)
38 Gambar 3.14 Deskripsi library keyboard Apabila skematik 1 dirancang seperti gambar 3.15, ketika menekan tombol A pada keyboard maka data yang keluar pada DATAO[7..0] adalah x 1C (dalam hexadecimal) disertai dengan data INT berubah dari low menjadi high. Jika tombol A dilepas DATAO[7..0] adalah x F0, x 1C. Data 1C adalah data scan code, data F0 adalah Key-up code. Key-up code yang diikuti dengan scan code disebut juga break code. Sedangkan make code diindikasikan sebagai scan code data tanpa mengikutsertakan start bit, parity bit, maupun stop bit. Gambar 3.15 Skematik 1
39 Berdasarkan Gambar 3.15 sistem berlanjut ke sheet simbol 1, data yang dikirim oleh DATAO[7..0] diterima oleh pin kdb[7..0] dan LEDS[7..0], dan data dari pin INT diterima oleh pin interrupt. LEDS[7..0] digunakan sebagai penunjuk scan code keyboard. Pada sheet simbol 1 pemrograman baru dilakukan. Berikut potongan program untuk Sheet simbol 1: Data yang diterima pada pin kdb[7..0] dirubah menjadi 150 bit sehingga terbentuk menjadi gambar huruf seperti pada gambar 3.16.
40 Gambar 3.16 Contoh tampilan blok keyboard Gambar 3.17 Skematik 2 Hasil dari sheet simbol 1 diteruskan ke sheet simbol 2. Data dari pin led[149..0] diterima oleh pin in_sw[149..0]. Pada sheet simbol 2 juga terdapat pin R[7..0], G[7..0], B[7..0], HS dan VS sepeti yang terlihat pada gambar 3.17. Pin R[7..0], G[7..0], B[7..0] digunakan untuk mengirimkan data warna yang masing-masing sebesar 8 bit. Dip-switch dan generic user switch digunakan untuk mengubah nilai bit warna merah, biru dan hijau. Sedangkan pin HS dan VS digunakan untuk mengirimkan data horizontal
timing dan vertical timing. Berikut potongan program untuk sheet simbol 2 : 41
42 Gambar 3.18 skematik 3 Hasil dari sheet simbol 2 diteruskan ke bagian konektor VGA. Berikut potongan program pada sheet simbol 2 untuk mengirimkan data ke konektor VGA.
Gambar 3.19 Scanning Monitor 43
44 Gambar 3.20 Timing diagram Tabel 3.2 Timing Monitor yang digunakan Symbol Parameter Horizontal Sync Lines Vertical Sync Lines Ts Sync pulse time 1056 628 T DISP Display time 800 600 T PW Pulse width 128 4 T FP Front porch 40 1 T BP Back porch 88 23 Hasil dari penggabungan horizontal timing dan vertical timing dengan data yang telah diprogram adalah seperti berikut: Gambar 3.21 tampilan monitor
45 3.1.4 Diagram Alir Program Utama Gambar 3.22 Diagram Alir Program Utama 3.1.5 Diagram Alir Cara Kerja Keyboard Gambar 3.23 Diagram Alir Cara Kerja Keyboard
46 3.1.6 Diagram Alir Cara Kerja Monitor Gambar 3.24 Diagram Alir Cara Kerja Monitor