VHDL adalah bahasa pemodelan perangkat keras yang digunakan untuk memodelkan sistem digital secara fungsional dan perilakunya. VHDL dapat digunakan untuk pengembangan ASIC, memodelkan sistem independen dari teknologi target, dan memodelkan mikrokontroler.
2. Bahasa VHDL adalah bahasa perograman untuk memodelkan
perangkat digital. VHDL telah ditetapkan menjadi salah satu
standar bahasa pemrograman perangkat keras oleh IEEE.
Perangkat keras dalam istilah umum mencakup berbagai jenis
peralatan mulai sistem yang utuh seperti komputer peribadi
sampai perangkat keras sederhana berupa gerbang yang
terdapat dalam IC Komputer. VHDL digunakan untuk:
1. Pengembangan ASIC (Application Spesific Integrated circuit)
2. Memodelkan perilaku sistem bebas dari teknologi targetnya
3. Memodelkan mikro kontroller, koder (decoder), model perilaku
mikroprosesor dan perangkat RAM
3. Contoh di atas menjelaskan gerbang logika dasar and yang
dimodelkan dalam bahasa VHDL berupa sutu persamaan
bolean.
A
B
Q
VHDL : Q <= A and B
4. 9.1 VHDL Selayang Pandang
VHDL adalah kependekan dari Very Hight Speed Integrated
Circuit Hardwere Description Language. Sebuah bahasa untuk
menjelaskan / memodelkan perangkat keras. Instruksi dalam
VHDL dieksekusi secara bersamaan (Concurent) atau
berurutan (sequential)
5. Z <=‘1’ when A = ‘01’ else ‘0’
QA = 01 ?
(a)
A (1)
A (0)
Q
(b)
A (1)
A (0)
Q
(c)
Contoh pemodelan pada VHDL dan proses sentesis selanjutnya:
Gambar (a) Pemodelan, (b) Simulasi (c) Sintesis
6. 9.2 Pengembangan ASIC
Tahapan perancangan perangkat
keras
NetList Gerbang
Simulasi VHDLa
Validasi
Layout
Spesifikasi
Model VHDL
Sintesis
Pengembangan VHDL dimulai dengan
spesifikasi mencakup semua aspek
fungsional dan perilaku pewaktuan
Kode VHDL dapat disimulasikan dan
diperiksa keseluruhan fungsionalitasnya
Deskripsi VHDL akan disentesis jika
model telah sesuai dengan yang
diharapkan . Perangkat lunak sintesis
akanmemilih gerbang atau flip-flop
(sesuai ASIC) untuk menghasilkan
deskripsi fungsional
Simulasi pada level gerbang
dilaksanakan
Model dibangun dengan bantuan elemen
librari ASIC
Delay gerbang dan propagasi dihitung.
Nilai delay dapat dimasukkan dalam
setiap VHDL
7. 9.3 Konsep VHDL
Cara Pengeksekusian Instruksi pada VHDL
Statemen sekuensial: Instruksi instruksi nya dieksekusi
secara berurut, seperti halnya bahasa pemrograman
perangkat lunak biasa. Urutan assigment harus diperhatikan
ketika statement sekuensial digunakan.
Statement bersamaan (Concurent): semua Komponent dan
instruksi aktif terus menerus. Urutan statement tidak terlalu
masalah. Statement concurent cocok untuk memodelkan
perangkat keras paralel.
8. Teknik pemoddelan VHDL
Absraksi memberikan gambaran bagian sistem dengan
tingkat detail yang berbeda. Modul yang hanya diperlukan
untuk simulasi tidak harus dijelaskan secara terperinci seperti
halnya modul yang akan disintesis.
Modulariti memberikan kemudahan bagi perancang untuk
memilah-milah blok fungsi dan untuk menulis satu model
untuk setiap bagian.
Hirarki, perancang dapat membuat rancangan di luar sub
modul, yang mungkin terdiri dari beberapa modul. Setiap
level hirarki mungkin memiliki modul pada level abstraksi
yang berbeda. Submodul model tersebut terlihat pada level
hirarki yang lebih rendah.
9. Abstraksi adalah penyembunyian detail untuk membedakan
antara informasi yang penting dan tidak penting. Suatu model
dikatakan mempunyai abstraksi tertentu jika setiap modulnya
memiliki tingkat abstraksi yang sama. Jika tidak demikian maka
model tersebut merupakan campuran beberapa level.
Prilaku
RTL (Register
Transfer Level)
Logika
Layout
Gambar level abstraksi dalam
perancangan IC
• Deskripsi fungsionalitas, tidak
terdapat clock sistem dan transisi
sinyal, deskripsi dapat disimultan
• Elemen penyimpan dikendalikan
clock sistem, flip-flop digunakan
tersendiri, deskripsi langsung
disentesis
• Rancangan digambarkan sebagai
netlist dengan gerbang logika
(AND,OR,NOT,….) dan flip-flop
• Sel yang berbeda pada teknologi
target ditempatkan pada chip dan
koneksi diurutkan, diperiksa dan
siap untuk diproduksi
10. Modularitas dan Hirarki adalah pemisahan pada beberapa
bagian rancangan dengan tujuan untuk mengurangi
kompleksitas.
Antarmuka Analog
ASIC
/FPG
ACPU
Memori
ASIC
/FPG
A
Gambar ilustrasi (a) Modularitas (b)
Hirarki
(a) (b)
11. 9.4 Bahas VHDL dan Sintaks
Secara umum penulisan kode VHDL tidak Case sensitive artinya
huruf besar dan kecil tidak dibedakan. Statemen, kumpulan
instruksi, dalam VHDL diakhiri titik koma (“:”). Kita bisa membuat
dalam beberapa baris asal pada setiap barisnya tidak ditutup
dengan tanda titik koma. Pada kumpulan element (list), satu
elemen dengan elemen yang lainnya dipisahkan dengan
koma(“,”). Penempatan sinyal digambarkan dengan operator
assigment terbalik(“<=“).
12. Kita dapat membuat penanda (identifier) yang kita definisikan
sendiri. Identifier dapat terdiri dari huruf, bilangan dan garis bawah
(Underscore, “-”) dengan syarat dimulai dengan huruf. Disamping itu
idetifier tidak boleh sama dengan kata kunci yang ada pada VHDL
Contoh kode VHDL sederhana
Signal signal bit: bit; -- contoh signal
Sinyal <= ‘0’, -- mulai dengan ‘0’
‘1’ AFTER 20ns, -- dan bergantian setelah
‘0’ aftEr 20 ns, -- setiap 10 menit
‘1’ AfTer 20 ns;
Pada contoh diatas penulisan sinyal dan SINyal dianggap sama.
Perbedaan huruf besar dan kecil tidak diperhatikan.
13. 9.5 Elemen Struktur VHDL
Bagian-bagian utama dalam VHDL adalah:
1. Entitas (Entity), antarmuka yang berisi definisi antar port keluaran/masukan.
2. Arsitektur (Archictectur), berisi penjelasan fungsi modul yang bersesuaian
3. Konfigurasi (Configuration), digunakan untuk tujuan simulasi
4. Paket (Pakage), berisi definisi tipe data, konstanta dan subprogram yang
umum digunakan
15. 9.6 Entitas
Pada bagian ini akan dibahas bagaimana tahapan
pendefinisian sebuah penjumlah lengkap (Full-adder) yang
terdiri dari dua half-adder dan gerbang OR.
Antarmuka yang menghubungkan antar modul dan
lingkungannya ditulis dalam deklarasi entitas yang dimulai
dengan kata kunci ‘entity’. Kemudian dikuti oleh definisi
pengguna, nama yang jelas, dalam contoh ini: HALF_ADDER.
Penjelasan antarmuka ditempatkan antara dua kata kunci ‘is’
dan akhir statemen entitas yang terdiri dari kata kunci ‘end’
dan nama entitasnya. Dalam standar VHDL’93 kata kunci
’entity’ dapat diulang setelah kata kunci ‘end’ agar terlihat
lebih konsisten
16. Nama sinyal baik yang masuk atau yang keluar dan tipe data
sinyal didefinisikan dalam statemen port yang dimulai dengan
kata kunci ‘port’. Kumpulan port dikurung diantara sepasang
tanda ‘(‘ (kurung buka) dan ‘)’ (kurung tutup). Untuk setiap
kumpulan elemen nama port ditulis diawal diikuti oleh ‘:’ (titik
dua) kemudian diikuti oleh mode port dan tipe datanya. Dalam
kumpulan elemen, tanda ‘;’ (titik koma) digunakan untuk
memisahkan antar elemen-elemen, bukan akhir statemen.
Akhir daftar elemen tidak diikuti oleh ‘;’.
17. Bebrapa port dengan mode dan tipe data yang sama dapat
dideklarasi dengan satu statemen port di mana port-nya
dipisahkan dengan ‘,’ (koma). Mode port mendefinisikan aliran
data (in: input, misal sinyal yang mempengaruhi perilaku
modul; out: output, misal sinyal yang dihasilkan oleh modul).
Tipe data menentukan range sinyal untuk sinyal selama
simulasi.
18. entity HALF_ADDER is
port(
A, B: in bit;
SUM, CARRY: out bit);
end HALF_ADDER;
-- VHDL’93 end entity HALF ADDER;
entity ADDER is
port(
A, B: in integer range 0 to 3
SUM: out integer range 0 to 3
CARRY: out bit);
end ADDER
????
SUM
CARRY
A
B