Modul Praktikum FIELD PROGRAMABLE GATE ARRAY. Universitas Gunadarma. Laboratorium Sistem Komputer Lanjut. Universitas Gunadarma

Ukuran: px
Mulai penontonan dengan halaman:

Download "Modul Praktikum FIELD PROGRAMABLE GATE ARRAY. Universitas Gunadarma. Laboratorium Sistem Komputer Lanjut. Universitas Gunadarma"

Transkripsi

1 Modul Praktikum FIELD PROGRAMABLE GATE ARRAY Universitas Gunadarma By Laboratorium Sistem Komputer Lanjut Universitas Gunadarma

2 Daftar isi : BAB 1 : Schematic Rancangan Schematic Gerbang Logika Gerbang AND Gerbang OR Gerbang NOT Gerbang NAND Gerbang NOR Gerbang XOR Gerbang XNOR Half Adder Full Adder Half Substractor Full Substractor BAB 2 : Verilog Sejarah Verilog Pemrograman Verilog Simulasi Sintesis Verilog HDL Syntax and Semantics Identifier Angka dalam Verilog Angka Integer Strings Operator Verilog Operator Arithmatic Operator Relational Operator Relational Operator Logika Operator Bit-wise

3 Operator Reduksi Operator Shift (pergeseran) Operator Concatenation (rangkaian) Operator Konditional Operator Precedence Model Verilog Behavorial Tingkat Abstraksi HDL Verilog Blok Prosedural Statements (pernyataan) Pernyataan Sequential group Pernyataan Parallel group Pernyataan Kondisi (if else) Pernyataan Case Pernyataan perulangan BAB 3 : VHDL Mengenal VHDL Library Entity Ports Generics Berkas Packages (Paket) Loops (Perulangan) For Exit Next Basic Variable Types and Operators Constants Signals Variables Boolean Operators Arithmetic operators

4 Comparison operators Shifting Functions Concatenation Type data dalam VHDL Tipe Data Standar Tipe Data Pengguna Process dalam VHDL Architecture dalam VHDL Bagian Pendeklarasian Architecture Bagian Pernyataan Architecture BAB 4 : Integrated Circuit Integrated Circuit Counter Secara Umum BAB 5 : PS/ PS/2 Keyboard Scan Code Sistem Bilangan Biner BAB 6 : LCD LCD Karakter Scan Code Pemetaan Memori Set Instruksi BAB 7 : VGA Video Graphic Array Resolusi VGA Jenis-jenis Konektor BAB 8 : Studi Kasus Studi Kasus I

5 8.2. Studi Kasus II Studi Kasus III Studi Kasus IV Studi Kasus V Studi Kasus VI

6 PERTEMUAN 1 SCHEMATIC I. Tujuan Praktikum : Praktikan Dapat Mengenal dan Memahami Desain Schematic pada FPGA Praktikan Dapat Merancang Desain Schematic pada Pemrograman FPGA Praktikan Dapat Memahami Penggunaan Gerbang Logika dalam Desain Schematic II. Dasar Teori Pengenalan Desain Schematic Pengenalan Perancangan Desain Schematic Aplikasi Rancangan Desain Schematic III. Peralatan FPGA XILINX SPARTAN 3E Adaptor 5 Volt 1 buah PC 5

7 1 BAB 1 SCHEMATIC 1.1 Rancangan Schematic Suatu rancangan rangkaian dapat diwujudkan ke dalam FPGA dengan cara menggambar skema rangkaian tersebut. Penggambaran skema rangkaian gambar tersebut dapat dilakukan pada perangkat lunak (software) yang biasanya disertakan dalam setiap pembelian FPGA. Misalnya software Quartus dan Max+Plus untuk FPGA milik Altera. Sedangkan FPGA buatan Xilinx dengan perangkat lunaknya yakni ISE WebPack. Selanjutnya, skema rangkaian digambar dengan cara membuat tiap komponen serta jalur-jalur yang menghubungkan komponen-komponen tersebut menjadi satu kesatuan. Hingga akhirnya tercipta gambar skema rangkaian yang utuh. Metode ini terbilang mudah dan efektif terutama bila dipakai untuk skema rangkaian yang sederhana serta tidak memiliki jalur-jalur yang rumit. Gambar 1.1 Rangkaian yang dibuat dengan Metode Schematic Skema desain schematic merupakan seperangkat sistem yang memungkinkan Anda untuk menangkap struktur desain baik sebagai deskripsi datar atau hirarkis seperangkat komponen, dan konektivitas antara komponen-komponen ini. Kemudian Anda dapat menggunakan deskripsi ini untuk mendorong pelaksanaan dan verifikasi alat. Anda membuat desain skematis menggunakan Schematic Editor. Schematics dapat 6

8 single-level (flat) atau multi-tingkat (hirarkis). Schematics dapat ditarik pada beberapa "lembar" dan ukuran apapun. 1.2 Gerbang Logika Gerbang logika atau sering juga disebut gerbang logika Boolean merupakan sebuah sistem pemrosesan dasar yang dapat memproses input-input yang berupa bilangan biner menjadi sebuah output yang berkondisi yang akhirnya digunakan untuk proses selanjutnya. Tegangan yang digunakan dalam gerbang logika adalah TINGGI atau RENDAH. Tegangan tinggi berarti 1, sedangkan tegangan rendah berarti 0. Gerbang logika dapat mengkondisikan input - input yang masuk kemudian menjadikannya sebuah output yang sesuai dengan apa yang ditentukan olehnya. Terdapat tiga gerbang logika dasar, yaitu : gerbang AND, gerbang OR, gerbang NOT. Ketiga gerbang ini menghasilkan empat gerbang berikutnya, yaitu : gerbang NAND, gerbang NOR, gerbang XOR, gerbang XAND Gerbang AND Gerbang AND digunakan untuk menghasilkan logika 1 jika semua masukan mempunyai logika 1, jika tidak maka akan dihasilkan logika 0 Gambar 1.2 : Gerbang Logika AND dan Tabel Kebenaran AND Pernyataan Boolean untuk Gerbang AND A. B = Y (A and B sama dengan Y ) 7

9 1.2.2 Gerbang OR Gerbang OR adalah gerbang dimana salah satu atau semua masukan; keluaran terjadi bila salah satu atau semua masukan ada. Gerbang OR akan memberikan keluaran 1 jika salah satu dari masukannya pada keadaan 1. jika diinginkan keluaran bernilai 0, maka semua masukan harus dalam keadaan 0 Gambar 1.3 : Gerbang Logika OR dan Tabel Kebenaran OR Gerbang NOT Gerbang NOT adalah gerbang yang mempunyai sebuah input dan sebuah output. Gerbang NOT berfungsi sebagai pembalik (inverter), sehingga output dari gerbang ini merupakan kebalikan dari inputnya. 8

10 Gambar 1.4 Gerbang Logika NOT dan Tabel Kebenaran NOT Gerbang NAND Gerbang NAND akan mempunyai keluaran 0 bila semua masukan pada logika 1. sebaliknya jika ada sebuah logika 0 pada sembarang masukan pada gerbang NAND, maka keluaran akan bernilai 1. Gambar 1.5 Gerbang Logika NAND dan Tabel Kebenaran NAND 9

11 1.2.5 Gerbang NOR Gerbang NOR akan memberikan keluaran 0 jika salah satu dari masukannya pada keadaan 1. jika diinginkan keluaran bernilai 1, maka semua masukannya harus dalam keadaan 0. Gambar 1.6 Gerbang Logika NOR dan Tabel Kebenaran NOR Gerbang XOR Gerbang XOR (dari kata exclusive OR) akan memberikan keluaran 1 jika masukanmasukannya mempunyai keadaan yang berbeda. Gambar 1.7 : Gerbang Logika XOR dan Tabel Kebenaran XOR 10

12 1.2.7 Gerbang XNOR Gerbang XNOR (dari kata exclusive NOR) akan memberikan keluaran 0 jika masukan-masukannya mempunyai keadaan yang berbeda Gambar 1.8 : Gerbang Logika XOR dan Tabel Kebenaran XOR Half Adder Half Adder Merupakan rangkaian elektronik yang bekerja melakukan perhitungan penjumlahan dari dua buah bilangan binary, yang masing-masing terdiri dari satu bit. Rangkaian ini memiliki dua input dan dua buah output, salah satu outputnya dipakai sebagai tempat nilai pindahan dan yang lain sebagai hasil dari penjumlahan. 11

13 Gambar 1.9 : Rangkaian Half Adder dan Tabel Kebenarannya Full Adder Full Adder merupakan rangkaian elektronika yang menjumlahkan dua bilangan yang telah dikonversikan menjadi bilangan-bilangan biner. Masing-masing bit pada posisi yang sama saling dijumlahkan. Full Adder sebagai penjumlah pada bit-bit selain yang terendah. Full Adder menjumlahkan dua bit input ditambah dengan nilai Carry-Out dari penjumlahan bit sebelumnya. Output dari Full Adder adalah hasil penjumlahan (Sum) dan bit kelebihannya (carry-out). Blok diagram dari sebuah full adder diberikan pada gambar di bawah. Gambar 1.10 : Rangkaian Full Adder dan Tabel Kebenarannya 12

14 Half Substractor Half subtractor adalah rangkaian pengurangan sistem bilangan biner yang paling sederhana, karena hanya dapat digunakan untuk operasi pengurangan data bilangan biner sampai 1 bit saja. Rangkaian ini memiliki 2 terminal input (A dan B) dan 2 terminal output (DIFFERENCE dan BORROW). Gambar 1.11 : Rangkaian Half Substractor dan Tabel Kebenarannya Full Substractor Full subtractor adalah rangkaian yang digunakan untuk mengurangkan bilanganbilangan biner yang lebih dari 1 bit. Rangkaian ini terdiri dari 3 terminal input (A, B, dan Carry in) dan 2 terminal output (DIFFERENCE dan BORROW). Rangkaian full subtractor dibentuk dari 2 buah rangkaian pada half subtractor. 13

15 Gambar 1.12 : Rangkaian Full Substractor dan Tabel Kebenarannya 14

16 PRAKTEK : Percobaan 1 : Gerbang AND Langkah-Langkah: 1. Buka Xilink ISE 9.2i 2. Klik File -> New Project 3. Ketik nama project dengan nama GerbangAND lalu klik next 4. Atur Device Properties seperti gambar dibawah ini : 5. Klik new source -> ketik nama file namenya GerbangAND pilih Schematic -> klik next -> klik Finish -> pilih yes 6. Klik next -> pilih next lagi -> lalu Finish 7. Gambar desain schematic gerbang AND -> lalu save 8. Pada bagian tab Processes pada Synthesize-XST klik kanan pilih Run 9. Klik tanda + pada User Constraints pilih Assign Package Pins dengan klik kanan pilih Run -> pilih yes 15

17 10. Isikan LOC pin seperti gambar berikut: 11. Klik kanan pada Implement Design lalu pilih Run 12. Klik tanda + pada Generate Programming File -> pilih Configure Device (impact) klik kanan lalu Run 13. Pada tab impact klik Finish 14. Pilih gerbangand.bit klik Open -> Bila ada tanda warning klik Ok 15. klik Bypass -> lalu klik Bypass lagi 16. pada tab Xilink Web Talk Dialog klik Decline -> pilih Ok 17. Klik kanan pada gambar IC Xilink sebelah kiri lalu pilih program seperti gambar dibawah ini: 18. Lalu pilih OK sampai muncul tulisan Program Succeeded 16

18 TABEL KEBENARAN GERBANG AND, OR, NOT : KESIMPULAN: Ikuti Langkah-langkah seperti pada Gerbang And untuk mengerjakan Gerbang Nand, Nor, Xor, Xnor, Half Adder, Full Adder, Half Substractor, dan Full Substractor. 17

19 Percobaan 2 : Gerbang NAND, NOR, XOR, XNOR KESIMPULAN: 18

20 KESIMPULAN: 19

21 Percobaan 3 : Half Adder KESIMPULAN: 20

22 Percobaan 4 : Half Substractor KESIMPULAN: 21

23 Percobaan 5 : Full Adder KESIMPULAN: 22

24 Percobaan 6 : Full Substractor KESIMPULAN: 23

25 Program Mandiri I : Hasil Output : Program Mandiri II : Hasil Output : 24

26 Program Mandiri III : Hasil Output : 25

27 PERTEMUAN 2 VERILOG I. Tujuan Praktikum : Praktikan Dapat Mengenal dan Memahami Pemrograman Verilog pada FPGA Praktikan Dapat Merancang Program Verilog pada Pemrograman FPGA Praktikan Dapat Memahami Penggunaan Gerbang Logika dalam Pemrograman Verilog II. III. Dasar Teori Pengenalan Program Verilog Merancang Desain Program menggunakan Verilog Aplikasi Perancangan Program Verilog Peralatan FPGA XILINX SPARTAN 3E Adaptor 5 Volt 1 buah PC 26

28 2 BAB 2 VERILOG 2.1 Sejarah Verilog Verilog pada awalnya dimulai sebagai perangkat lunak yang memiliki bahasa dengan model perangkat keras Gateway Design Automation Inc sekitar tahun Dari rumor yang beredar, Bahasa ini dirancang dengan mengambil fitur dari bahasa HDL paling popular pada waktu itu, yang disebut Hilo dan juga dari bahasa komputer tradisional seperti C. Verilog simulator, pertama kali digunakan pada tahun 1985 dan diperpanjang substansialnya melalui pelaksanaannya pada tahun Verilog simulator pertama adalah Verilog-XL, yang menambahkan beberapa fitur salah satunya yang terkenal adalah "XL algoritma" yang merupakan metode yang sangat efisien untuk melakukan simulasi gerbangtingkat. Pada akhir 1990, Cadence Design System, yang pada saat itu membuat proses film tipis simulator, memutuskan untuk membentuk Gateway Sistem otomatis. Yang saat ini menjadi pemilik bahasa Verilog, baik sebagai bahasa atau sebagai simulator. Pada saat yang sama, Synopsys memasarkan topdown desain metodologinya, menggunakan Verilog. Ini adalah kombinasi yang kuat pada sekitar tahun 1990-an. Walaupun standardisasi tekanan pada akhirnya menyebabkan industri bergeser ke bahasa VHDL Pemrograman Verilog Verilog adalah sebuah bahasa yang termasuk HARDWARE DESCRIPTION LANGUAGE (HDL). Dimana bahasa yang digunakan untuk menggambarkan sistem digital pada suatu perangkat keras. Verilog seperti bahasa deskripsi perangkat keras lainnya, memungkinkan desainer untuk merancang sebuah desain dalam dua metodologi, yaitu Bottom-up dan top-down metodologi. Bottom-Up Design Pada Bottom-Up, Setiap desain dilakukan pada level gerbang menggunakan gerbang dasar standar. Dengan meningkatnya kompleksitas desain rancangan digital saat ini dengan sistem baru yang terdiri dari mikroprosesor dengan kompleksitas ribuan transistor teknik ini hampir mustahil untuk dipertahankan. 27

29 Top-Down Design top-down design gaya desain yang hamper selalu dipakai dari semua desainer program verilog. topdown sesungguhnya memungkinkan pengujian desain awal, mudah melakukan perubahan teknologi yang berbeda, memungkinkan sebuah desain sistem terstruktur dan menawarkan banyak keuntungan lain. Tapi sangat sulit untuk mengikuti murni desain top-down. Karena fakta ini sebagian besar programmer Verilog menggunakan desain campuran dari kedua metode, dan menerapkan beberapa elemen penting dari kedua desain. Verilog mendukung desain pada berbagai tingkat abstraksi yaitu: 1. Behavorial Level (Tingkat perilaku) Tingkat ini menggambarkan sebuah sistem menggunakan algoritma bersamaan (Perilaku). Tiap algoritma itu sendiri adalah berurutan, yang berarti terdiri dari satu set instruksi yang dilaksanakan satu demi satu. 2. Register-Transfer Level (RTL) Desain menggunakan Register-Transfer level menentukan karakteristik rangkaian dari operasi dan transfer data antara register. Desain RTL berisi kemungkinan waktu yang tepat. Operasi dijadwalkan untuk terjadi pada waktuwaktu tertentu. 3. Gate Level Dalam tingkat logika karakteristik dari sistem dijelaskan oleh logis link dan sifat waktu sistem atau Semua sinyal diskrit sistem. Sistem hanya memiliki nilai-nilai logis tertentu ( `0 ',` 1', `X ',` Z `), Operasi yang dapat dimanfaatkan standar logika primitif (AND, OR, NOT dll gerbang). Menggunakan tingkat gerbang pemodelan mungkin bukan ide yang baik untuk setiap tingkat desain logika. Tingkat Gate kode yang dihasilkan oleh alat bantu seperti alat sintesis dan netlist ini digunakan untuk tingkat gerbang simulasi dan untuk backend. 28

