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).
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
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
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
Bahasa VHDL 5
VHDL
• Entity dan Architecture
• Modeling: Behavior ,
Structure dan data Flow
Struktur Pemrograman VHDL
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
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
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;
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;
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;
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)
Bahasa VHDL 12
Memulai Editor Galaxy
Memulai file baru
Meng-compile
current file
Jenis device
yang tersedia
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
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
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)
Bahasa VHDL 16
Tutup proses compile JEDEC.
Panggil program NOVA untuk simulasi : Tool Æ Nova
Tampilan awal program Nova
Bahasa VHDL 17
Tampilan Timing Diagram pada Nova :
Input data
Input
selektor
output
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)
Bahasa VHDL 19
Hasil simulasi mux 4x1 pada NOVA

Bahasa pemrograman vhdl

  • 1.
    Bahasa VHDL 1 BAHASAPEMROGRAMAN 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 VerilogHDL 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 Contoh2: 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 Contoh3: 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-istilahVHDL 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 Programlengkap 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 MenggunakanBahasa 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 MemulaiEditor Galaxy Memulai file baru Meng-compile current file Jenis device yang tersedia
  • 13.
    Bahasa VHDL 13 TampilanEditor 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 Untukmendapatkan 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 Menuproses 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 Tutupproses compile JEDEC. Panggil program NOVA untuk simulasi : Tool Æ Nova Tampilan awal program Nova
  • 17.
    Bahasa VHDL 17 TampilanTiming Diagram pada Nova : Input data Input selektor output
  • 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)
  • 19.
    Bahasa VHDL 19 Hasilsimulasi mux 4x1 pada NOVA