Anda di halaman 1dari 10

Teori Umum VHDL

Definisi
VHDL merupakan sebuah bahasa pemrograman yang digunakan untuk mendeskripsikan hardware. VHDL
merupakan singkatan dari VHSIC (Very High Speed Integrated Circuit) Hardware Description Language. Versi
pertamanya adalah VHDL 87 yang kemudian diperbarui lagi dan disebut VHDL 93. VHDL merupakan bahasa
pendeskripsian hardware pertama yang distandardisasi oleh Institute of Electrical and electronics
Engeneers, melaui standard IEEE 1076. Kemudian sebuah standard tambahan, IEEE 1164 untuk mengenalkan
nilai system logic. Manfaat utama dari VHDL ketika digunakan untuk mendesain sebuah sistem adalah
kemampuannya untuk memodelkan sistem tersebut serta mensimulasikannya sebelum synthesis
toolsmentranslasikannya ke hardware.

Key Points :
• VHDL singkatan dari VHSIC Hardware Description Language.
• VHDL dapat digunakan untuk menggambarkan desain elektronika digital pada beberapa tingkat abstraksi, dari
skala tingkat algoritma hingga tingkat gate.
• VHDL pertama kali dikembangkan untuk Departemen Pertahanan US.
• Distandarisasi pertama kali oleh IEEE pada tahun 1987, dengan nama IEEE Std 1076-1987.
• Distandarisasi ulang pada tahun 1993, dengan nama IEEE Std 1076-1993.
• Sembilan nilai logika paket, disebut STD_LOGIC_1164, distandarisasi oleh IEEE untuk membantu di dalam
interoperability model VHDL. Standar ini disebut IEEE Std 1164-1993.
• Desain digital digambarkan dalam VHDL dengan menggunakan external view dengan satu atau
beberapa internal view.
• External view menyatakan interface dari rancangan.
• Internal view menyatakan fungsi atau struktur dari rancangan. Suatu rancangan mungkin memiliki satu atau
lebih internal view.
• Desain digital dapat juga digambarkan dalam VHDL dengan menggunakan beberapa external view yang
berbeda.
• Tiap external view dan salah satu darinya berkaitan dengan internal view, yang secara bersama-sama
merupakan representasi tertentu daridevice, disebut dengan entity design.

Sejarah
VHDL pada awalnya dikembangkan di atas perintah dari AS Departemen Pertahanan dalam rangka untuk
mendokumentasikan perilaku Asics bahwa perusahaan pemasok termasuk peralatan. Artinya, VHDL ini
dikembangkan sebagai alternatif besar, kompleks manual yang menjadi subyek pelaksanaan rincian spesifik.
Gagasan untuk dapat mensimulasikan dokumentasi ini jelas sangat menarik sehingga simulator
logika dikembangkan yang dapat membaca file VHDL. Langkah selanjutnya adalah pengembangan sintesis
logika alat yang membaca VHDL, dan output definisi tentang pelaksanaan fisik rangkaian. Alat sintesis modern dapat
mengekstrak RAM, counter, dan aritmatika dari blok kode, dan melaksanakannya sesuai dengan apa yang user
menentukan. Dengan demikian, kode VHDL yang sama dapat disintesis berbeda untuk daerah terendah,
terendah daya konsumsi, kecepatan clock tertinggi, atau persyaratan lain.

VHDL meminjam berat dari bahasa pemrograman Ada dalam kedua konsep (misalnya, potongan notasi untuk
mengindeks bagian dari array satu dimensi) dan sintaks. VHDL memiliki konstruksi untuk
menangani paralelisme yang melekat dalam desain perangkat keras, tetapi ini konstruksi (proses) berbeda dalam
sintaks dari konstruksi paralel di Ada (tugas). Seperti Ada, VHDL adalah sangat diketik dan tidak sensitif huruf. Ada
banyak fitur VHDL yang tidak ditemukan di Ada, seperti yang diperpanjang operator Boole set
termasuk nand danatau, untuk mewakili langsung operasi yang umum di hardware. VHDL array juga memungkinkan
untuk diindeks di kedua arah (naik atau turun) karena kedua konvensi digunakan dalam perangkat keras, sedangkan
Ada (seperti kebanyakan bahasa pemrograman) menyediakan hanya pengindeksan mendaki. Alasan kesamaan
antara kedua bahasa adalah bahwa Departemen Pertahanan yang diperlukan sebanyak mungkin sintaks harus
didasarkan pada Ada, dalam rangka untuk menghindari re-inventing konsep-konsep yang sudah benar-benar teruji
dalam pengembangan Ada.