30 Gambar 3.1 Contoh desain alur rancangan program Verilog 2.2 Simulasi Simulasi adalah proses verifikasi karakteristik fungsional model pada setiap tingkat abstraksi. Kami menggunakan simulator untuk mensimulasikan Hardware model. Untuk menguji apakah kode RTL memenuhi persyaratan fungsional spesifikasi dan melihat apakah semua blok RTL fungsional benar. Untuk mencapai ini kita perlu menulis testbench, yang menghasilkan CLK, reset dan tes yang diperlukan vektor 29

31 2.3 Sintesis Sintesis adalah proses di mana desain alat seperti compiler atau Synplify mengambil RTL di Verilog atau VHDL. Sintesis adalah alat pemetaan RTL untuk setiap program, juga melakukan minimal waktu analisis untuk melihat apakah desain yang dipetakan memenuhi persyaratan atau tidak. 2.4 Verilog HDL Syntax and Semantics Konvensi leksikal dasar yang digunakan oleh Verilog HDL serupa dengan yang di pemrograman bahasa C. contoh bahasa Verilog: Gambar 2.2 Contoh desain alur rancangan program Verilog 2.5 Identifier Identifier adalah nama yang digunakan untuk memberikan suatu objek, misalnya mendaftar atau modul, nama sehingga dapat direferensikan dari tempat-tempat lain dalam deskripsi. Ciri-ciri Identifier: 30

32 Identifier harus dimulai dengan sebuah karakter abjad atau menggaris bawahi karakter (a-z A-Z _) Pengidentifikasi dapat mengandung huruf, angka karakter, dengan underscore, dan tanda dolar (az AZ 0-9 _ $) Pengidentifikasi dapat berisi hingga 1024 karakter lama. Verilog HDL memungkinkan setiap karakter yang akan digunakan dalam suatu pengenal dapat melarikan diri dari pengenal (tidak teridentifikasi). Lolos pengidentifikasi menyediakan sarana termasuk salah satu karakter ASCII dicetak dalam sebuah identifier (nilai desimal 33 melalui 126, atau 21 melalui 7E dalam heksadesimal). Hal-hal yang membuat karakter tidak teridentifikasi adalah: Seluruh pengidentifikasi lolos oleh slash belakang ( \ ) karena dapat terdeteksi sebagai keterangan Lolos identifikasi diakhiri dengan spasi, Karakter seperti koma, tanda kurung, dan titik koma menjadi bagian dari pengenal lolos kecuali didahului oleh spasi. Mengakhiri lolos pengidentifikasi dengan spasi, kalau tidak karakter yang harus mengikuti pengenal dianggap sebagai bagian dari program. Hal-hal yang menyebabkan suatu program lolos dari identifikasi dapat terjadi. Sehingga berhasil di check sintaks. Namun pada saat di Implementasi kemungkinan menjadi error. Contoh : karakter yang lolos atau tidak teridentifikasi: \486_up \Q~ \1,2,3 \reset* module \486 (q,\q~,d,clk,\reset*); 2.6 Angka dalam Verilog Kita dapat menetapkan angka konstan dalam desimal, heksadesimal, oktal, atau biner format. Angka negatif direpresentasikan dalam 2's complement. Pada karakter underscore (_) harus digunakan di mana saja dalam nomor kecuali sebagai karakter pertama, di mana ia diabaikan. 31

33 2.6.1 Angka Integer Verilog HDL memungkinkan angka integer untuk ditetapkan sebagai: Ukuran atau angka unsized (Unsized ukuran adalah 32 bit) Dalam pf radix biner, oktal, desimal, atau heksadesimal Kasus dan radix adalah digit hex (a, b, c, d, e, f) tidak peka Spasi antara ukuran, radix dan nilai Sintaks: <size> '<radix> <value> Contoh angka integer: Gambar 3.3 Contoh angka Integer Strings String adalah deretan karakter yang dilingkupi oleh tanda kutip ganda dan semua terdapat pada satu baris. String digunakan sebagai Operand dalam ungkapan yang digunakan sebagai urutan delapan-bit nilai ASCII, dengan sebuah delapan-bit nilai ASCII mewakili satu karakter. Verilog tidak menyimpan string penghentian karakter. String dapat dimanipulasi dengan menggunakan standar operator. 2.7 Operator Verilog Berikut ini adalah operator yang digunakan dalam bahasa pemrograman Verilog : Operator Arithmatic Binary: +, -, *, /,% (modulus operator) Unary: +, -- Pembagian integer memotong setiap bagian fraksional 32

34 Hasil dari operasi modulus mengambil tanda operand pertama Jika ada nilai bit operand adalah nilai yang diketahui x, maka seluruh hasil nilainya x Operator Relational a <b yang kurang b a> b yang lebih besar daripada b a <= b kurang dari atau sama dengan b a> = b yang lebih besar dari atau sama dengan b Hasilnya adalah nilai skalar Jika relasi adalah palsu 1 jika hubungan benar x jika salah satu dari Operand telah diketahui x bit Catatan: Jika nilai x atau z, maka hasil tes itu palsu Operator Relational a === b a sama dengan b, termasuk x dan z a! == b yang tidak sama dengan b, termasuk x dan z a == b a sama dengan b, sehingga kemungkinan tidak diketahui a! = b yang tidak sama dengan b, hasil kemungkinan tidak diketahui Operand dibandingkan sedikit demi sedikit, dengan mengisi nol jika kedua Operand tidak memiliki panjang yang sama Hasilnya adalah 0 (false) atau 1 (true) Untuk == and! = Operator yang hasilnya adalah x, jika salah satu operand berisi nilai x atau z Untuk === and! == Operator bit dengan x dan z yang dimasukkan dalam perbandingan dan harus cocok untuk hasil benar hasilnya selalu 0 atau 1 33

35 2.7.4 Operator Logika! Logika negasi & & Logis and Logis atau Ekspresi terhubung oleh & & and dievaluasi dari kiri ke kanan Evaluasi berhenti segera setelah diketahui hasilnya Hasilnya adalah nilai scalar: 0 jika relasi adalah False 1 jika relasi adalah True x jika salah satu dari Operand telah diketahui x bit Operator Bit-wise ~ Negasi & And Inklusif Or ^ Eksklusif Or ^ ~ Or ~ ^ eksklusif Nor Perhitungan bit tidak diketahui, dengan cara sebagai berikut: ~ x = x 0 & x = 0 1 & x = x & x = x 1 x = 1 0 x = x x = x 0 ^ x = 1 ^ x = x ^ x = x 0 ^ ~ x = 1 ^ ~ x = x ^ ~ x = x Operator Reduksi 34

