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 b wire a, b, c; 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); Bahasa VHDL endmodule
s
cout
2
Contoh 2: model D flip-flop
D
Q
ck module d_ff (q, ck, D, CLR); CLR input ck, D, CLR; output q; reg q; always @ (neged ck || neged CLR) begin if(!CLR) q <= 0; else q <= D; end endmodule Bahasa VHDL
3
Contoh 3: 4 bit Adder module adder_4_bit (c, sum, a, input a, b; output c, sum; wire [3:0] a, b, sum; wire c0, c1, c2, c; full_adder f1(c0, sum[0], full_adder f2(c1, sum[1], full_adder f3(c2, sum[2], full_adder f4(c3, sum[3], endmodule
b);
a[0], a[1], a[2], a[3],
b[0],‘b0); b[1], c0); b[2], c1); b[3], c2);
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 7 menggunakan satuBahasa atauVHDL lebih process
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; Bahasa VHDL 10 END dataflow;
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