Sie sind auf Seite 1von 5

Belajar VHDL

FPGA, VHDL

Tulisan ini akan mengulas sekelumit tentang


kode yang sering digunakan di dalam FPGA.
Kode tersebut adalah VHDL (Very high speed
integrated Hardwere Description Language).
Tulisan ini dan beberapa tulisan mendatang
akan membahas konsep penting dalam VHDL
serta aturan penulisan (syntax) kode tersebut.
Konsep serta syntax banyak diperlukan untuk
mengerti bagaimana rancangan VHDL sebagai
bagian dari pemrograman FPGA. 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.

Selanjutnya, tanpa menurunkan kualitas tulisan dengan membahas perbedaan diantara VHDL dan
Verilog, satu hal penting tentang keunggulan VHDL adalah kemampuannya untuk menggunakan
gabungan level dari model yang memiliki arsitektur yang berbeda seperti ditunjukkan sebagai
berikut :

Model VHDL dengan Arsitektur yang Berbeda

http://ndoWare.com
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.

Definisi Entity

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;

Ports

Sebuah cara atau metode untuk menghubungkan entity secara bersama adalah
menggunakan PORTS. Hal ini didefinisikan bahwa entity menggunakan metode sebagai berikut:

port (

…list of port declarations…

);

http://ndoWare.com
Deklrasi port ini mendefinisikan jenis dari koneksi dan arah yang sesuai. Misalnya,
deklarasi port untuk sebuah input bit adalah 1, maka digambarkan sebagai berikut :

in1 : in bit;

Dan jika model tersebut memiliki 2 input (in1 dan in2) dan satu output (out1), maka
deklarasi ports dapat digambarkan berikut:

port (

in1, in2 : in bit;

out1 : out bit

);

Dengan menngunakan ports maka titik koneksi diantara entities akan berlangsung dengan efektif
dalam hal proses koneksi entities satu sama lain. Selain itu, dengan menggunakan ports akan
menjadikan sinyal yang ada menjadi efektif serta cocok digunakan dalam model VHDL.

Generics

Jika sebuah contoh memiliki sebuah parameter, maka contoh tersebut dapat didefinisikan
menggunakangenerics. Deklarasi umum dari generics ditunjukan berikut:

generic (

…list of generic declarations…

);

Pada beberapa kasus dari generics, deklarasinya mirip dari sebuah constant dengan bentuk yang
ditunjukkan sebagai berikut:

param1 : integer := 4;

Misalnya saja sebuah model yang memiliki 2 generics (gain(integer) dan time_delay(time)),
keduanya dapat didefinisikan dalam sebuah entity sebagai berikut:

generic (

gain : integer := 4;

time_delay : time = 10 ns

);

Constants

Selain hal-hal yang disebutkan di atas, contoh spesifik constant dapat dideklarasikan
menggunakan metode sebelumnya sebagai berikut:

constant : rpullup : real := 1000.0;

http://ndoWare.com
Contoh Entity

Untuk menggambarkan keseluruhan sebuah entity, ports dan generics dapat digunakan secara
bersama. Maka inilah sebuah contoh bentuk entity yang lengkap, mengacu dengan beberapa
contoh sebelumnya :

entity test is

port (

in1, in2 : in bit;

out1 : out bit

);

generic (

gain : integer := 4;

time_delay : time := 10 ns

);

constant : rpullup : real := 1000.0;

end entity test;

Demikian penjelasan singkat mengenai entity. Tulisan selanjutnya akan membahas mengenai
Architecture di dalam VHDL.

Referensi : A VHDL Primer: The Essentials, Design Recipes for FPGA by Peter Wilson,
published by Newness Publications

Penulis:

• Ali Akbar - @dzale_

Sumber:

• Mengenal VHDL - http://ndoware.com/mengenal-vhdl.html

• Mengenal VHDL (bagian 2) - http://ndoware.com/mengenal-vhdl-bagian-2.html

Tulisan VHDL selanjutnya:

• Architecture: Watak sebuah Rancangan

• Process: Basic Functional Unit in VHDL

http://ndoWare.com
• Basic Variable Types and Operators

• Decisions dalam VHDL

• LOOPS dalam VHDL

• FUNCTION dalam VHDL

• PROCEDURES dalam VHDL

• Tipe Data dalam VHDL

Index artikel VHDL | ndoWare

http://ndoWare.com

Das könnte Ihnen auch gefallen