36 Pengurangan operator unary. Mereka melakukan sedikit-operasi bit-wise pada satu operand untuk menghasilkan hasil bit tunggal. Pengurangan NAND dan NOR unary operator beroperasi sebagai AND dan OR, tetapi dengan menegasikan output. Unknown bit diperlakukan seperti yang dijelaskan sebelumnya Operator Shift (pergeseran) << Left shift (pergeseran kekiri) >> Right shift (pergeseran kekiri) Operand kiri digeser oleh jumlah posisi bit yang diberikan oleh operand kanan. Bit posisi yang ditinggalkan diisi dengan nol Operator Concatenation (rangkaian) Concatenations dinyatakan menggunakan penjepit karakter (dan), dengan koma memisahkan ekspresi dalam Contoh: (a, b [3:0], c, 4'b1001) / / jika a dan c adalah 8-bit, memiliki hasil 24 bit Angka konstan Unsized tidak diperbolehkan dalam concatenations Pengulangan pengganda yang konstan dapat digunakan: (3 (a)) / / ini setara dengan (a, a, a) Concatenations nested (rangkaian penggabungan) yang mungkin: (b, (3 (c, d))) / / ini setara dengan (b, c, d, c, d, c, d) Operator Konditional Operator Konditional memiliki format seperti berikut: cond_expr? true_expr: false_expr True_expr atau false_expr dievaluasi dan digunakan sebagai hasil tergantung pada apakah cond_expr mengevaluasi untuk benar atau salah Contoh : out = (enable)? data: 8'bz; / / Tri state buffer 35

37 Operator Precedence 2.8 Model Verilog Behavorial Tingkat Abstraksi HDL Verilog Behavioral Models: tingkat tinggi di mana perilaku pemodelan logika adalah model. RTL Model: Logika mendaftar dimodelkan pada tingkat Structural Model: Logika dimodelkan pada kedua tingkat mendaftar dan gerbang tingkat Blok Prosedural Kode perilaku Verilog adalah prosedur di dalam blok, tetapi ada pengecualian, beberapa kode perilaku juga ada prosedur di luar blok. Kita bisa melihat hal ini secara rinci ketika kita membuat kemajuan. Ada dua jenis prosedural blok di Verilog: Initial: Initial blok mengeksekusi hanya sekali pada waktu nol (mulai pada waktu pelaksanaan nol). Always: always blok loop untuk mengeksekusi berulang kali, Dengan kata lain selalu dijalankan. Example : initial dan always 36

38 2.9 Statements (pernyataan) Pernyataan Sequential group Kelompok beberapa pernyataan dilakukan bersama. Menyebabkan pernyataan dievaluasi dalam secara berurutan (satu per satu waktu). Setiap waktu dalam kelompok-kelompok berurut relatif terhadap pernyataan sebelumnya. Penundaan dalam urutan menumpuk (setiap penundaan akan ditambahkan ke penundaan sebelumnya) Blok selesai setelah pernyataan terakhir di blok Pernyataan Parallel group Kelompok beberapa pernyataan dilakukan bersama. Menyebabkan pernyataan untuk dievaluasi secara paralel (pada saat yang sama). Timing dalam kelompok paralel mutlak ke awal kelompok. Blok selesai setelah pernyataan terakhir selesai Pernyataan Kondisi (if else) Pernyataan if else mengendalikan pelaksanaan pernyataan lainnya. Dalam bahasa pemrograman seperti c, jika - lain mengendalikan aliran program. if (kondisi) statements; if (kondisi) statements; else statements; if (kondisi) statements; else if (kondisi) statements; else statements; contoh : // Simple if statement 37

39 if (enable) q <= d; // One else statement if (reset == 1'b1) q <= 0;; else q <= d; // Nested if-else-if statements if (reset == 1'b0) counter <= 4'b0000; else if (enable == 1'b1 && up_en == 1'b1) counter <= counter + 1'b1; else if (enable == 1'b1 && down_en == 1'b1); counter <= counter - 1'b0; else counter <= counter; // Redundant code Pernyataan Case Pernyataan Case adalah sebuah ekspresi untuk membandingkan serangkaian kasus dan mengeksekusi pernyataan atau kelompok pernyataan yang terkait dengan yang pertama (kasus pencocokan) Mendukung pernyataan Case satu atau beberapa pernyataan. Kelompok pernyataan multiple memulai dan berakhir menggunakan kata kunci. Contoh : case (<expression>) <case1> : <statement> <case2> : <statement>... default : <statement> endcase 38

40 2.9.5 Pernyataan perulangan Pernyataan Looping (perulangan) muncul di dalam sebuah blok prosedural saja, Verilog memiliki empat pernyataan perulangan seperti bahasa pemrograman lain: Forever Repeat While For Contoh : Forever : Mengeksekusi loop yang terus-menerus (loop tidak pernah berakhir) initial begin clk = 0; forever #5 clk =!clk; end Repeat : Mengeksekusi loop pernyataan yang berulang-ulang. if (opcode == 10) //perform rotate repeat (8) begin temp = data[7]; data = {data<<1,temp}; end While : Mengeksekusi loop sementara. loc = 0; if (data = 0) // example of a 1 detect shift value loc = 32; else while (data[0] == 0); //find the first set bit begin loc = loc + 1; data = data << 1; end For : looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi. for (i=0;i<=63;i=i+1) ram[i] <= 0; // Inialize the RAM with 0 39

41 PRAKTEK : Percobaan 1 : Gerbang AND Langkah-Langkah: 1. Buka Xilink ISE 9.2i 2. Klik File -> New Project 3. Ketik nama project dengan nama GerbangAND lalu klik next 4. Atur Device Properties seperti gambar dibawah ini : 5. Klik new source -> ketik nama file namenya GerbangAND pilih Verilog Module -> klik next -> masukan input dan outputnya seperti dibawah ini: 40

42 6. Klik next terus hingga Finish -> pilih yes 7. Klik next -> pilih next lagi -> lalu Finish 8. Ketik source code nya -> AND -> <- OR 9. lalu save 10. Pada bagian tab Processes pada Synthesize-XST klik tanda + klik kanan Check Syntax pilih Run 11. Pada bagian tab Processes pada Synthesize-XST klik kanan pilih Run 12. Klik tanda + pada User Constraints pilih Assign Package Pins dengan klik kanan pilih Run -> pilih yes 13. Isikan LOC pin seperti gambar berikut: 14. Klik kanan pada Implement Design lalu pilih Run 15. Klik tanda + pada Generate Programming File -> pilih Configure Device (impact) klik kanan lalu Run 41

43 16. Pada tab impact klik Finish 17. Pilih (- - - nama module- - -).bit klik Open -> Bila ada tanda warning klik Ok 18. klik Bypass -> lalu klik Bypass lagi 19. pada tab Xilink Web Talk Dialog klik Decline -> pilih Ok 20. Klik kanan pada gambar IC Xilink sebelah kiri lalu pilih program seperti gambar dibawah ini: 21. Lalu pilih OK sampai muncul tulisan Program Succeeded TABEL KEBENARAN GERBANG AND, OR, NOT : 42

44 KESIMPULAN: 43

45 Ikuti Langkah-langkah seperti pada Gerbang And, OR, Not untuk mengerjakan Gerbang Nand, Nor, Xor, Xnor, Half Adder, Full Adder, Half Substractor, dan Full Substractor. Percobaan 2 : Gerbang NAND, Nor, Xor, Xnor KESIMPULAN: 44

46 KESIMPULAN: 45

47 Percobaan 3 : Half Adder KESIMPULAN: 46

48 Percobaan 4 : Half Substractor KESIMPULAN: 47

49 Percobaan 5 : Full Adder 48

50 KESIMPULAN: Percobaan 6 : Full Substractor 49

51 KESIMPULAN: 50

52 Program Mandiri I : Source Code : Hasil Output : 51

53 Program Mandiri II : Source Code : Hasil Output : 52

54 Program Mandiri III : Source Code : Hasil Output : 53

55 PERTEMUAN 3 VHDL I. Tujuan Praktikum : Praktikan Dapat Mengenal dan Memahami Pemrograman VHDL pada FPGA Praktikan Dapat Merancang Program VHDL pada Pemrograman FPGA Praktikan Dapat Memahami Penggunaan Gerbang Logika dalam Pemrograman VHDL II. Dasar Teori Pengenalan Program VHDL Merancang Desain Program menggunakan VHDL Aplikasi Perancangan Program VHDL III. Peralatan FPGA XILINX SPARTAN 3E Adaptor 5 Volt 1 buah PC 54

56 3 BAB 3 VHDL 3.1 Mengenal VHDL VHDL ( Very High Speed Integrated Hardwere Description Language ). Konsep serta syntax banyak diperlukan untuk mengerti bagaimana rancangan VHDL sebagai bagian dari pemrograman FPGA. Dalam kebanyakan kasus, keputusan memilih dan menggunakan kode VHDL daripada kode Verilog atau SystemC, sangat tergantung pada pilihan perancang itu sendiri dan lebih kepada ketersediaan software pendukung serta kebutuhan perusahaan. Lebih dari satu dekade, terjadi perdebatan panjang yang tak berkesudahan diantara komunitas pengguna VHDL dengan Verilog. Mereka berdebat mengenai kode mana yang terbaik untuk digunakan dan kode apa yang lebih lengkap dalam hal aturan penulisannya. Memang diantara kedua kode tersebut memiliki perbedaan yang cukup signifikan. Namun secara filosofi konsep, perbedaan dasar dari VHDL dengan Verilog adalah mengenai konteks dari kedua bahasa itu sendiri. Verilog berasal dari tradisi bottom-up yang telah sering digunakan dalam industri IC dalam hal rancangan dasar IC. Sedangkan kode VHDL dikembangkan lebih kepada persepektif top-down. Tentu saja, banyak perbedaan umum dan luas dalam konteks saat ini. Namun, secara jelas dan nyata, perbedaannya dapat terlihat pada syntax dasar dan metode dari kedua kode tersebut. VHDL adalah kemampuannya untuk menggunakan gabungan level dari model yang memiliki arsitektur yang berbeda seperti ditunjukkan sebagai berikut : Gambar 3.1 Contoh: Arsitektur Model VHDL 55

57 Hal tersebut memang bukanlah keunikan atau ciri khas VHDL. Namun, pada kenyataannya kode Verilog juga memiliki konsep sama walaupun hanya terdapat dalam sebuah module. Meskipun demikian, keungulan itu secara eksplisit didefinisikan dalam VHDL dan secara praktis digunakan bersama oleh rancangan multi-level dalam VHDL. Pembagian sebuah model ke dalam beberapa bagian juga merupakan keuggulan lain dari VHDL. Misalnya, bagian interface (dalam VHDL dikenal sebagai entity ) dan bagian kelakuan atau behaviour (dalam VHDL dikenal sebagai architecture ). Bagian-bagian tersebut adalah pendekatan praktis yang luar biasa untuk bentuk model yang memiliki multiple behaviour dalam sebuah interface. Selain itu bentuk model tersebut memungkinkan terjadi pertukaran dan implementasi multiple secara terus menerus. Hal inilah salah satu pembeda VHDL dengan Verilog. Entity merupakan salah satu contoh bentuk satu kesatuan dan terpisah dengan bagian yang lain. Untuk selengkapnya, beberapa uraian berikut akan menjelaskan tentang entity serta hal-hal yang terkait di dalamnya. Ada beberapa dasar-dasar serta teknik penulisan kode dalam VHDL. Beberapa diantaranya adalah entity, architcture, basic type variables and operator, decisions, loops, dsb. Terdapat pula berkas-berkas yang nantinya berkas ini dapat digunakan sewaktu-waktu untuk berbagai keperluan tanpa harus menulisnya ulang. Biasanya berkas ini langsung disertakan menjadi satu dalam sebuah library. Istilah library sendiri dikenal sebagai sekumpulan koleksi bermacam-macam berkas kode. Bila suatu berkas kode disimpan di dalam library maka berkas kode tersebut dapat digunakan serta dibagikan dengan rancangan yang lain. 56

58 3.2 Library Pada pemrograman dikenal pula istilah library atau pustaka yang biasa terdapat pada bahasa pemrograman yang lain seperti C atau header pada Pascal. Library berfungsi untuk memudahkan prorammer untuk menyelesaikan pekerjaannya karena dalam library tersebut terdapat fungsi-fungsi dan tipe data yang sudah didefinisikan sebelumnya untuk digunakan berulang-ulang. Di dalam library tersebut terdapat sub-tree yang disebut sebagai paket, diantaranya : LIBRARY IEEE : use IEEE.std_logic_1164.all; use IEEE.std_logic_textio.all; use IEEE.std_logic_arith.all; 57

59 use IEEE.numeric_bit.all; use IEEE.numeric_std.all; use IEEE.std_logic_signed.all; use IEEE.std_logic_unsigned.all; use IEEE.math_real.all; use IEEE.math_complex.all; LIBRARY STD : use STD.standard; use STD.textio; LIBRARY WORK : Paket yang didefinisikan oleh user sendiri, yang isinya terdiri dari tipe data, architecture dan behavioral. Isi paket tidak harus memenuhi syarat dan kesepakatan ieee. Paket tersebut dideklarasikan dengan cara : USE work.my_package.all; 3.3 Entity Entity memberikan arti tentang bagaimana sebuah bagian rancangan dideskripsikan di VHDL dalam hubungannya dengan model VHDL lain dan juga memberikan nama untuk model tersebut. Di dalam entity juga diperbolehkan untuk mendefinisikan beberapa parameter yang mengambil model menggunakan hierarki. Kerangka dasar untuk sebuah entity digambarkan sebagai berikut : 58

60 entity <name> is. entity <name>; Misalkan sebuah entity diberi nama test, maka kerangka entity tersebut akan menjadi : entity test is end entity test; atau entity test is end test; 3.4Ports Sebuah cara atau metode untuk menghubungkan entity secara bersama adalah menggunakan PORTS. Hal ini didefinisikan bahwa entity menggunakan metode sebagai berikut: port ( list of port declarations ); Deklrasi port ini mendefinisikan jenis dari koneksi dan arah yang sesuai. Misalnya, deklarasi port untuk sebuah input bit adalah 1, maka digambarkan sebagai berikut : in1 : in bit; port ( in1, in2 : in bit; out1 : out bit ); 59

61 Dengan menngunakan ports maka titik koneksi diantara entities akan berlangsung dengan efektif dalam hal proses koneksi entities satu sama lain. Selain itu, dengan menggunakan ports akan menjadikan sinyal yang ada menjadi efektif serta cocok digunakan dalam model VHDL. 3.5 Generics Jika sebuah contoh memiliki sebuah parameter, maka contoh tersebut dapat didefinisikan menggunakan generics. Deklarasi umum dari generics ditunjukan berikut: generic ( list of generic declarations ); Pada beberapa kasus dari generics, deklarasinya mirip dari sebuah constant dengan bentuk yang ditunjukkan sebagai berikut: param1 : integer := 4; Misalnya saja sebuah model yang memiliki 2 generics (gain(integer) dan time_delay(time)), keduanya dapat didefinisikan dalam sebuah entity sebagai berikut: generic ( gain : integer := 4; time_delay : time = 10 ns ); 3.6 Berkas Selanjutnya ada 4 cara pembuatan berkas yang nantinya dapat disimpan dalam library. Keempat cara tersebut adalah : 60

62 1. Function 2. Packages 3. Components 4. Procedures Secara umum, gambaran dari keempat berkas tersebut yaitu: Gambar 3.2 Contoh: Arsitektur Model VHDL Seperti terlihat pada gambar, keempat berkas tersebut biasanya menjadi satu dalam sebuah library. Selanjutnya, library tersebut akan digunakan dalam kode utama yang terdiri atas entity dan architecture. Inilah yang disebut rancangan bertingkat (hierarchial design) dalam VHDL. Fungsi utama dari berkas-berkas tersebut adalah untuk membuat efisien dan efektif dalam penulisan kode VHDL. Bayangkan bila tiap rangkaian dalam sebuah rancangan sistem harus dideklaraskan satu per satu. Hal itu tentu memerlukan resource yang banyak dan waktu yang lama. Belum lagi jika terdapat kesalahan. Maka proses pengecekan dan pemeriksaan kode juga butuh waktu yang tak sedikit. Oleh karena itu, dibuatlah berkasberkas sederhana untuk menghindari hal tersebut. Selain itu dengan mempelajari berkasberkas ini maka sebuah library dapat dibuat sesuai dengan kepentingan dan kebutuhan perancang sistem. 61

63 3.7 Packages (Paket) Bagian pertama berkas yang akan dibahas yaitu PACKAGES. Seperti terlihat pada gambar di atas, packages merupakan bagian berkas yang luas karena bisa terdiri atas berkasberkas lain seperti component, funtion, dan procedures. Semua berkas yang terdapat dalam packages, termasuk berkas packages sendiri nantinya akan dikumpulkan menjadi satu dan disimpan dalam sebuah library. Sedangkan struktur untuk aturan penulisan packages yaitu: package name is package header contents end package; package body name is package body contents end package body; Seperti yang terlihat pada aturan penulisan, sebuah packages terdiri dari 2 bagian yaitu header dan body. Header adalah tempat untuk mendeklarasikan keseluruhan namanama berkas (baik function, procedures, atau component) yang diperlukan. Sementara body adalah tempat untuk menjabarkan lebih lanjut mengenai berkas-berkas yang tertulis di header. Perlu diingat bahwa antara haeder dan body packages haruslah memiliki nama yang sama. Sebagai contoh, berikut ada packages yang berisi function untuk logika yang sederhana. Bagian header packages tersebut dapat ditulis: package new_functions is function and10 (a,b,c,d,e,f,g,h,i,j : bit) return bit; end Sedangkan untuk bagian body, yaitu tempat untuk menjabarkan lebih lanjut deklarasi pada header, dapat ditulis: 62

64 package body new_functions is function and10 (a,b,c,d,e,f,g,h,i,j : bit) return bit is begin return a and b and c and d and e and f and g and h and i and j; end; Bila antara bagian header dan body digabung menjadi satu, maka inilah yang disebut packages. Dan secara keseluruhan dapat ditulis berikut : package new_functions is function and10 (a,b,c,d,e,f,g,h,i,j : bit) return bit; end; package body new_functions is function and10 (a,b,c,d,e,f,g,h,i,j : bit) return bit is begin return a and b and c and d and e and f and g and h and i and j; end; end; Selanjutnya packages dapat dijadikan satu untuk kemudian disimpan dalam library. Untuk bisa membuatnya demikian, perlu ditambahkan beberapa kode dalam penulisan VHDL nya, yakni menambahkan kalimat USE (USE work.my_package.all;) di kode utama VHDL itu. Syntaxnya sebagai berikut: 63

65 LIBRARY ieee; USE ieee.std_logic_1164.all; USE work.my_package.all; ENTITY ARCHITECTURE 3.8 Loops (Perulangan) For Selain algoritma percabangan, di dalam VHDL juga dikenal algoritma lain yaitu pengulangan. Pengulangan digunakan untuk menjalankan satu atau beberapa pernyatan sebanyak beberapa kali. Dengan kata lain, pengulangan dapat digunakan untuk menjalankan beberapa pernyataan hanya dengan menuliskan pernyataan tersebut satu kali saja. Untuk VHDL, algoritma pengulangan yang sering dipakai adalah pernyataan for. Aturan dasar untuk pernyataan for sebagai berikut: for loopvar in start to finish loop loop statements end loop; Selanjutnya, algoritma pengulangan juga dapat digunakan untuk mencacah turun kemudian kembali lagi ke awal. Penulisannya sebagai berikut : for loopvar in start downto finish loop loop statements end loop; Bentuk pengulangan dapat dijadikan satu dengan susunan nilai bit demi bit. Misalnya sebagai berikut : 64

66 signal a : std_logic_vector(7 downto 0); for i in 0 to 7 loop a(i) <= 1 ; end loop; Exit Perintah exit mengijinkan bentuk pengulangan for untuk diselesaikan secara lengkap dan utuh. Perintah ini digunakan ketika sebuah kondisi dicapai dan pengulangan sudah tidak diperlukan lagi. Syntax untuk perintah exit ditunjukkan sebagai berikut : for i in 0 to 7 loop if ( i = 4 ) then exit; endif; endloop; Next Sedangkan perintah next mengijinkan pengulangan untuk diselesaikan bila ada kondisi yang telah terpenuhi. Hal ini sedikit berbeda dengan perintah exit yang digunakan untuk menyelesaikan pengulangan saat semua kondisi terpenuhi. Perintah next dapat menghentikan pengulangan walaupun secara umum, kondisi yang diharapkan belum terpenuhi. Kemudian, pengulangan akan dilanjutkan kepada pengulangan yang lain. Hal ini sangat bermanfaat ketika sebuah kondisi telah tercapai dan pengulangan sudah tidak lagi dibutuhkan. Contoh pengulangan untuk perintah next ditunjukkan berikut : 65

67 for i in 0 to 7 loop if ( i = 4 ) then next; endif; endloop; 3.9 Basic Variable Types and Operators Constants Dalam sebuah simulasi, ada sebuah nilai yang perlu diatur sedemikan rupa agar nilai tersebut tidak berubah atau tetap. Jenis nilai yang bersifat tetap demikan dinamakan sebagai constant. Constant ini sering digunakan untuk memberikan nilai awal dalam sebuah parameter. Selain itu, constant juga digunakan sebagai perbandingan untuk nilai-nilai yang terdapat pada sejumlah register. Sebuah constant dapat dideklarasikan untuk beberapa tipe dalam VHDL. Berikut beberapa contoh penggunaan constant : constant a : integer := 1; constant b : real := 0.123; constant c : std_logic := 0 ; Signals Dalam sebuah process, sebuah signal berperan dalam menghubungkan cara kerja serta apa yang akan dikerjakan oleh process tersebut. Selain itu, signal merupakan jalur yang efektif dalam suatu rangkaian, dimana signal tersebut akan menghubungkan bagian satu sama lain dalam rangkaian itu. Ketika proses simulasi dilakukan, simulator akan memeriksa apakah sinyal-sinyal yang tersedia sudah memiliki nilai atau belum. Bila belum, maka akan dinialisasikan sejumlah nilai untuk sinyal-sinyal tersebut. Jika sebaliknya, nilai sinyal akan senantiasa diperiksa dan diperbarui (update) sesuai dengan kondisi proses simulasi saat itu. Hal ini diperlukan agar simulator dapat mengetahui, apakah terdapat perubahan atau tidak di dalam 66

68 process yang tengah berlangsung Atau dengan kata lain, simulator akan memeriksa process manakah yang aktif atau tidak. Suatu singal dapat diberikan nilai yang tepat atau dapat ditambah dengan waktu tunda (delay). Dengan adanya delay, maka process yang hendak berjalan dapat dijadwalkan di masa yang akan datang. Inilah salah satu perbedaan signal dengan urutan kumpulan kode program (seperti dalam C). Contoh pernyataan dan penggunaan signal ditunjukan berikut : signal sig1 : integer := 0; signal sig2 : integer := 1; sig1 <= 14; sig1 <= sig2; sig1 <= sig2 after 10 ns; Variables Dalam VHDL, dikenal istilah variable yakni sebuah nilai yang tidak tetap. Variable ini hanya digunakan dalam jenis proses sekuensial/beurutan. Variable ini berbeda dengan sinyal-sinyal pada umumnya yang terjadi secara serentak. Variable digunakan dalam sebuah proses dan cara pendeklarasiannya sebagai berikut: variable var1 : integer := 0; variable var2 : integer := 1; var1 := var2; Sekedar catatan, bahwa tidak ada konsep delay dalam penggunaan variable (jika memerlukan proses yang perlu penjadwalan, lebih baik digunakan signal saja) Boolean Operators VHDL juga memiliki sejumlah operator Boolean. Daftar operator boolean yang ada di dalam VHDL adalah AND, OR, NAND, NOT, NOR, dan XOR. Operator tersebut dapat diaplikasikan ke dalam BIT, BOOLEAN, atau jenis logika seperti contoh berikut ini : 67

69 out1 <= in1 and in2; out2 <= in3 or in4; out5 <= not in5; Arithmetic operators Selain operator boolean, terdapat pula operator aritmetika yang terdapat dalam VHDL. Operator tersebut dijelaskan seperti tabel berikut ini : Gambar 4.2 Perintah Operator Comparison operators VHDL juga memiliki sejumlah aturan baku untuk membandingkan nilai satu dengan nilai yang lain. Daftar operator pembanding tersebut adalah =, /=, <, < =, >, = >. Jenis operator terebut dapat digunakan seperti berikut ini : in1 < 1 in1 /= in2 in2 >=

70 3.9.7 Shifting Functions VHDL juga memiliki 6 fungsi logical shift yang terangkum sebagai berikut : Gambar 4.3 Perintah Shifting Concatenation Fungsi rentetan (concatenation) dalam VHDL disimbolkan dengan & dan penggunaanya seperti berikut ini : A <= 1111 ; B <= 000 ; out1 <= A & B & 1 ; out1 = ; 3.10 Type data dalam VHDL Untuk menuliskan kode VHDL secara efisien, sangatlah penting untuk mengetahui tipe-tipe data yang diperbolehkan, bagaimana, serta kapan penggunaannya. Artikel berikut dan beberapa artikel mendatang akan membahas tipe-tipe data apa saja yang terdapat dalam kode VHDL. 69

71 Tipe Data Standar Kode VHDL mengandung sederetan tipe-tipe data yang telah ditentukan melalui aturan standar IEEE 1076 dan IEEE Untuk lebih jelas, beberapa tipe data telah tercantum ke dalam masing-masing jenis library/packages yaitu : Package standard of library std. Tipe data yang masuk jenis ini adalah tipe bit, boolean, integer, dan real. Package std_logic_1164 of library ieee. Tipe data yang masuk jenis ini adalah std_logic dan std_ulogic. Package std_logic_arith of library ieee. Tipe data yang masuk ke dalam library ini adalah signed, unsigned serta beberapa konversi fungsi, seperti conv_integer(p), conv_unsigned(p, b), conv_signed(p, b), and conv_std_logic_vector(p, b). Perhatikan, berikut beberapa aturan tipe data std dalam VHDL: Tipe data Boolean : True, False Tipe data Integer : berisi 32 bit integer (mulai dari s/d ) Tipe data natural : adalah bilangan non negatif dari integer (mulai dari 0 s.d +2,147,483,647) Tipe Data Pengguna Selain tipe data yang telah ditentukan secara baku oleh aturan IEEE, ternyata VHDL juga memperbolehkan pengguna (user) untuk menentukan tipe data yang diinginkan. Ada 2 kategori untuk tipe data yang bisa ditentukan sendiri oleh user yaitu: 1. Tipe Integer Tipe integer yang memiliki jangkauan s/d (mirip dengan tipe data standar) Tipe natural yang memiliki jangkauan 0 s/d (mirip dengan tipe data standar) 70

72 Tipe my_integer yang memiliki jangkauan -32 s/d 32 (tipe data yang ditentukan sendiri oleh user) Tipe nilai_murid yang memiliki jankauan 0 s/d 100 (tipe data yang ditentukan sendiri oleh user) 2. Tipe enumerated Tipe bit yaitu 0 dan 1 Tipe my_logic yaitu 0, 1, dan Z (ditentukan sendiri oleh user) Tipe keadaan yaitu idle, stop, backward, forward (ditentukan sendiri oleh user) Tipe warna misalnya merah, hijau, putih (ditentukan sendiri oleh user) 3.11 Process dalam VHDL Process adalah sebuah mekanisme atau cara untuk mengesekusi susunan pernyataan (statement) dengan urutan yang terstruktur. Pernyataan (statement) tersebut biasanya lebih dari satu dan eksekusinya terjadi secara bersamaan. Setiap process memiliki cara pendeklarasian tertentu dan biasanya berbeda satu sama lain, tergantung pernyataan yang hendak dikesekusi. Selain itu, lokasi process biasanya terletak di dalam bagian architecture. Aturan dasar untuk penulisan process adalah sebagai berikut: process sensitivity_list is declaration part begin statement part end process; Dalam process, suatu kumpulan (list) pernyataan akan dijalankan/aktif ketika terjadi perubahan nilai sinyal. Misalnya, sebuah process memiliki sinyal clock dan reset. Process tersebut akan dijalankan ketika terjadi perubahan sinyal yang melibatkan sinyalsinyal clk dan rst. 71

73 process (clk, rst) is begin process statements end process; Pada contoh berikut ini, process hanya bisa berjalan/aktif terjadi perubahan nilai clk atau rst. Selain itu, process juga masih bisa aktif, yaitu dengan cara menggunakan wait statement. Bila menggunakan wait statement, process akan otomatis dijalankan sekali kemudian menunggu terjadinya perubahan nilai sinyal lain yang melibatkan sinyal clk atau sinyal rst. Bila itu terjadi, process akan berjalan/aktif lagi. process begin process statements wait on clk, rst; end process; Pada umumnya, lokasi dari sebuah wait statement tidaklah begitu penting. Hal ini karena dalam simulasi VHDL, setiap process berjalan setiap siklus sehingga wait statement dapat diletakan di awal atau di akhir. Hal tersebut tidak berpengaruh pada jalannya process karena sifatnya sama saja. Untuk bagian pendeklarasian dalam process, variabel dan sinyal-sinyal yang digunakan dapat didefinisikan saat itu juga atau bisa sebelumnya, seperti contoh berikut ini : process (a) is signal na : bit; begin na <= not a; end process; 72

74 Listing di atas menggambarkan process a. Di dalam process a, terdapat sinyal na yang bertipe bit. Sinyal na akan dijalankan ketika terjadi perubahan nilai pada sinyal a. Sinyal a sendiri telah dideklarasikan di luar process tersebut, bisa dideklarasikan di bagian architecture atau bagian lainnya Architecture dalam VHDL Jika sebuah entity digambarkan sebagai sebuah interface serta parameter sebagai bagian dari sebuah model, maka architecture akan menggambarkannya sebagai watak(behaviour) dari model tersebut. Maksudnya, entity secara umum menggambarkan keseluruhan kerangka model. Sedangkan architecture akan menggambarkan watak dari model tersebut. Misalnya, entity multiplexor is port (I1, I2, E,S : in std_logic; o : out std_logic); end Multiplexor; // Listing di atas menggambarkan sebuah entity bernama multiplexor yang memiliki 4 input dan 1 output. architecture RTL of multiplexor is begin process begin o <= (I1 and S and E) or (I2 and not(s) and E); end process; end RTL; // Listing di atas menggambarkan watak architecture. Dari listing di atas, digambarkan bahwa sifat atau watak output entity multiplexor ditentukan oleh output dari I1, S, dan E. 73

75 Hingga saat ini dikenal beberapa tipe dari architecture VHDL. Selain itu, VHDL juga memperbolehkan adanya architecture yang berbeda dalam sebuah entity yang sama. Artinya sebuah entity boleh memiliki architecture lebih dari satu walaupun sifat atau wataknya tersebut berbeda satu sama lain. Akibatnya, hal tersebut menjadikan sebuah bentuk yang ideal untuk mengembangkan watak, Register Transfer Level (RTL), serta architecture pada level gerbang. Selanjutnya, semuanya itu dapat dijadikan satu ke dalam sebuah rancangan dan dapat diuji coba menggunakan test bench yang sama. Seperti digambarkan pada listing pertama, pendekatan dasar untuk menggambarkan sebuah architecture sebagai berikut : architecture behaviour of test is..architecture declarations begin architecture contents end architecture behaviour; atau architecture behaviour of test is..architecture declarations begin architecture contents end behaviour; 3.13 Bagian Pendeklarasian Architecture Setelah digambarkan bagaimana pendeklarasian dari sebuah nama architecture, selanjutnya beberapa sinyal atau variabel harus dideklarasikan. Pendeklarasian ini dilakukan sebelum memulai membuat statement. Seperti contoh, jika terdapat 2 sinyal pada sebuah architecture (misal, sig1 dan sig2), maka keduanya dapat dideklarasikan dalam sebuah model sebagai berikut: 74

76 architecture behaviour of test is signal sig1, sig2 : bit; begin // watak dari architecture bernama test yang memiliki sinyal 1 dan sinyal 2 (keduanya bertipe bit); Nantinya kedua sinyal tersebut akan digunakan dalam sebuah bagian statement di bagian isi dari model yang hendak digunakan Bagian Pernyataan Architecture Architecture dalam VHDL dapat memiliki variasi dari sebuah struktur untuk mencapai fungsi yang berbeda satu sama lain. Selanjutnya, output yang ingin diinginkan dapat dibuat dengan menggabungkan sinyal-sinyal atau variabel yang ada. Misalnya : out1 <= in1 and in2 after 10 ns; out1 <= in1 or in2 after 10 ns; //Dua buah output dapat dibuat dengan input yang sama. Output 1 ditentukan dengan meng AND kan input 1 dengan input 2. Sedangkan output 2 ditentukan dengan meng OR kan input 1 dan input 2. Sedikit catatan untuk rancangan sederhana, penggunaan after 10 ns bukanlah suatu patokan yang umum. Dalam kenyataannya, hanya ada satu cara untuk memastikan rancangan yang dibuat adalah benar yaitu dengan membuat rancangan tersebut sinkron atau mengacuhkan waktu tunda (delay). Seperti yang diketahui, rancangan dari gabungan VHDL akan menghasilkan tambahan waktu tunda (delay). Selain faktor gabunganvhdl, banyaknya gerbang yang digunakan juga akan mempengaruhi waktu tunda rancangan(delay) tersebut. Akibatnya banyak delay yang terjadi maka akan menyebabkan terjadinya glitch atau hazard. Secara keseluruhan, contoh dari sebuah architecture dituliskan di bawah ini : 75

77 architecture behavioural of test is signal int1, int2 : bit; begin int1 <= in1 and in2; int2 <= in3 or in4; out1 <= int1 xor int2; end architecture behavioural; 76

78 PRAKTEK : Percobaan 1 : Gerbang AND Langkah-Langkah: 1. Buka Xilink ISE 9.2i 2. Klik File -> New Project 3. Ketik nama project dengan nama GerbangAND lalu klik next 4. Atur Device Properties seperti gambar dibawah ini : 5. Klik new source -> ketik nama file namenya GerbangAND pilih VHDL Module -> klik next -> masukan input dan outputnya seperti dibawah ini: 77

79 6. Klik next terus hingga Finish -> pilih yes 7. Klik next -> pilih next lagi -> lalu Finish 8. Ketik source code nya -> 9. lalu save 10. Pada bagian tab Processes pada Synthesize-XST klik tanda + klik kanan Check Syntax pilih Run 11. Pada bagian tab Processes pada Synthesize-XST klik kanan pilih Run 12. Klik tanda + pada User Constraints pilih Assign Package Pins dengan klik kanan pilih Run -> pilih yes 13. Isikan LOC pin seperti gambar berikut: 14. Klik kanan pada Implement Design lalu pilih Run 15. Klik tanda + pada Generate Programming File -> pilih Configure Device (impact) klik kanan lalu Run 16. Pada tab impact klik Finish 17. Pilih (- - - nama module- - -).bit klik Open -> Bila ada tanda warning klik Ok 18. klik Bypass -> lalu klik Bypass lagi 19. pada tab Xilink Web Talk Dialog klik Decline -> pilih Ok 78

80 20. Klik kanan pada gambar IC Xilink sebelah kiri lalu pilih program seperti gambar dibawah ini: 21. Lalu pilih OK sampai muncul tulisan Program Succeeded TABEL KEBENARAN GERBANG AND : KESIMPULAN: 79

81 Ikuti Langkah-langkah seperti pada Gerbang And untuk mengerjakan Gerbang OR, Not, Nand, Nor, Xor, Xnor, Half Adder, Full Adder, Half Substractor, dan Full Substractor. Percobaan 2 : Gerbang OR KESIMPULAN: 80

82 Percobaan 3 : Gerbang NOT KESIMPULAN: 81

83 Percobaan 4 : Gerbang NAND KESIMPULAN: 82

84 Percobaan 5 : Gerbang NOR KESIMPULAN: 83

85 Percobaan 6 : Gerbang XOR KESIMPULAN: 84

86 Percobaan 7 : Gerbang XNOR KESIMPULAN: 85

87 Percobaan 8 : Half Adder KESIMPULAN: 86

88 Percobaan 9 : Half Substractor KESIMPULAN: 87

89 Percobaan 10 : Full Adder 88

90 KESIMPULAN: Percobaan 11 : Full Substractor 89

91 KESIMPULAN: 90

92 Program Mandiri I : Source Code : Hasil Output : 91

93 Program Mandiri II : Source Code : Hasil Output : 92

94 Program Mandiri III : Source Code : Hasil Output : 93

95 PERTEMUAN 4 INTEGRATED CIRCUIT I. Tujuan Praktikum : Praktikan Dapat Mengenal dan Memahami Desain IC Praktikan Dapat Merancang IC sederhana pada Pemrograman FPGA Praktikan Dapat Memahami Penggunaan Counter, Adder II. III. Dasar Teori Pengenalan IC, Counter, Adder pada Xilink ISE Peralatan FPGA XILINX SPARTAN 3E Adaptor 5 Volt 1 buah PC 94

96 4 BAB 4 INTEGRATED CIRCUIT 4.1 Integrated Circuit Sirkuit terpadu (bahasainggris: integrated circuit atau IC) adalah komponen dasar yang terdiri dari resistor, transistor dan lain-lain. IC adalah komponen yang dipakai sebagai otak peralatan elektronika. IC digunakan untuk beberapa keperluan pembuatan peralatan elektronik agar mudah dirangkai menjadi peralatan yang berukuran relative kecil. Sebelum adanya IC, hamper seluruh peralatan elektronik dibuat dari satuan-satuan komponen (individual) yang dihubungkan satu sama lainnya menggunakan kawat atau kabel, sehingga tampak mempunyai ukuran besar serta tidak praktis. IC yang paling banyak digunakan secara luas saat ini adalah IC digital yang dipergunakan untuk peralatan komputer, kalkulator dan system kontrol elektronik. IC digita lbekerja dengan dasar pengoperasian bilangan Biner Logic (bilangandasar 2) yaitu hanya mengenal dua kondisi saja 1(on) dan 0 (off). Jenis IC digital terdapat 2(dua) jenis yaitu TTL dan CMOS. Jenis IC-TTL dibangun dengan menggunakan transistor sebagai komponen utamanya dan fungsinya dipergunakan untuk berbagai variasi Logic, sehingga dinamakan Transistor. Transistor dalam IC digital dibuat pada keeping silicon dengan cara yang sama dengan IC analog. Kondisi dua keadaan (ON/FF) adalah jantung dari logika digital dan komputer digital. Dengan mengendalikan kondisi ON/OFF transistor pada IC digital, dapat dibuat berbagai fungsi logika. Ada tiga fungsi logika dasar yaitu AND, OR dan NOT. CMOS (Complementary Metal Oxide Semiconductor) sebenarnya antara IC TTL dan IC CMOS memiliki pengertian sama, hanya terdapat beberapa perbedaan yaitu dalam penggunaan IC CMOS konsumsi daya yang diperlukan sangat rendah dan memungkinkan pemilihan tegangan sumbernya yang jauh lebih lebar yaitu antara 3 V sampai 15 V. level pengsaklaran CMOS merupakan fungsi dari tegangan sumber. Makin tinggi sumber tegangan akan semakin lebar tegangan yang memisahkan antara keadaan 1 dan 0. 95

97 Gambar 4.1 IC AND 4.2 Counter SecaraUmum Counter merupakan rangkaian logika pengurut, karena counter membutuhkan karakteristi kmemori, dan pewaktu memegang peranan yang penting. Counter digital mempunyai karakteristik penting yaitu sebagai berikut : 1. Jumlahhitunganmaksimum (modulus N-counter) 2. Menghitungke-atasatauke-bawah (up atau down - counter) 3. Operasiasinkronatausinkron 4. Bergerakbebasatauberhentisendiri Sebagaimanadenganrangkaiansekuensial yang lain, untuk menyusun counter digunakan flip-flop. Counter dapat digunakan untuk menghitung banyaknya clock-pulsa dalam waktu yang tersedia (pengukuran frekuensi), Counter dapat juga digunakan untuk membagi frekuensi dan menyimpan data. Ada dua macam counter, yaitu Asinkronous Counter dan Sinkronous Counter. Asinkronous Counter disebut juga Ripple Through Counter atau Counter Serial (Serial Counter), karena output masing-masing flip-flop yang digunakan akan berubah kondisi dari 0 ke 1 dan sebaliknya secara berurutan, hal ini disebabkan karena flip-flop yang paling ujung dikendalikan oleh sinyal clock, sedangkan sinyalclock untuk flip-flop lainnya berasal dari masing-masing flip-flop sebelumnya. Sedangkan pada counter sinkron, output flip-flop yang digunakan bergantian secara serempak. Hal ini disebabkan karena masing-masing flipflop tersebut dikendalikan secara serempak oleh sinyal clock. Oleh karena itu Counter Sinkron dapat pula disebut sebagai Counter paralel (Parallel Counter). 96

98 PRAKTEK : Percobaan 1 : 2 Bit ADDER Langkah-Langkah: 1. Buka Xilink ISE 9.2i 2. Klik File -> New Project 3. Ketik nama project dengannamaadder_2bitlalukliknext 4. Atur Device Properties sepertigambardibawahini : 5. Klik new source ->ketik nama file namenya Adder_2bit pilih Schematic ->klik next - >klik Finish ->pilih yes 6. Klik next ->pilih next lagi ->lalu Finish 7. Gambarkan rangkaian shcematic 2bit adder ->lalu save 8. Padabagian tab Processes pada Synthesize-XST klikkanan pilih Run 9. Klik tanda + pada User Constraints pilih Assign Package Pins dengan klik kanan pilih Run ->pilih yes 10. Isikan LOC pin seperti gambar berikut: 97

99 11. Klik kanan pada Implement Design lalu pilih Run 12. Klik tanda + pada Generate Programming File ->pilih Configure Device (impact) klik kanan lalu Run 13. Pada tab impact klik Finish 14. Pilih Adder_2bit.bit klik Open ->Bila ada tanda warning klik Ok 15. Klik Bypass ->lalu klik Bypass lagi 16. pada tab Xilink Web Talk Dialog klikdecline ->pilihok 17. Klik kanan pada gambar IC Xilink sebelah kiri lalu pilih program seperti gambar dibawah ini: 18. Lalu pilih OK sampai muncul tulisan Program Succeeded 98

100 Gambar Shcematic 2bit Adder Kesimpulan : 99

101 1. PercobaanMandiri Buatlah Shematic 2Bit Subtractor Shcematic : KESIMPULAN: 100

102 Percobaan 4-Bit Counter Langkah-Langkah: 1. Buka Xilink ISE 9.2i 2. Klik File -> New Project 3. Ketik nama project dengan nama Counter_up lalu klik next 4. Atur Device Properties seperti gambar dibawah ini : 5. Klik new source ->ketik nama file namenya Ctr_up pilih VHDL Module ->klik next - >klik Finish ->pilih yes 6. Klik next ->pilih next lagi ->lalu Finish 7. Ketikkan source code program counter up ->lalu save 8. Pada bagian tab Processes pada Synthesize-XST klik kanan pilih Run 9. Klik tanda + pada User Constraints pilih Assign Package Pins dengan klik kanan pilih Run ->pilih yes 101

103 10. Isikan LOC pin seperti gambar berikut: 11. Klik kanan pada Implement Design lalu pilih Run 12. Klik tanda + pada Generate Programming File ->pilih Configure Device (impact) klik kanan lalu Run 13. Pada tab impact klik Finish 14. Pilih Ctr_up.bitklikOpen ->Bila ada tanda warning klik Ok 15. Klik Bypass ->lalu klik Bypasslagi 16. pada tab Xilink Web Talk Dialog klikdecline ->pilihok 17. Klik kanan pada gambar IC Xilink sebelah kiri lalu pilih program seperti gambar dibawah ini: Lalu pilih OK sampai muncul tulisan Program Succeeded SOURCE CODE VHDL library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter is 102

104 port (clk : in std_logic; reset : in std_logic; pause : in std_logic; count_out : out std_logic_vector(3 downto 0)); end counter; architecture Behavioral of counter is signal temp_count : std_logic_vector(3 downto 0) := x"0"; signal slow_clk : std_logic; -- Clock divider can be changed to suit application. -- Clock (clk) is normally 50 MHz, so each clock cycle -- is 20 ns. A clock divider of 'n' bits will make 1 -- slow_clk cycle equal 2^n clk cycles. Signal clk_divider : std_logic_vector(23 downto 0) := x"000000"; begin -- Process that makes slow clock go high only when MSB of -- clk_divider goes high. clk_division : process (clk, clk_divider) begin if (clk = '1' and clk'event) then clk_divider<= clk_divider + 1; end if; slow_clk<= clk_divider(23); end process; counting : process(reset, pause, slow_clk, temp_count) begin if reset = '1' then temp_count<= "0000"; -- Asynchronous reset. elsif pause = '1' then 103

105 temp_count<= temp_count; -- Asynchronous count pause. else if slow_clk'event and slow_clk ='1' then -- Counting state if temp_count< 9 then temp_count<= temp_count + 1; -- Counter increase else temp_count<= "0000"; -- Rollover to zero end if; end if; end if; count_out<= temp_count; -- Output end process; end Behavioral; -- End module. Kesimpulan : 1. PercobaanMandiri 104

106 Dari Source Code Binary Up Counter diatas,buatlahup Counter 8-Bit Kode : KESIMPULAN: 105

107 2. PercobaanMandiri Dari Source Code 4-Bit Binary Up Counter diatas,buatlah 4-Bit Down Counter Code : KESIMPULAN: 106

108 3. PercobaanMandiri Dari Source Code 4-Bit Binary Up Counter diatas,buatlah 8-Bit Down Counter Code : KESIMPULAN: 107

109 PERTEMUAN 5 PS/2 I. Tujuan Praktikum : Praktikan Dapat Mengenal dan Memahami Pemrograman VHDL pada FPGA Praktikan Dapat Merancang Program VHDL dengan menggunakan kode biner Praktikan Dapat Merancang Program VHDL pada Pemrograman FPGA menggunakan port PS/2 Praktikan Dapat Memahami Penggunaan port PS/2 dalam FPGA II. III. Dasar Teori Pengenalan Port P/S2 Merancang Desain Program menggunakan VHDL Aplikasi Perancangan Program VHDL untuk port PS/2 Peralatan FPGA XILINX SPARTAN 3E Adaptor 5 Volt 1 buah PC 108

110 5 BAB 5 BINARY CODE 5.1 PS/2 Keyboard Keyboard PS/2 adalah suatu serial protokol yang dapat bidirectional. Keyboard PS/2 untuk komunikasinya hanya menggunakan 2 buah kabel yaitu kabel data untuk aliran data dari/ke komputer dan kabel untuk clock. Ada tiga keadaan pada keyboard yang perlu diperhatikan: 1. Pada saat data = high, clock = high maka keadaan ini disebut idle state. 2. Pada saat data = high, clock = low maka keadaan ini yang tidak boleh tejadi. 3. Pada saat data = low, clock = high maka berarti tanda bahwa host akan mengirim perintah ke keyboard. Data dikirimkan dari keyboard ke host pada saat ada perubahan clock dari logika high menjadi logika low (falling edge transition), demikian pula untuk data yang dikirimkan dari host ke device pada saat falling edge transtion clock. Frekuensi dari clock berada dalam jangkauan KHz (Chapweske, 1999). Keluaran dari kedua output tersebut memenuhi standar sinyal TTL, sehingga dapat langsung dihubungkan dengan mikrokontroler. Gambar 5.1 PS/2 Port Male 109

111 Dibawah ini merupakan keterangan Pin yang ada pada port ps/2 dan PIN FPGA: Tabel 5.1 Pin PS/2 Biasanya pada komputer port PS/2 keyboard dan mouse memiliki warna yang berbeda. Tujuannya adalah agar tidak tertukar saat pemasangannya. Warna hijau untuk mouse Warna ungu untuk keyboard Gambar 5.2 Fisik Port PS/2 110

112 Gambar 5.3 Port PS/2 pada Spartan 3-E Pada gambar 5.3 menunjukkan port ps/2 yang ada pada FPGA. 5.2 Scan Code Istilah host yang berarti komputer, jika keyboard atau mouse dihubungkan dengan PC, atau host dapat berupa mikrontroler bila keyboard atau mouse dihubungkan dengan mikrokontroler.pada keyboard komputer, setiap kali salah satu tombol ditekan atau dilepas, keyboard akan mengirim kode ke host. Kode yang dikirimkan ke host tersebut dinamakan sebagai scan code. Sebagai contoh, bila scan code tombol i adalah 43H ( ). Ketika tombol i ditekan keyboard akan mengirimkan 43H, jika tombol i ditekan terus maka keyboard akan terus mengirimkan 43H terus menerus sampai tombol i tadi dilepaskan atau ada tombol lain yang ditekan. Keyboard juga mengirimkan kode saat ada tombol yang dilepaskan, kodenya adalah F0H ( ) kemudian diikuti dengan scancode tombol yang ditekan, jadi kalau tombol i tadi dilepas keyboard akan mengirimkan kode F0H dan 43H. Kode-kode tersebut dikirim keyboard secara serial, artinya dikirimkan satu bit demi satu bit dimulai dari bit LSB dahulu, seperti pada gambar 2. Misalnya 43 dikirimkan dengan cara: mula-mula dikirim 1, sesaat kemudian 1 lagi dan menyusul 0 setelah itu 0 sampai akhirnya 8 bit yang berbentuk

113 Gambar 5.4 Scan Code Pada Keyboard Sistem Bilangan Biner Sistem bilangan biner atau sistem bilangan basis dua adalah sebuah sistem penulisan angka dengan menggunakan dua simbol yaitu 0 dan 1. Sistem bilangan ini merupakan dasar dari semua sistem bilangan berbasis digital. Dari bilangan biner, kita dapat mengkonversinya ke dalam bilangan Oktal atau Hexadesimal. Sistem ini juga dapat kita sebut dengan istilah bit (Binary Digit). Pengelompokan biner dalam komputer selalu berjumlah 8, dengan istilah 1 Byte/bita. Dalam istilah komputer, 1 Byte = 8 bit. Kode-kode rancang bangun komputer, seperti ASCII, (American Standard Code for Information Interchange) menggunakan sistem pengkodean 1 Byte. 112

114 Tabel 5.2 Bilangan Biner 4-bit No. Biner Hexa A B C D E Dari Gambar Scan Code diatas kita dapat melihat contoh penggunaan scan codes keyboard seperti dibawah ini: Contoh: a => 1C, maka a => dimana 1C => 1 => 0001 dan C => 1100 Jadi untuk a, dituliskan dengan scan codes => 26, maka 3 => dimana 26 => 2 => 0010 dan 6 => 0110 Jadi untuk 3, dituliskan dengan scan codes

115 PRAKTEK : Percobaan 1 : port ps2 Langkah-Langkah: 1. Buka Xilink ISE 9.2i 2. Klik File -> New Project 3. Ketik nama project dengan nama ps2 lalu klik next 4. Atur Device Properties seperti gambar dibawah ini : 114

116 5. Klik new source -> ketik nama file namenya ps2 pilih VHDL Module -> klik next -> input dan outputnya dikosongkan saja seperti dibawah ini: 6. Klik next terus hingga Finish -> pilih yes 7. Klik next -> pilih next lagi -> lalu Finish 8. Lengkapi source codenya -> Source code 115

117 9. lalu save 10. Pada bagian tab Processes pada Synthesize-XST klik tanda + klik kanan Check Syntax pilih Run 11. Pada bagian tab Processes pada Synthesize-XST klik kanan pilih Run 12. Klik tanda + pada User Constraints pilih Assign Package Pins dengan klik kanan pilih Run -> pilih yes 13. Isikan LOC pin seperti gambar berikut 14. Klik kanan pada Implement Design lalu pilih Run 15. Klik tanda + pada Generate Programming File -> pilih Configure Device (impact) klik kanan lalu Run 16. Pada tab impact klik Finish 17. Pilih (- - - nama module- - -).bit klik Open -> Bila ada tanda warning klik Ok 18. klik Bypass -> lalu klik Bypass lagi 19. pada tab Xilink Web Talk Dialog klik Decline -> pilih Ok 20. Klik kanan pada gambar IC Xilink sebelah kiri lalu pilih program seperti gambar dibawah ini: 21. Lalu pilih OK sampai muncul tulisan Program Succeeded 116

118 OUTPUT: KESIMPULAN: 117

119 Program Mandiri I : Edit program diatas Untuk menampilkan output : 2. Pada saat tombol Z pada keyboard ditekan, 8 LED pada FPGA nyala semua 3. Pada saat tombol X pada keyboard ditekan, 8 LED pada FPGA mati semua 4. Pada saat tombol C pada keyboard ditekan, 4 LED pada FPGA nyala dan 4 LED sisanya mati. Source Code : Kesimpulan : 118

120 Percobaan 2 : tampilan bit pada 7 segment Langkah-Langkah: 1. Buka Xilink ISE 9.2i 2. Klik File -> New Project 3. Ketik nama project dengan nama switch_1 lalu klik next 4. Atur Device Properties seperti gambar dibawah ini : Klik new source -> ketik nama file namenya switch_1 pilih VHDL Module -> klik next -> input dan outputnya dikosongkan saja seperti dibawah ini: 119

121 7. Klik next terus hingga Finish -> pilih yes 8. Klik next -> pilih next lagi -> lalu Finish 9. Lengkapi source codenya -> Source Code: 10. lalu save 11. Pada bagian tab Processes pada Synthesize-XST klik tanda + klik kanan Check Syntax pilih Run 12. Pada bagian tab Processes pada Synthesize-XST klik kanan pilih Run 13. Klik tanda + pada User Constraints pilih Assign Package Pins dengan klik kanan pilih Run -> pilih yes 120

122 14. Isikan LOC pin seperti gambar berikut 15. Klik kanan pada Implement Design lalu pilih Run 16. Klik tanda + pada Generate Programming File -> pilih Configure Device (impact) klik kanan lalu Run 17. Pada tab impact klik Finish 18. Pilih (- - - nama module- - -).bit klik Open -> Bila ada tanda warning klik Ok 19. klik Bypass -> lalu klik Bypass lagi 20. pada tab Xilink Web Talk Dialog klik Decline -> pilih Ok 21. Klik kanan pada gambar IC Xilink sebelah kiri lalu pilih program seperti gambar dibawah ini: 22. Lalu pilih OK sampai muncul tulisan Program Succeeded 121

123 OUTPUT: KESIMPULAN: 122

124 Program Mandiri II : Edit program diatas Untuk menampilkan output : 1. Dengan menggunakan 6 LED, Pada saat switch 1 di tekan, 2 LED pertama menyala, sisanya mati. 2. Bila switch 2 ditekan, 2 LED terakhir menyala dan sisanya mati. 3. Bila switch 1 dan switch 2 ditekan, 2 LED pertama dan 2 LED terakhir menyala, 2 LED di tengah mati. 4. Bila selain dari switch diatas ditekan lampu LED semua akan mati. 5. Bila tidak ada satupun switch yang ditekan, semua LED mati. Output : KESIMPULAN: 123

125 PERTEMUAN 6 LCD I. Tujuan Praktikum : Praktikan Dapat Mengenal dan Memahami Pemrograman VHDL pada FPGA Praktikan Dapat Memahami Penggunaan Port LCD Karakter dalam FPGA Praktikan Dapat Merancang Program VHDL pada FPGA menggunakan Port LCD Karakter II. Dasar Teori Pengenalan Port LCD Karakter Merancang Desain Program menggunakan VHDL Aplikasi Perancangan Program VHDL pada LCD Karakter III. Peralatan FPGA XILINX SPARTAN 3E Adaptor 5 Volt 1 buah PC 124

126 6 BAB 6 LCD 6.1. LCD Karakter LCD ( Liquid Crystal Display ) merupakan salah satu media yang digunakan sebagai penampil pada sistem berbasis mikrokontroler. Banyak macam LCD yang tersedia dipasaran, baik yang dapat menampilkan gambar maupun teks.untuk LCD yang dapat menampilkan gambar disebut LCD Grafik sedangkan LCD yang dapat menampilkan teks disebut LCD Karakter. GAMBAR 6.1 CONTOH LCD 6.2. Antarmuka dan Pin LCD Karakter pada FPGA LCD Karakter yang digunakan pada kasus ini adalah 2x16, dimana untuk menampilkan karakter sebanyak 2 baris 16 kolom dengan menggunakan lebar data sebanyak 4 bit atau 8 bit. Berikut ini dijelaskan mengenai fungsi pin pin pada LCD Karakter 2x16 dan antarmuka dengan FPGA Board : TABEL 6.1 TABEL PIN LCD 2X16 Pin Nama Fungsi 1 Vss Ground voltage 2 Vcc +5V 3 VEE Contrast voltage 125

127 4 RS Register Select 0 = Instruction Register 1 = Data Register 5 R/W Read / Write 0 = Read 1 = Write 6 E Enable 0 = Start to lacth data to LCD character 1 = Disable 7 DB0 LSB 8 DB1-9 DB2-10 DB3-11 DB4-12 DB5-13 DB6-14 DB7 MSB 15 BPL Back Plane Light 16 GND Ground voltage Tampilan karakter pada LCD diatur oleh pin pin berikut ini : EN (Enable) Jalur ini digunakan untuk memberitahu LCD bahwa akan dilakukan pengirimansxs data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low 0 dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika 1 dan tunggu untuk sejumlah waktu tertentu ( sesuai dengan datasheet dari LCD tersebut ) dan berikutnya set EN ke logika low 0 lagi. RS (Register Select) Ketika RS berlogika low 0, data akan dianggap sebagai sebuah perintah atau instruksi khusus ( seperti clear screen, posisi kursor dll ). Ketika RS berlogika high 1, data yang dikirim adalah data text yang akan ditampilkan pada layar LCD. 126

128 Sebagai contoh, untuk menampilkan huruf T pada layar LCD maka RS harus diset logika high 1. R/W (Read/Write) Ketika R/W berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high 1, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logika low 0. GAMBAR 6.2 ANTARMUKA ( INTERFACE ) LCD KARAKTER 2X16 DENGAN FPGA BOARD 6.3. Pemetaan Memori Display Data RAM ( DD RAM ) akan menyimpan kode dari karakter yang akan ditampilkan pada layar dan data tersebut akan dibandingkan dengan Code Generator ROM ( CG ROM ) yang berisi bitmap font untuk setiap karakter standar. Dengan kata lain semua kode karakter standar telah disimpan dalam memori ( CG ROM ) sehingga LCD Karakter 127

129 dapat menampilkan karakter yang dimasukkan pada DD RAM. Kode karakter yang disimpan pada CG ROM adalah berupa bit (binary digit) ASCII. GAMBAR 6.3 PETA MEMORI LCD KARAKTER 2X16 Instruksi Set Posisi Kursor adalah 80h, untuk itu perlu ditambahkan alamat lokasi dimana karakter akan ditampilkan. Contoh untuk menampilkan test dengan posisi awal kursor berada pada baris pertama kolom pertama, maka alamat memorinya adalah 00h, kemudian ditambahkan dengan 80h sehingga hasilnya 80h ( 00h + 80h = 80h ). 128 GAMBAR 6. 4 TABEL DATA NIBBLE PADA CGRAM

130 TABEL 6. 2 TABEL KODE ASCII 129

131 6.4. Set Instruksi Berikut ini dijelaskan beberapa perintah dasar yang digunakan untuk mengkonfigurasikan LCD Karakter. TABEL 6. 3 SET INSTRUKSI LCD KARAKTER Upper Nibble Lower Nibble Fungsi LCD_RS LCD_RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Clear Display Return Cursor Home Entry Mode Set I/D S Display On/Off D C B Cursor and Display Shift S/C R/L - - Function Set DL N F - - a. Disabled Jika sinyal LCD_E mendapat logika low maka semua input yang diberikan ke LCD tidak akan berpengaruh. b. Clear Display Perintah ini digunakan untuk menghapus layar dan mengembalikan posisi kursor ke lokasi awal (pojok kiri atas). c. Return Cursor Home Digunakan untuk mengembalikan posisi kursor ke lokasi awal dan mengembalikan tampilan ke posisi semula ( perintah ini berfungsi jika dilakukan mode pergeseran pada LCD ). d. Entry Mode Set Untuk mengatur arah pergerakan jika diaktifkan mode geser dengan caraincrement atau decrement pada bit DB.1 dan DB.0. DB.1 (I/D) = 0 : Auto decrement, posisi kursor geser ke kiri DB.1 (I/D) = 1 : Auto increment, posisi kursor geser ke kanan 130

132 DB.0 (S) = 0 : Mode geser dinonaktifkan DB.0 (S) = 1 : Mode geser diaktifkan, arahnya bergantung pada DB.1 e. Display On/Off DB.2 (D) = 0 : Display OFF, karakter tidak ditampilkan DB.2 (D) = 1 : Display ON DB.1 (C) = 0 : Cursor OFF, posisi kursor tidak ditampilkan DB.1 (C) = 1 : Cursor ON DB.0 (B) = 0 : Blink OFF, kursor blink tidak ditampilkan DB.1 (B) = 1 : Blink ON f. Cursor and Display Shift Digunakan untuk menggeser posisi kursor dan layar tanpa mengubah isi memori DD RAM ( Display Data RAM ). Tabel 6.4 Kondisi DB2 dan DB3 untuk operasi kursor DB3 DB2 Operasi (S/C) (R/L) 0 0 Geser posisi kursor ke kiri 0 1 Geser posisi kursor ke kanan 1 0 Geser seluruh layar ke kiri 1 1 Geser seluruh layar ke kanan g. Function Set Digunakan untuk mengatur lebar data, jumlah baris yang digunakan dan font karakter. DL = 0 : Lebar data interface 4 bit (DB7 s/d DB4) DL = 1 : Lebar data interface 8 bit (DB7 s/d DB0) 131

133 PRAKTEK : Percobaan 1 : LCD Karakter Langkah langkah : 1. Buka Xilink ISE 9.2i 2. Klik File =>New Project 3. Ketik nama project dengan nama lcd_kar lalu klik next 4. Atur Device Properties seperti gambar dibawah ini : 5. Klik New Source => ketik nama file namenya lcd_kar pilih VHDL Module =>klik next => input dan outputnya dikosongkan saja seperti dibawah ini: 132

134 6. Klik next terus hingga Finish => pilih yes 7. Klik next => pilih next lagi => lalu Finish 8. Lengkapi source codenya => Source 1 Source 2 133

135 Source 3 9. Lalu save 10. Pada bagian tab Processes pada Synthesize-XST klik tanda + klik kanan Check Syntax pilih Run 11. Pada bagian tab Processes pada Synthesize-XST klik kanan pilih Run 12. Klik tanda + pada User Constraints pilih Assign Package Pins dengan klik kanan pilih Run =>pilih yes 13. Isikan LOC pin seperti gambar berikut: 134

136 14. Klik kanan pada Implement Design lalu pilih Run 15. Klik tanda + pada Generate Programming File => pilih Configure Device (impact) klik kanan lalu Run 16. Pada tab impact klik Finish 17. Pilih (- - - nama module- - -).bit klik Open =>Bila ada tanda warning klik Ok 18. klik Bypass => lalu klik Bypass lagi 19. Pada tab Xilink Web Talk Dialog klik Decline =>pilih Ok 20. Klik kanan pada gambar IC Xilink sebelah kiri lalu pilih program seperti gambar dibawah ini: 21. Lalu pilih OK sampai muncul tulisan Program Succeeded 135

137 OUTPUT : KESIMPULAN : 136

138 Program Mandiri I : Edit program diatas untuk menampilkan output My L4b M y L 4 b SOURCE CODE : 137

139 KESIMPULAN : Percobaan 2 : PemetaanMemori (CGRAM)LCD Karakter Langkah langkah : 1. Ikuti semua langkah langkah seperti percobaan sebelumnya ( simpan dengan nama lcd_memori ). 2. Lalu lengkapi source code berikut ini: Source 1 138

140 Source 2 Source 3 139

141 3. Kemudian lanjutkan ke langkah berikutnya ( langkah 9 s/d 21 ). OUTPUT : KESIMPULAN : 140

142 Program Mandiri 2 : Edit program diatas ( percobaan 2 ) untuk menampilkan output seperti berikut: 1 a c p g s l f a Catatan : - Ubahlah nilai pengalamatan memori pada set_addr, set_addr2, dst. Tambahkan lagi variabelnya jika perlu. SOURCE CODE : 141

143 KESIMPULAN : 142

144 PERTEMUAN 7 Video Graphic Array (VGA) I. Tujuan Praktikum : Praktikan Dapat Mengenal dan Memahami Program VHDL pada FPGA Praktikan Dapat Merancang Program VHDL pada Pemrograman FPGA menggunakan port VGA Praktikan Dapat Memahami Penggunaan port VGA pada FPGA II. Dasar Teori Pengenalan Port VGA Merancang Desain Program Menggunakan VHDL Aplikasi Perancangan Program VHDL untuk port VGA III. Peralatan FPGA XILINX SPARTAN 3E Adaptor 5 Volt 1 buah PC 143

145 7 BAB 7 VIDEO GRAPHIC ARRAY (VGA) 7.1 VIDEO GRAPHIC ARRAY (VGA) Video Graphic Array (VGA) merupakan sebuah standar tampilan komputer analog yang dipasarkan pertama kali oleh IBM pada Walaupun standar VGA sudah tidak lagi digunakan karena sudah digantikan oleh standar yang lebih baru, VGA masih digunakan dalam pasar pocket pc. VGA merupakan standar grafis terakhir yang diikuti oleh mayoritas pabrik pembuat kartu grafis komputer. Tampilan Windows sampai sekarang masih beroperasi dalam mode VGA karena mode VGA didukung oleh banyak pembuat monitor dan kartu grafis. VGA merupakan salah satu komponen output yang bertugas menampilkan hasil proses pada layar monitor. Istilah VGA juga sering digunakan untuk mengacu kepada resolusi layar berukuran , apapun pembuat perangkat keras kartu grafisnya. Kartu VGA berguna untuk menerjemahkan output (keluaran) komputer ke monitor. Untuk menggambar/desain grafis ataupun untuk bermain game, kita perlu VGA yang tinggi kekuatannya Gambar 7.1 Port VGA pada FPGA 144

146 Port pada VGA terdiri dari 15 pin yang memiliki fungsinya masing-masing. Di bawah ini gambar dari port VGA beserta fungsi dari setiap pin-pinnya. Gambar 7.2 Fungsi Pin pada port VGA 145

147 7.1.1 Resolusi VGA Resolusi VGA 640x480 piksel adalah dengan 16 atau 256 warna. Dasar resolusi ini digunakan ketika boot PC, dan juga digunakan dalam Safe Mode untuk mengatasi masalah, karena driver display ditetapkan pada resolusi yang lebih tinggi dapat menyebabkan masalah. Meskipun pengguna tidak berhenti dari menjaga resolusi ini, sangat sedikit data akan muncul di layar. Namun, layar kecil di perangkat genggam juga dapat menggunakan VGA atau bahkan lebih rendah resolusinya. Di bawah ini merupakan standar resolusi yang biasa dipakai pada VGA : 640x x x x x1200 Tiga terakhir merupakan yang paling umum digunakan. Sebagai contoh, 1024x768 berarti ada kolom dan 768 baris piksel pada layar. Semakin tinggi resolusinya, bahan lebih dapat dilihat di layar, namun resolusi tinggi di layar kecil membuat teks sangat kecil. Gambar 7.3 Standard screen resolution 146

148 Gambar 7.4 Wide Screen Resolution Jenis-jenis Konektor VGA Sebuah konektor VGA 15-pin tiga baris DE-15 konektor. 15-pin konektor VGA ditemukan pada banyak kartu video, monitor komputer, dan beberapa set televisi definisi tinggi. VGA konektor dan kabel komponen RGBHV membawa analog (merah, hijau, biru, horizontal sync, sync vertikal) sinyal video, dan data. Pada komputer laptop atau perangkat kecil lainnya, port mini-vga kadang-kadang digunakan sebagai pengganti konektor VGA berukuran penuh. Hal ini juga disebut konektor RGB, D-sub 15, mini sub D15, mini konektor D15, HD-15, atau HD15 (High Density 15), DE-15, atau DE15, yang membedakannya dari konektor dengan ukuran yang sama tetapi dengan hanya dua baris pin. Kadangkadang, konektor ini disebut sebagai "DB-15" atau sebagai ""-15 HDB. Port VGA didalam FPGA digunakan sebagai output dari hasil program didalam FPGA, dimana program tersebut merupakan program untuk mengontrol tampilan grafik yang nantinya akan ditampilkan pada monitor. Namun FPGA hanya dapat menampilkan grafik tidak lebih dari resolusi 640 x

149 Di bawah ini jenis-jenis dari konektor VGA. Gambar 7.5 Jenis-jenis konektorvga 148

150 PRAKTEK: Percobaan 1 :VGA1 Langkah-Langkah: 1. Buka Xilink ISE 9.2i 2. Klik File ->New Project 3. Ketik nama projek dengan namavga_module lalu klik next 4. Atur Device Properties seperti gambar dibawah ini: 5. Klik new source->ketik nama file namenya Vga_Module pilih VHDL Module->klik next- > input dan outputnya dikosongkan saja. 6. Klik next terus hingga Finish-> pilih yes 7. Klik next->pilih next lagi->lalu Finish 8. Lengkapi source codenya-> 149

151 Source1 Source2 9. Lalus ave 10.Pada bagian tab Processes pada Synthesize-XST klik tanda+ klik kanan Check Syntax pilih Run. 11.Pada bagian tab Processes pada Synthesize-XST klik kanan pilih Run 12.Klik tanda + pada User Constraints pilih Assign Package Pins dengan klik kanan pilih Run->pilihyes. 13.Isikan LOC pin seperti gambar berikut: 14.Klik kanan pada Implement Design lalu pilih Run 15.Klik tanda + pada Generate Programming File -> pilih Configure Device (impact) klik kanan lalu Run 16.Pada tab impact klik Finish 17.Pilih(---namamodule---).bit klik Open-> Bil aada tanda warning klik Ok 18.klik Bypass->lalu klik Bypass lagi 150

152 19.Pada tab Xilink WebTalkDialog klik Decline ->pilih Ok 20.Klik kanan pada gambar IC Xilink sebelah kiri lalu pilih program seperti gambar dibawahini: 21.Lalu pilih OK sampai muncul tulisan Program Succeeded OUTPUT: KESIMPULAN: 151

153 Program Mandiri I :Edit program diatas Untuk menampilkan output: ACSL -(no.computer);(contoh:acsl - 16) SourceCode: KESIMPULAN: 152

154 Program Mandiri II :Edit program diatas Untuk menampilkan output: VGA MODULE SoureCode: KESIMPULAN: 153

155 Percobaan 2:VGA2 Ikuti langkah langkah pada percobaan 1 Lengkapi source code dengan source code dibawah ini. Source1 Source2 Isikan Loc Pin seperti gambar dibawahini: 154

156 OUTPUT: KESIMPULAN: 155

157 ProgramMandiri I :Edit program diatas Untuk menampilkan output: Biru Putih Merah SourceCode: KESIMPULAN: 156

ENTITY Entity adalah daftar dengan spesifikasi dari semua pin input dan output (port) dari sirkuit. Sintaks ditampilkan di bawah:

ENTITY Entity adalah daftar dengan spesifikasi dari semua pin input dan output (port) dari sirkuit. Sintaks ditampilkan di bawah: ENTITY Entity adalah daftar dengan spesifikasi dari semua pin input dan output (port) dari sirkuit. Sintaks ditampilkan di bawah: Sinyal mode bisa IN, OUT, INOUT, atau BUFFER. Seperti digambarkan dalam

Lebih terperinci

Pengenalan FPGA oleh Iman Taufik Akbar

Pengenalan FPGA oleh Iman Taufik Akbar Pengenalan FPGA oleh Iman Taufik Akbar Tutorial singkat ini akan membahas mengenai FPGA (Field Programmable Gate Array). Adapun FPGA yang akan digunakan adalah produk dari Digilent yang menggunakan Xilinx

Lebih terperinci

BAB 3. Perancangan Sistem

BAB 3. Perancangan Sistem BAB 3 Perancangan Sistem 3.1 Rancangan Sistem Rancangan Sistem secara keseluruhan dapat dilihat pada Gambar 3.1 Gambar 3.1 Blok Diagram Sistem Berdasarkan Gambar 3.1 mengenai Blok Diagram Sistem terdapat

Lebih terperinci

Pengenalan VHDL. [Pengenalan VHDL]

Pengenalan VHDL. [Pengenalan VHDL] Pengenalan VHDL A. Pengenalan Bahasa VHDL VHDL adalah kepanjangan dari VHSIC (Very High Speed Integrated Circuits) Hardware Description Language. Pada pertengahan tahun 1980 Departemen Pertahanan Amerika

Lebih terperinci

MATERI PELATIHAN VHDL UNTUK SINTESIS

MATERI PELATIHAN VHDL UNTUK SINTESIS MATERI PELATIHAN VHDL UNTUK SINTESIS LABORATORIUM ELEKTRONIKA DASAR JURUSAN TEKNIK ELEKTRO INSTITUT TEKNOLOGI SEPULUH NOPEMBER (ITS) S U R A B A Y A Materi Pelatihan VHDL 1. Review Sistem Digital 2. HDL

Lebih terperinci

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 3 Stopwatch

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 3 Stopwatch MODUL 3 Stopwatch I. Pendahuluan Pada praktikum ini, anda akan mempelajari cara mengembangkan sebuah sistem pada IC FPGA Spartan-II buatan menggunakan software ISE WebPack. Sistim yang dibuat adalah sebuah

Lebih terperinci

QUARTUS DAN CARA PENGGUNAANNYA

QUARTUS DAN CARA PENGGUNAANNYA QUARTUS DAN CARA PENGGUNAANNYA A. Pengertian Software Quartus Quartus merupakan sebuah software yang digunakan untuk membuat simulasi rangkaian logika secara digital dengan memanfaatkan bahasa deskripsi

Lebih terperinci

BAB II SIMULATOR XILINX PADA RANGKAIAN DIGITAL SEDERHANA

BAB II SIMULATOR XILINX PADA RANGKAIAN DIGITAL SEDERHANA BAB II SIMULATOR XILINX PADA RANGKAIAN DIGITAL SEDERHANA OBYEKTIF : - Memahami perangkat lunak Xilinx - Mampu menggambarkan gerbang digital dasar pada schematic editor - Mampu mensimulasikan gerbang dasar

Lebih terperinci

Percobaan IV PENGENALAN VHDL

Percobaan IV PENGENALAN VHDL IV- Percobaan IV PENGENALAN VHDL IV. Tujuan. Mempelajari elemen-elemen dasar VHDL yang diimplementasikan dalam Warp. 2. Membuat aplikasi sederhana menggunakan VHDL. 3. Mensimulasikan aplikasi tersebut.

Lebih terperinci

Field Programmable Gate Array (FPGA) merupakan perangkat keras yang nantinya akan digunakan untuk mengimplementasikan perangkat lunak yang telah diran

Field Programmable Gate Array (FPGA) merupakan perangkat keras yang nantinya akan digunakan untuk mengimplementasikan perangkat lunak yang telah diran DISAIN DAN IMPLEMENTASI FULL ADDER DAN FULL SUBSTRACTOR SERIAL DATA KEDALAM IC FPGA SEBAGAI PERCEPATAN PERKALIAN MATRIKS DALAM OPERASI CITRA Drs. Lingga Hermanto, MM,. MMSI., 1 Shandi Aji Pusghiyanto 2

Lebih terperinci

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR 1 PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR Siti Mukaromah, S.Kom TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan Structure English Pseudocode Teknik Gambar Structure Chart HIPO Flowchart 2 PSEUDOCODE Kode

Lebih terperinci

BAHASA PEMROGRAMAN VHDL

BAHASA PEMROGRAMAN VHDL BAHASA PEMROGRAMAN VHDL - Hardware Description Language (HDL) adalah bahasa yang dapat digunakan untuk mendeskripsikan sebuah sistim digital, misal, sebuah komputer atau komponen dari komputer - Ada 2

Lebih terperinci

untuk ASIC tinggi, algoritma harus diverifikasi dan dioptimalkan sebelum implementasi. Namun dengan berkembangnya teknologi VLSI, implementasi perangk

untuk ASIC tinggi, algoritma harus diverifikasi dan dioptimalkan sebelum implementasi. Namun dengan berkembangnya teknologi VLSI, implementasi perangk IMPLEMENTASI SERIAL MULTIPLIERS 8 BIT KE DALAM IC FPGA SEBAGAI PENDUKUNG PERCEPATAN OPERASI PERKALIAN DALAM KOMPRESI CITRA Drs. Lingga Hermanto, MMSi 1 Iman Ilmawan Muharam 2 1. Dosen Universitas Gunadarma

Lebih terperinci

Perancangan Aritmetic Logic Unit (ALU) pada FPGA

Perancangan Aritmetic Logic Unit (ALU) pada FPGA MODUL III Perancangan Aritmetic Logic Unit (ALU) pada FPGA I. Tujuan Pada Percobaan ini praktikan akan mempelajari tentang bagaimana cara mengembangkan Aritmetic Logic Unit (ALU) pada IC FPGA dengan pendekatan

Lebih terperinci

Teori Algoritma TIPE DATA

Teori Algoritma TIPE DATA Alam Santosa Teori Algoritma Dasar Algoritma TIPE DATA Program komputer adalah deretan perintah untuk memanipulasi data input menjadi informasi yang bermanfaat bagi pengguna (user). Data yang diinput dapat

Lebih terperinci

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB MODUL 2 PENGENALAN DESAIN MENGGUNAKAN FPGA Iskandar Setiadi (13511073) Asisten: Alfian Abdi / 13208044 Tanggal Percobaan: 01/10/2012 EL2195-Praktikum Sistem Digital Laboratorium Dasar Teknik Elektro -

Lebih terperinci

LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL MENGGUNAKAN ALL-11 UNIVERSAL PROGRAMMER

LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL MENGGUNAKAN ALL-11 UNIVERSAL PROGRAMMER LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL MENGGUNAKAN ALL-11 UNIVERSAL PROGRAMMER TUJUAN 1. Mempelajari elemen-elemen dasar VHDL yang diimplementasikan dalam Warp. 2. Membuat aplikasi sederhana menggunakan

Lebih terperinci

TUTORIAL. Tabel Kebenaran Full Adder : Cin B A Sum Cout

TUTORIAL. Tabel Kebenaran Full Adder : Cin B A Sum Cout TUTORIAL Desain dan Simulasi Rangkaian Digital dengan OrCAD 9.1 Oleh : Agus Bejo Program Diploma Teknik Elektro Fakultas Teknik, Universitas Gadjah Mada Berikut ini adalah panduan untuk merancang sebuah

Lebih terperinci

BAB 1. Pendahuluan. diprogram secara digital ditemukan seperti IC sederhana seperti General Array

BAB 1. Pendahuluan. diprogram secara digital ditemukan seperti IC sederhana seperti General Array BAB 1 Pendahuluan 1.1 Latar Belakang Perkembangan dunia dalam segala aspek kehidupan makin hari semakin cepat apalagi belakangan ini sangat pesat sekali perkembangnya, terutama perkembangan pada dunia

Lebih terperinci

IMPLEMENTASI FIELD PROGRAMMABLE GATE ARRAY DALAM PERANCANGAN ARITHMETIC-LOGIC UNIT DAN SHIFTER

IMPLEMENTASI FIELD PROGRAMMABLE GATE ARRAY DALAM PERANCANGAN ARITHMETIC-LOGIC UNIT DAN SHIFTER IMPLEMENTASI FIELD PROGRAMMABLE GATE ARRAY DALAM PERANCANGAN ARITHMETIC-LOGIC UNIT DAN SHIFTER Ferry Wahyu Wibowo STMIK AMIKOM Yogyakarta e-mail : ferrywahyuwibowo@scientist.com Abstraksi Paper ini membahas

Lebih terperinci

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 4 Kalkulator 4-bit

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 4 Kalkulator 4-bit MODUL 4 Kalkulator 4-bit I. Pendahuluan Pada praktikum ini, anda akan mempelajari cara mendisain beberapa sub-disain dari sebuah sistem besar stopwatch menggunakan VHDL. Sub-disain yang dibuat ada empat

Lebih terperinci

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A REPRESENTASI DATA ALUR PEMROSESAN DATA SISTEM BILANGAN TEORI BILANGAN KOVERSI BILANGAN OPERASI ARITMATIKA Representasi Data Data adalah sesuatu yang belum

Lebih terperinci

RUMUSAN MASALAH Rumusan masalah yang diambil penulis ialah mengembangkan dari latar belakang masalah yang telah diuraikan di atas, dan dapat diperoleh

RUMUSAN MASALAH Rumusan masalah yang diambil penulis ialah mengembangkan dari latar belakang masalah yang telah diuraikan di atas, dan dapat diperoleh DESAIN METODE PENGATURAN DATA BARIS CITRA BLOK 8 PIXEL UNTUK IMPLEMENTASI PADA IC FPGA SEBAGAI PENDUKUNG PERCEPATAN OPERASI PERKALIAN QDCT DALAM PROSES KOMPRESI CITRA JPEG Drs. Lingga Hermanto, MMSi 1

Lebih terperinci

Pertemuan ke 5 BAB IV Sintesis Rangkaian Sekuensial (2) Deskripsi Manfaat Relevansi Learning Outcome Materi I. Rangkaian Memori Terbatas RAM dinamik

Pertemuan ke 5 BAB IV Sintesis Rangkaian Sekuensial (2) Deskripsi Manfaat Relevansi Learning Outcome Materi I. Rangkaian Memori Terbatas RAM dinamik Pertemuan ke 5 1 BAB IV Sintesis Rangkaian Sekuensial (2) Deskripsi Pada bab ini akan dibahas tentang proses Rangkaian memori terbatas, dan penentuan kelas yang berbeda Manfaat Memberikan kompetensi untuk

Lebih terperinci

MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL

MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL Satria Indrawan Putra (18011034) Albhikautsar Dharma Kesuma (13511058) Asisten: Luqman Muh. Zagi (13208032) Tanggal Percobaan: 06/12/12 EL2195-Praktikum Sistem

Lebih terperinci

PERANCANGAN FILTER FIR MENGGUNAKAN SOFTWARE XILINX ISE 9.2i

PERANCANGAN FILTER FIR MENGGUNAKAN SOFTWARE XILINX ISE 9.2i PERANCANGAN FILTER FIR MENGGUNAKAN SOFTWARE XILINX ISE 9.2i A. PENDAHULUAN Filter FIR yang dirancang memiliki persamaan sebagai berikut. ( ) ( ) ( ) ( ) Gambar struktur (diagram blok) dari filter ini adalah

Lebih terperinci

Variabel dan Tipe data Javascript

Variabel dan Tipe data Javascript Variabel dan Tipe data Javascript Variabel Pendeklarasian variabel dalam JavaScript dapat di isi dengan nilai apa saja dan juga bersifat opsional. Artinya variabel boleh di deklarasikan ataupun tidak hal

Lebih terperinci

Design Capture dalam Implementasi Field Programmable Gate Array (FPGA) dan Application Spesific Integrated Circuit (ASIC)

Design Capture dalam Implementasi Field Programmable Gate Array (FPGA) dan Application Spesific Integrated Circuit (ASIC) Design Capture dalam Implementasi Field Programmable Gate Array (FPGA) dan Application Spesific Integrated Circuit (ASIC) Ferry Wahyu Wibowo 1 Jurusan Teknik Informatika, STMIK AMIKOM Yogyakarta, Jl. Ring

Lebih terperinci

Gerbang logika ini akan dijelaskan lebih detil pada bagian 4. AND A B Y OR Y A B Y NOT AND NOT

Gerbang logika ini akan dijelaskan lebih detil pada bagian 4. AND A B Y OR Y A B Y NOT AND NOT 3. DSR DIGITL 3.1. Gerbang-gerbang sistem digital Gerbang-gerbang sistem dijital atau gerbang logika adalah piranti yang memiliki keadaan bertaraf logika. Gerbang logika dapat merepresentasikan keadaan

Lebih terperinci

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C 1. Pendahuluan Lingkungan Turbo C++ 4.5 Turbo C++ 4.5 adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C++ 4.5. 1 2 3 4 1 : Menu Utama

Lebih terperinci

MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL 2. STUDI PUSTAKA

MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL 2. STUDI PUSTAKA MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL Reno Rasyad (13511045) Yonas Dwiananta (18011015) Asisten: Rizka Widyarini Tanggal Percobaan: 5/12/2012 EL2195-Praktikum Sistem Digital Laboratorium Dasar Teknik

Lebih terperinci

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

TIPE DATA, VARIABLE, dan OPERATOR DELPHI TIPE DATA, VARIABLE, dan OPERATOR DELPHI A. TIPE DATA Delphi merupakan bahasa pemrograman tingkat tinggi yang mendukung perancangan terstruktur dan berorientasi Object. Bahasa pemrograman ini berdasarkan

Lebih terperinci

SUMBER BELAJAR PENUNJANG PLPG

SUMBER BELAJAR PENUNJANG PLPG SUMBER BELAJAR PENUNJANG PLPG 2017 [TIK] BAB VIII PEMROGRAMAN BERORIENTASI OBJEK [Alfa Faridh Suni] KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN DIREKTORAT JENDERAL GURU DAN TENAGA KEPENDIDIKAN 2017 BAB VIII

Lebih terperinci

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA Tim Pengajar KU1102 - Institut Teknologi Sumatera Data Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu

Lebih terperinci

1 Tujuan dan Sasaran. 2 Alat dan Bahan. 3 Dasar Teori. Praktikum Sistem Digital Lanjut Percobaan 3: Dekoder 3-ke-8 dan Demultiplekser 1-ke-8

1 Tujuan dan Sasaran. 2 Alat dan Bahan. 3 Dasar Teori. Praktikum Sistem Digital Lanjut Percobaan 3: Dekoder 3-ke-8 dan Demultiplekser 1-ke-8 Praktikum Sistem Digital Lanjut Percobaan 3: Dekoder 3-ke-8 dan Demultiplekser 1-ke-8 1 Tujuan dan Sasaran Kegiatan praktikum ini bertujuan untuk mengimplementasikan blok rangkaian kombinasional di board

Lebih terperinci

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom Pengantar Bahasa Pemrograman Pascal Page 1 / 11 Pengenalan Pascal Pascal merupakan salah satu bahasa pemrograman tingkat tinggi. Pemrograman

Lebih terperinci

SMA SANTO PAULUS PONTIANAK

SMA SANTO PAULUS PONTIANAK SMA SANTO PAULUS PONTIANAK Konsep Dasar Pemrograman Pascal Kelas X Semester 2 Pengayaan Teknologi Informasi dan Komunikasi Oleh : Vianney Alexius, mtb TIK-vianney.mtb 2012 Algoritma Serangkaian langkah

Lebih terperinci

PROYEK PERANCANGAN RANGKAIAN DIGITAL : THUNDERBURD TAIL LIGHTS. Mochammad Fadhli Zakiy, Rizki Satya Utami

PROYEK PERANCANGAN RANGKAIAN DIGITAL : THUNDERBURD TAIL LIGHTS. Mochammad Fadhli Zakiy, Rizki Satya Utami PROYEK PERANCANGAN RANGKAIAN DIGITAL : THUNDERBURD TAIL LIGHTS Mochammad Fadhli Zakiy, Rizki Satya Utami Laboratorium Dasar Teknik Elektro Sekolah Teknik Elektro dan Informatika ITB Abstrak Praktikum kali

Lebih terperinci

Pemrograman Berbasis Objek Operator dan Assignment

Pemrograman Berbasis Objek Operator dan Assignment Operator dan Assignment Macam-macam macam Operator Arithmetic Op. : + - * / % Relational Op. : > >= < >>> Conditional

Lebih terperinci

Operator dan Assignment

Operator dan Assignment Operator dan Assignment Macam-macam Operator Arithmetic Op. : + - * / % Relational Op. : > >= < >>> Conditional Op.

Lebih terperinci

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA Kata-Kata Cadangan Kata-kata cadangan (reserved words) adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata

Lebih terperinci

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA Tim Pengajar KU1102 - Institut Teknologi Sumatera Data Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu

Lebih terperinci

Teknologi Implementasi dan Metodologi Desain Sistem Digital

Teknologi Implementasi dan Metodologi Desain Sistem Digital Metodologi Desain TSK505 - Lanjut Eko Didik Teknik Sistem Komputer - Universitas Diponegoro Review Kuliah Sebelumnya dibahas tentang teknologi implementasi sistem digital di IC keluarga 7400, PLD (PLA,

Lebih terperinci

[Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date]

[Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date] [Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date] H a l a m a n 1 DAFTAR ISI DAFTAR ISI... 1 1. TIPE DATA DALAM BORLAND DELPHI7... 2 1.1.

Lebih terperinci

MULTIPLEKSER BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD)

MULTIPLEKSER BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD) MULTIPLEKSER BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD) Oleh Muhammad Irmansyah Staf Pengajar Teknik Elektro Politeknik Negeri Padang ABSTRACT In middle 1990, electronics industry had the evolution of personal