Versi awal VHDL, dirancang untuk IEEE standard 1076-1987, termasuk berbagai jenis data, termasuk
numerik (integer dan real), logis (bitdan boolean), karakter dan waktu, ditambah array dari bit yang
disebut bit_vector dan karakter disebut string. Suatu masalah tidak dipecahkan oleh edisi ini, bagaimanapun, adalah
"multi-nilai logika", di mana kekuatan sinyal drive (none, lemah atau kuat) dan nilai-nilai yang tidak diketahui juga
dipertimbangkan. Hal ini membutuhkan standar IEEE 1164, yang mendefinisikan 9-nilai logika jenis: skalar dan
vektor std_ulogic versi std_ulogic_vector.

Edisi kedua IEEE 1076, pada tahun 1993, membuat sintaks lebih konsisten, diperbolehkan lebih fleksibel dalam
penamaan, memperluascharacter untuk membolehkan ISO jenis-8859-1 printable karakter,
menambahkan xnor operator. Perubahan kecil dalam standar (2000 dan 2002) menambahkan gagasan yang
dilindungi jenis (mirip dengan konsep kelas di C + +) dan menghapus beberapa pembatasan dari pemetaan port
aturan.
Selain standar IEEE 1164, beberapa standar anak diperkenalkan untuk memperluas fungsi bahasa. 1.076,2 standar
IEEE menambahkan penanganan lebih baik nyata dan tipe data kompleks.1.076,3 standar IEEE
memperkenalkan signed dan unsigned jenis untuk memfasilitasi operasi aritmatika pada vektor. 1.076,1 standar
IEEE (dikenal sebagai VHDL-AMS) yang disediakan analog dan sinyal campuran desain sirkuit ekstensi.

Beberapa standar lain yang mendukung penggunaan VHDL lebih luas, terutama VITAL (VHDL Inisiatif Menuju ASIC
Library) danmicrowave desain sirkuit ekstensi. Pada bulan Juni 2006, Komite Teknis VHDL Accellera (didelegasikan
oleh IEEE untuk bekerja pada update berikutnya dari standar) yang disetujui sehingga disebut Rancangan 3,0 dari
VHDL-2006. Tetap menjaga kompatibilitas penuh dengan versi lama, standar yang diusulkan ini menyediakan
banyak ekstensi yang membuat tulisan dan mengelola kode VHDL lebih mudah. Perubahan penting termasuk anak
penggabungan standar (1164, 1.076,2, 1.076,3) ke 1076 utama standar, yang diperpanjang set operator, lebih
fleksibel sintaks dari 'kasus' dan 'menghasilkan' pernyataan, penggabungan VHPI (antarmuka ke C / C + + bahasa)
dan subset dari PSL (Properti Specification Language). Perubahan-perubahan ini harus meningkatkan kualitas
synthesizable kode VHDL, membuat testbenches lebih fleksibel, dan memungkinkan penggunaan VHDL lebih luas
untuk tingkat sistem deskripsi.

Pada bulan Februari 2008, VHDL disetujui Accellera juga 4,0 informal dikenal sebagai VHDL 2008, yang ditujukan
lebih dari 90 masalah ditemukan selama periode percobaan untuk versi 3.0 dan termasuk jenis generik ditingkatkan.
Pada tahun 2008, 4,0 VHDL Accellera dirilis ke IEEE untuk pemungutan suara untuk dimasukkan ke dalam IEEE
1076-2008. Para standar VHDL IEEE 1076-2008 telah disetujui oleh REVCOM pada September 2008.

