VHDL Intro
Intro
VHDL atau Verilog Hardware Description Language adalah bahasa pemograman yang digunakan untuk mempogram FPGA. FPGA merupakan komponen yang sangat unik, tidak seperti komponen electronic umumnya yang berisi rangkaian electronic yang disusun untuk membentuk tugas tertentu, pada FPGA hanya berisi susunan dari transistor atau mofset yang dihubungkan dengan jalur yang disebut FUSE, dinamakan FUSE karena saat process pemograman, sebenarnya merubah(memutus) FUSE untuk membentuk rangkaian digital gates.
Untuk contoh bagaimana FPGA membentuk gerbang dasar dari susunan transistor akan dijelaskan nanti klo ndak lagi malas hehe.
GHDL
GHDL merupakan software yang bisa meng-compile file source vhdl yang biasanya berakhiran .vhd atau .vhdl kelebihan dari GHDL ini selain opensource adalah kemampuan untuk mengsimulasi dan menghasilkan waveform yang bisa dibaca oleh GTKWave. selain GHDL ada beberapa software lain diantaranya FreeHDL dan software bawaan vendor seperti xilix, namum untuk belajar saya rasa GHDL sudah sangat sesuai, sampai nanti sudah punya board FPGA yang siap untuk dipogram maka software vendor wajib ada. hehe.
Cara Install
GHDL umumnya sudah ada pada repository distro linux populer namun rata-rata masih versi < 1.0 sedangkan pada git dev nya sudah masuk pada versi 2.0 karena itu saya memutuskan untuk meng-compile dan meng-install GHDL dari git.
Clone git repo
Buat folder kosong di Home
dan buka terminal di folder tersebut
1 2 3 4 |
|
Configure project
GHDL menyediakan tiga jenis backend yakni
- mcode (internal).
- gcc
- llvm
Mcode
Backend ini tidak memerlukan dependency applikasi external untuk melakukan proces compilasi file vhdl, untuk pemula saya rasa lebih cocok menggunakan versi ini dibanding versi gcc dan llvm.
Untuk mode ini tidak perlu tambahan flags pada script ./configure
berikut detail step nya.
Pastikan terminal mu sudah berada pada folder ghdl seperti dijelaskan pada Clone Git Repo
1 |
|
tunggu sampai selesai dan jalankan make untuk process build
$ make
process ini jauh lebih lama dari configuration jadi sabar saja hehe. jika punya cpu multicore tambahkan -jmake
diatas, contoh untuk 4core maka make -j4
LLVM
Backend ini memerlukan installation dari llvm (mungkin juga libllvm pada beberap distro). Kelebihan dari mode llvm dibanding mcode adalah pada mode ini akan menghasilkan object dari source vhdl sehingga bisa digunakan/digabung dengan pogram C lainnya. Selain object file mode ini juga menghasilkan file executable sehingga relative mudah untuk mencoba hasil compilasi pada pc lain yang tidak memiliki/meng-install GHDL.
Jalankan ./configure
dengan flags --with-llvm-config
$ ./configure --with-llvm-config
tunggu hingga selesai dan jalankan make
untuk masuk ke process build
$ make
process ini jauh lebih lama dari configuration jadi sabar saja hehe. jika punya cpu multicore tambahkan -jmake
diatas, contoh untuk 4core maka make -j4
GCC
Mode ini memiliki kelebihan yang sama dengan mode LLVM namun pada mode GCC memerlukan source code dan object dari GCC alias download source gcc dan build gcc untuk menghasilkan object code. untuk yang mau cepat mencoba saya sarankan pakai mode LLVM atau mcode saja.
Jalankan ./configure
dengan flags --with-gcc=<tempat source gcc terbuild>
jika gcc source dan object ada pada directory ~/build/gcc/build
maka gunakan perintah ini
$ ./configure --with-gcc=/home/kenzanin/build/gcc/build
tunggu hingga selesai dan jalankan make
untuk masuk ke process build
$ make
Install
Jika tidak ada error pada process make
maka untuk install nya bisa menggunakan make install
tentu saja akess root diperlukan untuk bisa meng-rw directory /usr/loca/
berikut perintah yang digunakan untuk install
$ sudo make install
test hasil installation dengan perintah ghdl -v
, jika ada output seperti dibawah ini maka ghdl sudah siap untuk digunakan.
1 2 3 4 5 6 7 8 9 |
|
Untuk contoh pemakaian ghdl ada di contoh.