Lebih terperinci

disebut ternary operator. Di dalam suatu operasi dapat terdapat banyak operator. Urutan eksekusi dari operatoroperator

disebut ternary operator. Di dalam suatu operasi dapat terdapat banyak operator. Urutan eksekusi dari operatoroperator OPERATOR Operator digunakan untuk menyatakan suatu perhitungan/operasi. Operator yang digunakan untuk operasi yang melibatkan satu operand disebut unary operator. Jika melibatkan dua operand maka disebut

Lebih terperinci

Pertemuan2 Percabangan & Perulangan pada Python

Pertemuan2 Percabangan & Perulangan pada Python Pertemuan2 Percabangan & Perulangan pada Python Objektif: 1. Mahasiswa mengetahui percabangan dan perulangan pada Python. 2. Mahasiswa mengetahui bentuk umum dari percabangan dan perulangan pada Python.

Lebih terperinci

2. Dasar dari Komputer, Sistem Bilangan, dan Gerbang logika 2.1. Data Analog Digital

2. Dasar dari Komputer, Sistem Bilangan, dan Gerbang logika 2.1. Data Analog Digital 2. Dasar dari Komputer, Sistem Bilangan, dan Gerbang logika 2.1. Data Komputer yang dipakai saat ini adalah sebuah pemroses data. Fungsinya sangat sederhana : Untuk memproses data, kemudian hasil prosesnya