Kegunaan
Beberapa kemampuan VHDL antara lain :
- Dapat digunakan sebagai exchange medium.
- Mendukung hirarki.
- Mendukung metodologi top-down dan bottom-up.
- Test bench dapat dituliskan menggunakan bahasa ini.
- Tipe data baru dapat disebutkan

Eleman Dasar Bahasa


• Dua jenis identifier: basic identifier dan extended identifier.
• Extended identifier ditulis diantara backslash serta merupakan case sensitive.
• Comment dapat dimulai dimana saja pada suatu baris; diawali dengan dua garis putus-putus serta berakhir
pada akhir baris.
• Keyword merupakan reserved word dan tidak dapat digunakan sebagai identifier.
• Klasifikasi data object: constant, signal, variable dan file.
• Object declaration menyatakan klasifikasi data object; tipe serta harga awalnya jika ada. Untuk file, object
declaration menyatakan jenis file, read-only, write-only atau append-only.
• Type adalah kumpulan nilai dimana operasi tertentu diijinkan.
• Jenis-jenis type: enumeration, integer, floating point, array, record, access, file, physical, dan incomplete.
• Literal adalah suatu nilai dari type.
• Subtype adalah type dengan suatu constraint.
• Predefined operator yang ada: logical, relational, shift, adding, multiplying dan miscellaneous operator.
Struktur Kode VHDL
Struktur dasar dari kode VHDL ditunjukkan pada gambar di bawah ini berikut :

1. Library : berisi semua library yang digunakan pada design.


contoh : ieee, std, work.
2. Entity : spesikfikasi pin input dan output pada desain rangkaian.
3. Architecture : berisi kode utama VHDL yang menggambarkan bagaimana rangkaian bekerja.

Desain
VHDL adalah cukup untuk keperluan umum bahasa, dan tidak memerlukan simulator yang menjalankan kode. Ada
banyak kompiler VHDL, yang dieksekusi membangun binari. Dapat membaca dan menulis file pada komputer host,
sehingga program VHDL dapat ditulis yang menghasilkan program VHDL lain dimasukkan dalam desain sedang
dikembangkan. Karena ini untuk keperluan umum alam, dimungkinkan untuk menggunakan VHDL untuk
menulis testbench yang memverifikasi fungsionalitas dari desain menggunakan host file pada komputer untuk
mendefinisikan rangsangan, berinteraksi dengan pengguna, dan membandingkan hasilnya dengan yang diharapkan.

Hal ini relatif mudah bagi pengembang yang belum berpengalaman untuk menghasilkan kode yang mensimulasikan
berhasil tetapi tidak dapat disintesis menjadi perangkat nyata, atau terlalu besar untuk menjadi praktis. Perangkap
tertentu adalah produksi kebetulan kait transparan daripada D-type sandal jepit sebagai elemen penyimpanan.
VHDL bukan kasus bahasa sensitif. Satu dapat merancang hardware dalam VHDL IDE (seperti Xilinx atau Quartus)
untuk menghasilkanRTL skematik rangkaian yang diinginkan. Setelah itu, skema yang dihasilkan dapat diverifikasi
dengan menggunakan perangkat lunak simulasi (seperti ModelSim) yang menunjukkan bentuk gelombang input dan
output dari rangkaian setelah menghasilkan testbench yang sesuai. Menghasilkan testbench yang tepat untuk sirkuit
tertentu atau kode VHDL, input harus ditetapkan dengan benar. Sebagai contoh, untuk jam input, proses loop atau
pernyataan berulang-ulang diperlukan.

Keuntungan kunci VHDL bila digunakan untuk desain sistem ini adalah memungkinkan perilaku sistem yang
diperlukan untuk dilukiskan (model) dan diverifikasi (simulasi) sebelum alat sintesis menerjemahkan desain ke dalam
real hardware (gerbang dan kabel). Manfaat lain adalah bahwa VHDL memungkinkan deskripsi suatu sistem
bersamaan (banyak bagian, masing-masing dengan sub-perilaku, bekerja bersama-sama pada waktu yang sama).
VHDL adalah bahasa Dataflow, tidak seperti komputasi prosedural bahasa seperti BASIC, C, dan kode perakitan,
yang semuanya berjalan secara berurutan, satu instruksi pada satu waktu.

