28
PERANCANGAN SISTEM
3.1 Rancangan Sistem
Rancangan sistem secara keseluruhan dapat dilihat pada gambar 3.1.
Monitor FPGA
dan NanoBoard Keyboard
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.
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:
9 Main Board • USB 2.0
• 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 9 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)
• 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.
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.
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.
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.
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 CLK RST DATAO[7..0] DATAI[7..0] BUSY STROBE INT CLK_1MHZ PS2CLKTRI PS2CLKO PS2CLKI PS2DATATRI PS2DATAO PS2DATAI U1 PS2 / 10 U3 CDIV10DC50 CLK_BRD GND U21 IOBUF U22 IOBUF kbd[7..0] led[149..0] font_clk_o clk interrupt Designator keyboard.vhd HS VS R[7..0] G[7..0] B[7..0] CLK in_sw[149..0] font_clk_i sw[7..0] s s1 s2 vga va.vhd VGA_VSYNC VGA_HSYNC VGA_BLUE[7..0] VGA_GREEN[7..0] VGA_RED[7..0] VGA_CLK SW[7..0] 12345678 O N SW_USER0 SW_USER1 SW_USER2 LEDS[7..0] GND CLK_REF / 2 U2 CDIV2 CLK CLK CLK CLK
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
Nama Tipe
Polaritas/ Lebar bit
Deskripsi
STROBE I High
Sinyal ini digunakan untuk inisial transmisi data dari luar ke PS2 device.
INT O High
Interrupt sinyal. Digunakan untuk 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
Tri-state enable signal untuk PS2DATA bidirectional buffer
PS2DATAO O -
PS2 data output (data dari PS2 controller ke PS2 device)
PS2DATAI I -
PS2 data input ( data dari PS2 controller ke PS2 device)
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.
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.
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.
timing dan vertical timing. Berikut potongan program untuk sheet simbol 2
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.20 Timing diagram
Tabel 3.2 Timing Monitor yang digunakan
Horizontal Sync Vertical Sync Symbol Parameter
Lines Lines Ts Sync pulse time 1056 628
TDISP Display time 800 600
TPW Pulse width 128 4 TFP Front porch 40 1 TBP Back porch 88 23
Hasil dari penggabungan horizontal timing dan vertical timing dengan data yang telah diprogram adalah seperti berikut:
3.1.4 Diagram Alir Program Utama
Gambar 3.22 Diagram Alir Program Utama
3.1.5 Diagram Alir Cara Kerja Keyboard
3.1.6 Diagram Alir Cara Kerja Monitor