Lebih terperinci

1. FLIP-FLOP. 1. RS Flip-Flop. 2. CRS Flip-Flop. 3. D Flip-Flop. 4. T Flip-Flop. 5. J-K Flip-Flop. ad 1. RS Flip-Flop

1. FLIP-FLOP. 1. RS Flip-Flop. 2. CRS Flip-Flop. 3. D Flip-Flop. 4. T Flip-Flop. 5. J-K Flip-Flop. ad 1. RS Flip-Flop 1. FLIP-FLOP Flip-flop adalah keluarga Multivibrator yang mempunyai dua keadaaan stabil atau disebut Bistobil Multivibrator. Rangkaian flip-flop mempunyai sifat sekuensial karena sistem kerjanya diatur

Lebih terperinci

Lampu lalu lintas sederhana berbasis Field Programmable Gate Array (FPGA) menggunakan Finite State Machine

Lampu lalu lintas sederhana berbasis Field Programmable Gate Array (FPGA) menggunakan Finite State Machine Lampu lalu lintas sederhana berbasis Field Programmable Gate Array (FPGA) menggunakan Finite State Machine Ferry Wahyu Wibowo 1 Jurusan Teknik Informatika, STMIK AMIKOM Yogyakarta, Jl. Ring Road Utara,

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS 29 BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS Dengan menggunakan Visual Basic 6.0 aplikasi perangkat ajar pengelolaan dan perhitungan ekspresi matematika yang akan dibangun dalam penelitian

