Skip to content

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
$ mkdir ~/build 
$ cd $_
$ git clone --depth 1 GHDL-URL
$ cd ghdl 

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
$ ./configure

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 -j pada perintah make 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 -j pada perintah make 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
$ ghdl -v 
GHDL 2.0.0-dev (1.0.0.r31.ge4f4501e) [Dunoon edition]
 Compiled with GNAT Version: 10.2.0
 llvm code generator
Written by Tristan Gingold.

Copyright (C) 2003 - 2021 Tristan Gingold.
GHDL is free software, covered by the GNU General Public License.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

Untuk contoh pemakaian ghdl ada di contoh.


Last update: February 16, 2021

Comments