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 jenis bahasa HDL yang akan dibahas : 1. Verilog 2. VHDL - Verilog HDL / VHDL adalah Bahasa Pendeskripsi Perangkat Keras / Hardware Description Language (HDL). Bahasa VHDL 1
Verilog HDL Struktur pemrograman Verilog sangat sederhana Contoh 1: deskripsi sebuah full adder module full_adder (c_out, s, a, b, c); input a, b, c; a wire a, b, c; b c output c_out, s; wire c_out, s; wire w1, w2, w3; xor x1(w1, a, b); xor x2(s, w1, c); nand n1(w2, a, b); nand n2(w3, w1, c); nand n3(c_out, w3, w2); endmodule Bahasa VHDL 2 s c out
Contoh 2: model D flip-flop D Q module d_ff (q, ck, D, CLR); input ck, D, CLR; output q; reg q; always @ (neged ck neged CLR) begin if(!clr) q <= 0; else q <= D; end endmodule ck CLR Bahasa VHDL 3
Contoh 3: 4 bit Adder module adder_4_bit (c, sum, a, b); input a, b; output c, sum; wire [3:0] a, b, sum; wire c0, c1, c2, c; full_adder f1(c0, sum[0], a[0], b[0], b0); full_adder f2(c1, sum[1], a[1], b[1], c0); full_adder f3(c2, sum[2], a[2], b[2], c1); full_adder f4(c3, sum[3], a[3], b[3], c2); endmodule Fungsi full_adder() ada di contoh 1 Bahasa VHDL 4
VHDL Struktur Pemrograman VHDL Entity dan Architecture Modeling: Behavior, Structure dan data Flow Bahasa VHDL 5
Istilah-istilah VHDL Entity - blok bentuk bangunan dasar sebuah disain - biasanya diletakkan di bagian paling atas program - jika program berbentuk hierarchical, maka entity di level yang lebih rendah merupakan bagian dari entity dengan level yang lebih tinggi Architecture - mendeskripsikan lingkungan entity - entity tunggal dapat memiliki banyak arsitektur - arsitektur bisa berupa model behaviour atau struktural Driver - merupakan sumber sinyal Bahasa VHDL 6
Configuration - statement configuration digunakan untuk mengikat komponen dengan pasangan entity-architecture - Sebuah configuration bisa dinyatakan sebagai part list dari sebuah disain Package - merupakan kumpulan dari tipe-tipe data dan subprogram-subprogram (fungsi) yang digunakan dalam sebuah desain - Package berisi tool-tool untuk membangun sebuah desain Process - Merupakan unit eksekusi VHDL - Semua operasi yang ditampilkan dalam deskripsi VHDL menggunakan satubahasa atauvhdl lebih process 7
Entity Contoh : Deskripsi Multiplexer Entity mux is PORT(a, b, c, d : IN BIT; s0, s1 : OUT BIT; x : OUT BIT); END mux; Bahasa VHDL 8
Architecture Contoh : behaviour dari mux Architecture dataflow OF mux IS SIGNAL seleksi : INTEGER; BEGIN seleksi <= 0 when s0 = 0 AND s1 = 0 ELSE 1 when s0 = 1 AND s1 = 0 ELSE 2 when s0 = 0 AND s1 = 1 ELSE 3; x <= a when seleksi = 0 ELSE b when seleksi = 1 ELSE c when seleksi = 2 ELSE d; END dataflow; Bahasa VHDL 9
Program lengkap untuk deskripsi mux 4x1 : Library ieee; Use ieee.std_logic_1164.all; Entity mux is PORT(a, b, c, d : IN BIT; s0, s1 : IN BIT; x : OUT BIT); END mux; Architecture dataflow OF mux IS SIGNAL seleksi : INTEGER; BEGIN seleksi <= 0 when s0 = 0 AND s1 = 0 ELSE 1 when s0 = 1 AND s1 = 0 ELSE 2 when s0 = 0 AND s1 = 1 ELSE 3; x <= a when seleksi = 0 ELSE b when seleksi = 1 ELSE c when seleksi = 2 ELSE d; END dataflow; Bahasa VHDL 10
Menggunakan Bahasa Pemrograman VHDL dengan software WARP 1. Install software WARP ver 4 2. Akan didapatkan 3 file :Galaxy, Nova dan Warp Toolbar 3. Galaxy digunakan untuk editor program yang ditulis 4. Nova digunakan untuk proses simulasi setelah didapatkan file JEDEC-nya(hasil dari compiling di Galaxy) Bahasa VHDL 11
Memulai Editor Galaxy Memulai file baru Meng-compile current file Jenis device yang tersedia Bahasa VHDL 12
Tampilan Editor Galaxy Smart compile project Jika seluruh program sudah diketik, simpan dengan nama baru. Ekstensi yang dihasilkan adalah *.vhd. File ini dapat di-compile dengan fasilitas smart compile project Bahasa VHDL 13
Untuk mendapatkan file JEDEC, masukkan file *.vhd yang sudah dibuat tadi ke menu utama. File Add pilih nama file (klik 2x) OK Pada tombol Set Top klik nama file yang akan dicari JEDEC-nya Compile dengan fasilitas tombol SMART Bahasa VHDL 14
Menu proses compile file.vhd. Pada menu ini ditunjukkan kesalahan-kesalahan syntax pada program yang ditulis. Jika ada kesalahan syntax, kembali ke program.vhd tadi, betulkan. Ulangi compile lagi, sampai benar-benar didapatkan file JEDECnya (dengan ekstensi *.jed) Bahasa VHDL 15
Tutup proses compile JEDEC. Panggil program NOVA untuk simulasi : Tool Nova Tampilan awal program Nova Bahasa VHDL 16
Tampilan Timing Diagram pada Nova : Input data Input selektor output Bahasa VHDL 17
Nilai dari data-data input dapat dibuat dengan memberi nilai logika 0 atau 1 pada masing-masing input. Pada tombol input, klik 1x sampai keluar garis putus-putus, letakkan cursor pada garis diagram, drag ke arah kanan sepanjang yang diinginkan. Akan muncul warna biru. Ketik 1 atau 0 sehingga garis akan menunjukkan garis logika 1 atau 0. Lakukan untuk semua tombol input. Untuk melakukan simulasi : Simulate execute Akan muncul hasil simulasi pada diagram output (berwarna merah) Bahasa VHDL 18
Hasil simulasi mux 4x1 pada NOVA Bahasa VHDL 19