Lebih terperinci

GERBANG LOGIKA BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD)

GERBANG LOGIKA BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD) GERBANG LOGIKA BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD) Oleh: Muhammad Irmansyah Staf Pengajar Teknik Elektro Politeknik Negeri Padang ABSTRACT In middle 1990, electronics industry had evolution in personal

Lebih terperinci

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String Struktur dapat diartikan sebagai suatu susunan, bentuk, pola atau bangunan. Data dapat diartikan sebagai suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau lambang-lambang

Lebih terperinci

Konstruksi Dasar Algoritma

Konstruksi Dasar Algoritma Konstruksi Dasar Algoritma ALGORITMA DAN PEMROGRAMAN [IF6110202] Yudha Saintika, S.T., M.T.I. Sub-Capaian Pembelajaran MK Pendahuluan Instruksi dan Aksi Algoritma merupakan deskripsi urutan pelaksanaan

Lebih terperinci

Sebelum membahas mengenai pemrograman LabVIEW, sebaiknya pembaca mengenal istilah istilah penting berikut ini.

Sebelum membahas mengenai pemrograman LabVIEW, sebaiknya pembaca mengenal istilah istilah penting berikut ini. Pemrograman LabVIEW 6.1 Istilah-Istilah Penting Sebelum membahas mengenai pemrograman LabVIEW, sebaiknya pembaca mengenal istilah istilah penting berikut ini. 1. G: dari kata graphical, merupakan sebutan