Hal terakhir adalah ketika sebuah model VHDL diterjemahkan ke dalam "gerbang dan kabel" yang dipetakan ke
perangkat logika yang dapat diprogram seperti CPLD atau FPGA, maka hardware yang sebenarnya sedang
dikonfigurasi, bukan kode VHDL yang "dieksekusi "seolah-olah pada beberapa bentuk sebuah chip prosesor.
PROGRAM VHDL
Pasti untuk para programer atau mahasiswa elektro dan informatika sudah tidak asing dengan VHDL
(Very high speed integrated Hardware Description Language) adalah sebuah bahasa pemrograman
VHSIC (Very High Speed Integrated Circuit) yang dikembangkan oleh IEEE (Institute of Electrical
and Electronic Engineering).

bahasa pemrograman ini adalah bahasa yang digunakan untuk menggambarkan/ menjelaskan/
memodelkan (mensimulasikan dan menerjemahkan) perilaku dari dari suatu desain rangkaian digital
agar menemukan bentuk yang sesuai(yang diinginkan) untuk diimplementasi pada hardware pada
kehidupan nyata. Cara memahaminya nggak jauh beda dengan C++ atau Pascal, namun tidak seperti
C++ yang sensitif dengan huruf besar dan kecil, bahasa VHDL tidak terlalu mempermasalahkannya.

VHDL adalah singkatan yang dipersingkat karena aslinya adalah VHSIC HDL. Program VHIC
(Very Highspeed Integrated Circuit) dikembangkan akhir tahun 1970-an sampai awal 1980-an,
berdasarkan sumber dari Universitas Waterloo :

Alat yang sudah ada (pada waktu itu tahun 1980, yaitu Ada programming language) sudah tidak
sanggup untuk membuat desain hardware yang lebih kompleks sehingga akhirnya dibuatlah
penggantinya dengan nama VHDL.

Inilah evolusi berdasarkan sumber dari Universitas Waterloo

1981, VHDL diusulkan sebagai bahasa deskripsi hardware

1986, VHDL diusulkan sebagai standar IEEE

1987, Standar pertama VHDL (IEEE-1076-1987)

1993, Standar VHDL direvisi (IEEE-1076-1993)

2002, Standar VHDL sekarang (IEEE-1076-2002), dan

Sekarang digunakan dengan luas oleh kalangan industri dan akademi, dengan penambahan IEEE-
1164-1993 untuk mengenalkan nilai sistem logika IEEE adalah singkatan dari Institut of Electrical
and Electronics Engineers, Institut inilah yang melakukan standarisasi VHDL.

PENGERTIAN-PENGERTIAN PENTING dalam VHDL

Simulation/simulasi

Synthesis/sintesa

FPGAs(Field-Programmable Gate Arrays)

ASICs(Aplication-Specific Integrated Circuits)

VHDL biasanya digunakan untuk menulis model teks yang menggambarkan rangkaian logika.
Seperti model diproses oleh program sintesis, hanya jika itu adalah bagian dari desain logika. Sebuah
program simulasi digunakan untuk menguji desain logika dengan menggunakan model simulasi
untuk mewakili sirkuit logika yang antarmuka ke desain. Koleksi model simulasi ini biasanya disebut
testbench.

VHDL memiliki konstruksi untuk menangani paralelisme yang melekat dalam desain perangkat
keras, tetapi konstruksi (proses) berbeda dalam sintaks dari paralel konstruksi di Ada (tugas). Seperti
Ada, VHDL sangat diketik dan tidak peka . Dalam rangka untuk secara langsung merupakan usaha
yang umum di hardware, ada banyak fitur dari VHDL yang tidak ditemukan di Ada, seperti set
diperpanjang operator Boolean termasuk nand dan juga. VHDL juga memungkinkan array untuk
diindeks di ascending atau descending arah, kedua konvensi digunakan dalam perangkat keras,
sedangkan di Ada dan bahasa pemrograman yang paling hanya mengindeks ascending tersedia.

