VHDL merupakan bahasa pemrograman yang digunakan untuk mendeskripsikan sistem digital seperti komputer. Terdapat dua jenis bahasa HDL yaitu Verilog dan VHDL. VHDL memiliki entity dan architecture yang digunakan untuk mendefinisikan komponen dan perilakunya.
1. Bahasa VHDL 1
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).
2. Bahasa VHDL 2
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;
wire a, 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
cout
s
b
a
c
3. Bahasa VHDL 3
Contoh 2: model D flip-flop
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
D Q
4. Bahasa VHDL 4
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
5. Bahasa VHDL 5
VHDL
• Entity dan Architecture
• Modeling: Behavior ,
Structure dan data Flow
Struktur Pemrograman VHDL
6. Bahasa VHDL 6
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
7. Bahasa VHDL 7
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 satu atau lebih process
8. Bahasa VHDL 8
Entity
Contoh : Deskripsi Multiplexer
Entity mux is
PORT(a, b, c, d : IN BIT;
s0, s1 : OUT BIT;
x : OUT BIT);
END mux;
9. Bahasa VHDL 9
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;
10. Bahasa VHDL 10
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;
11. Bahasa VHDL 11
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)
12. Bahasa VHDL 12
Memulai Editor Galaxy
Memulai file baru
Meng-compile
current file
Jenis device
yang tersedia
13. Bahasa VHDL 13
Tampilan Editor Galaxy
Jika seluruh program sudah diketik, simpan dengan nama baru.
Ekstensi yang dihasilkan adalah *.vhd.
File ini dapat di-compile dengan fasilitas “smart compile project”
Smart compile project
14. Bahasa VHDL 14
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
15. Bahasa VHDL 15
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 JEDEC-
nya (dengan ekstensi *.jed)
16. Bahasa VHDL 16
Tutup proses compile JEDEC.
Panggil program NOVA untuk simulasi : Tool Æ Nova
Tampilan awal program Nova
18. Bahasa VHDL 18
• 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)