Lebih terperinci

LAB #1 DASAR RANGKAIAN DIGITAL

LAB #1 DASAR RANGKAIAN DIGITAL LAB #1 DASAR RANGKAIAN DIGITAL TUJUAN 1. Untuk mempelajari operasi dari gerbang logika dasar. 2. Untuk membangun rangkaian logika dari persamaan Boolean. 3. Untuk memperkenalkan beberapa konsep dasar dan

Lebih terperinci

PHP (HYPERTEXT PREPROCESSOR)

PHP (HYPERTEXT PREPROCESSOR) LAPORAN PRAKTIKUM MODUL 4 PEMROGRAMAN WEB PHP (HYPERTEXT PREPROCESSOR) Disusun Oleh: Deny Kurniawan Novianto (130533608222) PTI OFF B UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PROGRAM

Lebih terperinci

PHP mendukung komentar yang digunakan pada C, C++ dan Shell Unix. Sebagai contoh:

PHP mendukung komentar yang digunakan pada C, C++ dan Shell Unix. Sebagai contoh: Perintah Dasar Tag PHP Ketika PHP membaca suatu file, proses akan berlangsung hingga ditemukan tag khusus yang berfungsi sebagai tanda dimulainya interpretasi teks tersebut sebagai kode PHP. PHP akan menjalankan