VHDL memiliki file input dan kemampuan output, dan dapat digunakan sebagai bahasa untuk
keperluan umum untuk pengolahan teks, tetapi file yang lebih sering digunakan oleh testbench
simulasi untuk data stimulus atau verifikasi. Ada beberapa compiler VHDL yang membangun binari
executable. Dalam kasus ini, ada kemungkinan untuk menggunakan VHDL untuk menulis testbench
untuk memverifikasi fungsi dari desain menggunakan file pada komputer host untuk menentukan
rangsangan, untuk berinteraksi dengan pengguna, dan membandingkan hasilnya dengan yang
diharapkan. Namun, desainer yang paling meninggalkan pekerjaan ini ke simulator.
Hal ini relatif mudah bagi developer berpengalaman untuk menghasilkan kode yang mensimulasikan
berhasil tetapi itu tidak dapat disintesis menjadi perangkat yang nyata, atau terlalu besar untuk
menjadi praktis. Satu khususnya perangkap adalah produksi disengaja transparan kait daripada tipe-D
sandal jepit sebagai elemen penyimpanan.

Satu dapat desain hardware di IDE VHDL (untuk implementasi FPGA seperti Xilinx ISE, Altera
Quartus, Synopsys Synplify atau Mentor Graphics Designer HDL) untuk menghasilkan RTL
skematik dari rangkaian yang diinginkan. Setelah itu, skema yang dihasilkan dapat diverifikasi
menggunakan software simulasi yang menunjukkan bentuk gelombang input dan output dari sirkuit
setelah menghasilkan testbench sesuai. Untuk menghasilkan testbench sesuai untuk sirkuit tertentu
atau kode VHDL, masukan harus didefinisikan dengan benar. Sebagai contoh, untuk input jam,
proses loop atau pernyataan iterasi diperlukan.

Titik akhir adalah bahwa ketika sebuah model VHDL diterjemahkan ke dalam "gerbang dan kabel"
yang dipetakan ke perangkat programmable logic seperti CPLD atau FPGA , maka itu adalah
perangkat keras yang sebenarnya sedang diatur, daripada kode VHDL yang "dieksekusi "seolah-olah
pada beberapa bentuk chip prosesor.

Dalam kebanyakan kasus, keputusan memilih dan menggunakan kode VHDL daripada kode Verilog
atau SystemC, sangat tergantung pada pilihan perancang itu sendiri dan lebih kepada ketersediaan
software pendukung serta kebutuhan perusahaan.

Lebih dari satu dekade, terjadi perdebatan panjang yang tek berkesudahan diantara komunitas
pengguna VHDL dengan Verilog. Mereka berdebat mengenai kode mana yang terbaik untuk
digunakan dan kode apa yang lebih lengkap dalam hal aturan penulisannya. Memang diantara kedua
kode tersebut memiliki perbedaan yang cukup signifikan. Namun secara filosofi konsep, perbedaan
dasar dari VHDL dengan Verilog adalah mengenai konteks dari kedua bahasa itu sendiri. Verilog
berasal dari tradisi “bottom-up” yang telah sering digunakan dalam industri IC dalam hal rancangan
dasar IC. Sedangkan kode VHDL dikembangkan lebih kepada persepektif “top-down”. Tentu saja,
banyak perbedaan umum dan luas dalam konteks saat ini. Namun, secara jelas dan nyata,
perbedaannya dapat terlihat pada syntax dasar dan metode dari kedua kode tersebut.

