Belajar VHDL

advertisement
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
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-
http://ndoWare.com
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…
);
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:
http://ndoWare.com
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;
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 (
http://ndoWare.com
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

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
Download