Lebih terperinci

DEKODER BINER KE DESIMAL BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD)

DEKODER BINER KE DESIMAL BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD) DEKODER BINER KE DESIMAL BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD) ISSN:2085-6989 Oleh: Muhammad Irmansyah Jurusan Teknik Elektro Politeknik Negeri Padang Kampus Unand Limau Manis Padang ABSTRACT In middle

Lebih terperinci

Pengenalan Script. Definisi HTML

Pengenalan Script. Definisi HTML 1 Pengenalan Script Pada bab ini akan dibahas bahasa script yang dapat digunakan untuk membuat halaman web. Untuk dapat membuat halaman web bahasa script pertama yang harus anda kenal adalah HTML. HTML

Lebih terperinci

Selection, Looping, Branching

Selection, Looping, Branching Selection, Looping, Branching Struktur If untuk membuat percabangan alur program dengan satu pilihan saja dapat mengatur apakah sebuah perintah akan dijalankan atau tidak tergantung kepada kondisinya setidaknya

Lebih terperinci

Sistem Digital. Sistem Angka dan konversinya

Sistem Digital. Sistem Angka dan konversinya Sistem Digital Sistem Angka dan konversinya Sistem angka yang biasa kita kenal adalah system decimal yaitu system bilangan berbasis 10, tetapi system yang dipakai dalam computer adalah biner. Sistem Biner

Lebih terperinci

Analisa Model Implementasi Field Programmable Gate Array (FPGA) dan Application Spesific Integrated Circuit (ASIC)

Analisa Model Implementasi Field Programmable Gate Array (FPGA) dan Application Spesific Integrated Circuit (ASIC) Analisa Model Implementasi Field Programmable Gate Array (FPGA) dan Application Spesific Integrated Circuit (ASIC) Ferry Wahyu Wibowo 1 Jurusan Teknik Informatika, STMIK AMIKOM Yogyakarta, Jl. Ring Road

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI. selanjutnya perancangan tersebut diimplementasikan ke dalam bentuk yang nyata

BAB 4 IMPLEMENTASI DAN EVALUASI. selanjutnya perancangan tersebut diimplementasikan ke dalam bentuk yang nyata BAB 4 IMPLEMENTASI DAN EVALUASI Pelaksanaan dari perancangan yang sudah dibuat dan dijelaskan pada Bab 3 selanjutnya perancangan tersebut diimplementasikan ke dalam bentuk yang nyata (secara hardware).

Lebih terperinci

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR BAB 3 TYPE DATA, VARIABLE DAN OPERATOR Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai atau data. Sedangkan Java sendiri dikenal sebagai bahasa pemrograman

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN BAB III ANALISIS DAN PERANCANGAN 3.1 Analisis Analisis atau bisa juga disebut dengan Analisis sistem (systems analysis) dapat didefinisikan sebagai penguraian dari suatu sistem informasi yang utuh ke dalam

Lebih terperinci

Bab 2. Dasar-Dasar Pemrograman C

Bab 2. Dasar-Dasar Pemrograman C Bab 2. Dasar-Dasar Pemrograman C Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 Overview Tipe Data Standar (Standart Data Type) Aturan Pendefinisian Identifier Variabel Mendeklarasikan

Lebih terperinci

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id 1 MODUL PEMOGRAMAN WEB II Oleh: CHALIFA CHAZAR 2 MODUL 3 Tipe Data, Variable, dan Konstanta Tujuan: Mahasiswa mengenal tipe data dan mendeklarasikan variable di dalam pemrograman PHP sebagai pondasi dalam

Lebih terperinci

MODUL 5 JAVA SCRIPT. Sub : PENGENALAN

MODUL 5 JAVA SCRIPT. Sub : PENGENALAN MODUL 5 JAVA SCRIPT Sub : PENGENALAN Laboratorium Komputer STIMIK PPKIA Pradnya Paramita Malang Pertemuan 5 5.1 Tujuan : 1. Mahasiswa dapat memahami dan mengenai perintah perintah javascript 2. Mahasiswa

Lebih terperinci

TSK505 - Sistem Digital Lanjut. Eko Didik Widianto

TSK505 - Sistem Digital Lanjut. Eko Didik Widianto Desain TSK505 - Sistem Digital Lanjut Eko Didik Teknik Sistem Komputer - Universitas Diponegoro Review Kuliah Sebelumnya dibahas tentang metodologi desain sistem digital menggunakan Xilinx ISE dan pengantar

Lebih terperinci

Dasar-Dasar Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

Dasar-Dasar Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma Dasar-Dasar Pengujian Perangkat Lunak Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma Tujuan Pembelajaran Memahami langkah awal untuk melakukan pengujian terhadap

Lebih terperinci

.::BAB II.::MENGENAL PASCAL

.::BAB II.::MENGENAL PASCAL .::BAB II.::MENGENAL PASCAL Pascal adalah bahasa pemrograman terstruktur yang membedakan blok-blok pendeklarasian tipe, variable dan penulisan kode program. Pascal memiliki keunggulan untuk dipelajari

Lebih terperinci

Dasar Pemrograman Mikrokontroler dengan Bahasa C

Dasar Pemrograman Mikrokontroler dengan Bahasa C Dasar Pemrograman Mikrokontroler dengan Bahasa C Pokok Bahasan: 1. Penggunaan Fungsi (Using Functions) 2. Penanaman bahasa rakitan di dalam Program 'C' Tujuan Belajar: Setelah mempelajari dalam bab ini,

Lebih terperinci

PERCOBAAN 8. RANGKAIAN ARITMETIKA DIGITAL DASAR

PERCOBAAN 8. RANGKAIAN ARITMETIKA DIGITAL DASAR PERCOBAAN 8. TUJUAN: Setelah menyelesaikan percobaan ini mahasiswa diharapkan mampu Memahami rangkaian aritmetika digital : adder dan subtractor Mendisain rangkaian adder dan subtractor (Half dan Full)

Lebih terperinci

JAVA BASIC PROGRAMMING Joobshet

JAVA BASIC PROGRAMMING Joobshet JAVA BASIC PROGRAMMING Joobshet 1. KOMPETENSI Mahasiswa dapat memahami jenis jenis tipe data Mahasiswa dapat memahami jenis jenis variable Mahasiswa dapat memahami jenis jenis seleksi kondisi Mahasiswa

Lebih terperinci

STRUKTUR DASAR ALGORITMA

STRUKTUR DASAR ALGORITMA STRUKTUR DASAR ALGORITMA Pertemuan 5 Muhamad Haikal, S.Kom., MT Struktur Dasar Algoritma 1. Struktur Sequence (Runtunan) 2. Struktur Selection (Pemilihan) 3. Struktur Repetition (Perulangan) Struktur Sequence

Lebih terperinci

MODUL 2 OPERATOR DAN OPERASI KONDISI

MODUL 2 OPERATOR DAN OPERASI KONDISI A. Tujuan Praktikum : MODUL 2 OPERATOR DAN OPERASI KONDISI Setelah mempelajari bab ini mahasiswa diharapkan mampu : 1. Menjelaskan tentang fungsi operator 2. Menjelaskan tentang fungsi operasi kondisi

Lebih terperinci

MODUL 3 GERBANG LOGIKA DASAR

MODUL 3 GERBANG LOGIKA DASAR MODUL 3 GERBANG LOGIKA DASAR A. TEMA DAN TUJUAN KEGIATAN PEMBELAJARAN. Tema : Gerbang Logika Dasar 2. Fokus Pembahasan Materi Pokok :. Definisi Gerbang Logika Dasar 2. Gerbang-gerbang Logika Dasar 3. Tujuan

Lebih terperinci

UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika. Data & Ekspresi

UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika. Data & Ekspresi UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika Data & Ekspresi Mata Kuliah: Algoritma & Logika Informatika (IFC3504) Alwin M. Sambul, S.T.,

Lebih terperinci

OBJECT ORIENTED PROGRAMMING. Day 3 : Operator dan Assignment

OBJECT ORIENTED PROGRAMMING. Day 3 : Operator dan Assignment OBJECT ORIENTED PROGRAMMING Day 3 : Operator dan Assignment TOPIK Membedakan antara instance dan local l variabel. Urutan pemrosesan Unary operator Arithmetic operator Shift operator: , dan >>> Comparison

Lebih terperinci

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB I PENDAHULUAN 1.1 LATAR BELAKANG BAB I PENDAHULUAN 1.1 LATAR BELAKANG Perkembangan teknologi dijital telah menunjukkan pengaruh yang luar biasa bagi kehidupan manusia. Dimulai sejak kurang lebih era tahun 60-an dimana suatu rangkaian

Lebih terperinci

MODUL II Perancangan FPGA untuk Implementasi Rangkaian Sequential dan Kombinational

MODUL II Perancangan FPGA untuk Implementasi Rangkaian Sequential dan Kombinational MODUL II Perancangan FPGA untuk Implementasi Rangkaian Sequential dan Kombinational I. Tujuan Pada Percobaan ini praktikan akan mempelajari tentang bagaimana cara mengembangkan rangkaian logika sequential

Lebih terperinci

BAB 3 PERANCANGAN SISTEM. PID berbasiskan FPGA yang bekerja secara multiplexing untuk pemberian data set point

BAB 3 PERANCANGAN SISTEM. PID berbasiskan FPGA yang bekerja secara multiplexing untuk pemberian data set point BAB 3 PERANCANGAN SISTEM Perancangan sistem pengendalian posisi 3 buah motor DC dengan algoritma PID berbasiskan FPGA yang bekerja secara multiplexing untuk pemberian data set point tiap masing-masing

Lebih terperinci

BAB III PERANCANGAN UIMEGA 8535

BAB III PERANCANGAN UIMEGA 8535 BAB III PERANCANGAN UIMEGA 8535 3.1 ARSITEKTUR UIMEGA 8535 Arsitektur UIMega 8535 secara umum diperlihatkan pada Gambar 3.1. UIMega 8535 terdiri dari lima modul utama, yaitu modul ROM, modul instruction

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi komputer telah membuat ruang batas perangkat lunak dan perangkat keras semakin sempit. Komputer sebagai sistem tidak dapat dipahami tanpa memahami

Lebih terperinci

STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a.

STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a. PASCAL STRUKTUR PROGRAM Struktur program Pascal terdiri dari sebuah judul program (program heading) dan suatu blok program (program block) atau badan program (body program). Blok program dibagi lagi menjadi

Lebih terperinci

Dasar Komputer & Pemrograman 2A

Dasar Komputer & Pemrograman 2A Dasar Komputer & Pemrograman 2A Materi 2 Reza Aditya Firdaus JENIS-JENIS DATA Jenis jenis data Jenis jenis data yang dikenal dalam bahasa pascal antara lain yaitu: 1. Jenis data sederhana a. Jenis data

Lebih terperinci

Dasar Pemrograman Java

Dasar Pemrograman Java Dasar Pemrograman Java Tessy Badriyah, SKom. MT. http://lecturer.eepis-its.edu/~tessy Tujuan Pembelajaran Penggunaan Komentar dalam program Memahami perbedaan identifier yang valid dan yang tidak valid

Lebih terperinci

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN PERTEMUAN 2 ALGORITMA & PEMROGRAMAN POKOK BAHASAN 1. Pendahuluan 2. Tahapan Pembangunan Program 3. Pengenalan Algoritma 4. Cara Menyajikan Algoritma 5. Data Program 6. Elemen-Elemen Program PENDAHULUAN

Lebih terperinci

Struktur dan Organisasi Data 2 STRUKTUR DATA

Struktur dan Organisasi Data 2 STRUKTUR DATA STRUKTUR DATA PENDAHULUAN Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Algorithma : barisan langkah-langkah

Lebih terperinci

BAB III ANALISA DAN PERANCANGAN APLIKASI

BAB III ANALISA DAN PERANCANGAN APLIKASI BAB III ANALISA DAN PERANCANGAN APLIKASI Pada bab analisa dan perancangan aplikasi, penulis akan menjelaskan apa saja yang dibutuhkan untuk membuat aplikasi, menerangkan fungsi dari elemen-elemen yang

Lebih terperinci

LEMBAR TUGAS MAHASISWA ( LTM )

LEMBAR TUGAS MAHASISWA ( LTM ) LEMBAR TUGAS MAHASISWA ( LTM ) RANGKAIAN DIGITAL Program Studi Teknik Komputer Jenjang Pendidikan Program Diploma III Tahun AMIK BSI NIM NAMA KELAS :. :.. :. Akademi Manajemen Informatika dan Komputer

Lebih terperinci

LAPORAN PRAKTIKUM STRUKTUR DATA

LAPORAN PRAKTIKUM STRUKTUR DATA LAPORAN PRAKTIKUM STRUKTUR DATA Nama : Sarifudin Kelas / NIM : IK-1B / 3.34.11.1.22 Pengampu : Sukamto, S.Kom;M.T Jobs ke : 02 Pokok Bahasan : Operator Bahasa Java PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN

Lebih terperinci

Ekspresi, Pernyataan & Operasi Aritmetika/Logika

Ekspresi, Pernyataan & Operasi Aritmetika/Logika Ekspresi, Pernyataan & Operasi Aritmetika/Logika Ekspresi (expression) Pernyataan (statements) Operator Penugasan (assignment) Operator Aritmetika Operator Relasional Operator Logika Operator Bitwise 1

Lebih terperinci

BAB II SINTAKS 2.1. SINTAKS

BAB II SINTAKS 2.1. SINTAKS BAB II SINTAKS 2.1. SINTAKS merupakan kumpulan aturan yang mendefinisikan suatu bentuk bahasa. mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan suatu kata dasar. Kata

Lebih terperinci

Read Only Memory (ROM) berbasis Field Programmable Gate Array (FPGA) menggunakan VHDL (VHSIC Hardware Description Language)

Read Only Memory (ROM) berbasis Field Programmable Gate Array (FPGA) menggunakan VHDL (VHSIC Hardware Description Language) Read Only Memory (ROM) berbasis Field Programmable Gate Array (FPGA) menggunakan VHDL (VHSIC Hardware Description Language) Ferry Wahyu Wibowo 1 Jurusan Teknik Informatika, STMIK AMIKOM Yogyakarta, Jl.

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Teknologi komunikasi digital telah berkembang dengan sangat pesat. Telepon seluler yang pada awalnya hanya memberikan layanan komunikasi suara, sekarang sudah

Lebih terperinci

3. Struktur Perulangan dalam Bahasa C++

3. Struktur Perulangan dalam Bahasa C++ Pertemuan 3 3. Struktur Perulangan dalam Bahasa C++ Obyektif Praktikum : 1. Mengerti struktur perulangan dalam C++ 2. Dapat menggunakan struktur perulangan berdasarkan penggunaannya P.3.1 Struktur perulangan

Lebih terperinci

Pertemuan 2 Bahasa Visual Basic Aplication

Pertemuan 2 Bahasa Visual Basic Aplication Pertemuan 2 Bahasa Visual Basic Aplication Dasar dari pemrograman pada Visual Basic adalah VBA yang menggunakan dialek Basic. Bagi anda yang pernah belajar bahasa Basic, tidak akan sulit untuk belajar

Lebih terperinci

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN I. Elemen-Elemen Dalam Bahasa Pemrograman Berikut adalah elemen-elemen pada bahasa pemrograman: Berikut adalah element-element pada bahasa pemrograman: 1. Aturan

Lebih terperinci