Hal tersebut memang bukanlah keunikan atau ciri khas VHDL. Namun, pada kenyataannya kode
Verilog juga memiliki konsep sama walaupun hanya terdapat dalam sebuah “module”. Meskipun
demikian, keungulan itu secara eksplisit didefinisikan dalam VHDL dan secara praktis digunakan
bersama oleh rancangan multi- leveldalam VHDL. Pembagian sebuah model ke dalam beberapa
bagian juga merupakan keuggulan lain dari VHDL. Misalnya, bagian interface (dalam VHDL
dikenal sebagai “entity’) dan bagian kelakuan atau behaviour(dalam VHDL dikenal sebagai
“architecture”). Bagian-bagian tersebut adalah pendekatan praktis yang luar biasa untuk bentuk
model yang memiliki multiple behaviour dalam sebuah interface. Selain itu bentuk model tersebut
memungkinkan terjadi pertukaran dan implementasi multiple secara terus menerus. Hal inilah salah
satu pembeda VHDL dengan Verilog.

Entity merupakan salah satu contoh bentuk satu kesatuan dan terpisah dengan bagian yang lain.
Untuk selengkapnya, beberapa uraian berikut akan menjelaskan tentang entity serta hal-hal yang
terkait di dalamnya. untuk lebih jelas mengenai Entity silakan.
Pengertian Entity pada VHDL. Entity memberikan arti tentang bagaimana sebuah bagian
rancangan dideskripsikan di VHDL dalam hubungannya dengan model VHDL lain dan juga
memberikan nama untuk model tersebut. Di dalam entityjuga diperbolehkan untuk mendefinisikan
beberapa parameter yang mengambil model menggunakan hierarki. Kerangka dasar untuk sebuah
entity digambarkan sebagai berikut :

entity <name> is
….
entity <name>;

Misalkan sebuah entity diberi nama “test”, maka kerangka entity tersebut akan menjadi :

entity test is

end entity test;

atau

entity test is

end test;
Membuat entity yang memberikan gambaran port input dan output pada komponen yang akan kita
buat. Misal kita akan membuat rangkaian/komponen yang kita beri nama “tutor_blog”, komponen ini
menerima input yang bernama “input” yang berukuran 2 bit, kemudian “clock”, “reset”, dan
“selector” yang semuanya 1 bit. Output pada komponen ini bernama “output” yang berukuran 8 bit.
Gambar komponennya adalah beserta contoh penulisan ENTITY-nya sebagai berikut:

--deklarasi entity, port input dan output

ENTITY blog_tutor IS

PORT (

--input

input : IN STD_LOGIC_VECTOR(1 DOWNTO 0); --2 bit

clock : IN STD_LOGIC;

reset : IN STD_LOGIC;

selector: IN STD_LOGIC;

--output

output : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) --8 bit

);

END blog_tutor;

Penjelasan dari code di atas, kata “ENTITY” diikuti dengan nama komponen yang kita buat
sekaligus nama file dot vhd yang kita buat, disini diberi nama “blog_tutor” kemudian diikuti kata
“IS”. Kali ini tidak saya bahas mengenai “GENERIC”, jadi setelah kata “IS”, diikuti dengan kata
“PORT” dan kurung buka, setelah itu baru kita tulis nama input dan output dari komponen yang kita
buat. Tanda yang diawali dengan “- -” akan dianggap comment dan tidak akan berpengaruh apapun.
Setelah itu kita tulis nama input dan output, pada code di atas ditulis nama input/output diikuti tanda
titik dua (:), setelah itu kata “IN” atau “OUT”, kata “IN” jika merupakan input dan “OUT” jika
merupakan output. Setelah kata “IN”/”OUT” dituliskan tipe data-nya di contoh di atas tipenya ada
yang STD_LOGIC dan STD_LOGIC_VECTOR yaitu array dari STD_LOGIC, misal ukurannya 8
bit maka dituliskan (7 DOWNTO 0), misal 2 bit dituliskan (1 DOWNTO 0). Setelah itu ditutup
dengan kurung tutup “)” dan tanda titik koma (;) lalu kata END nama_komponen. Perlu diingat
bahwa nama port input/output atau signal/variabel tidak boleh sama dengan kata yang sudah terdapat
pada VHDL misal IN, OUT, SELECT, IF, ELSE, ALL dsb. Selain STD_LOGIC, ada tipe yang lain
yaitu integer, character dan real. Selanjutnya dapat melihat menggabungkan entity secara bersamaan
dengan PORTS

Anda mungkin juga menyukai