Decisions – Percabangan Dalam VHDL

Di dalam VHDL dikenal sebuah elemen algoritma yang sederhana yaitu percabangan. Pernyataan (statement) percabangan memungkinkan suatu pernyataan dieksekusi hanya jika kondisi terpenuhi atau tidak terpenuhi.

 

If-then-else

Salah satu bentuk percabangan dapat menggunakan pernyataan “if”. Contohnya sebagai berikut:

[code lang=”vhdl”]
if (condition) then
… statements
end if;
[/code]

Dalam contoh di atas, pernyataan (condition) menggunakan ekspresi boolean. Misalnya berbentuk a>b, a<b atau a=b. Sekedar catatan, operator pembanding untuk menyatakan nilai yang sama diwujudkan dengan simbol “=” dan bukan “==”. Simbol “==” biasanya digunakan untuk beberapa bahasa pemrograman lain dan bukan dalam VHDL. Misalnya, jika terdapat 2 sinyal yang memiliki nilai sama dan hasil outputnya  “1” atau “tinggi”, dapat dituliskan sebagai berikut:

[code lang=”vhdl”]
if ( a = b ) then
out1 <= ‘1’;
end if;
[/code]

Selanjutnya, bila bentuk percabangan lebih dari satu, maka menggunakan pernyataan “if…else…”. Aturan penulisannya sebagai berikut:

[code lang=”vhdl”]
if (condition) then
… statements
else
… statements
end if;
[/code]

Sedangkan bila diterapkan untuk suatu kasus, maka penulisannya sebagai berikut:

[code lang=”vhdl”]
if ( a = b ) then
out1 <= ‘1’;
else
out1 <= ‘0’;
end if;
[/code]

Akhirnya, bisa disimpulkan bahwa percabangan menggunakan “if…else…” yang lebih dari satu dapat dituliskan sebagai berikut :

[code lang=”vhdl”]
if (condition1) then
… statements
elsif (condition2)
… statements
… more elsif conditions statements
else
… statements
end if;
[/code]

Contohnya sebagai berikut :

[code lang=”vhdl”]
if (a > 10) then
out1 <= ‘1’; elsif (a > 5) then
out1 <= ‘0’;
else
out1 <= ‘1’;
end if;
[/code]

Case

Bentuk “if….else…” penggunaannya relatif mudah untuk mendefinisikan satu atau lebih bentuk percabangan. Namun akan menjadi rumit dan tidak praktis untuk banyak percabangan. Oleh karena itu, digunakanlah pernyataan “case”. Pernyataan “case” ini dipakai untuk pendekatan percabangan yang tidak menggunakan ekspresi boolean dalam setiap kejadian. Hal ini sangatlah bermanfaat untuk mendefinisikan diagram keadaan atau untuk perpindahan khusus diantara keadaan, dengan menggunakan tipe pencacah. Sebuah contoh sederhana untuk pernyataan “case” sebagai berikut:

[code lang=”vhdl”]
case testvariable is
when 1 =>;
out1 <= ‘1’; when 2 =>;
out2 <= ‘1’; when 3 =>;
out3 <= ‘1’;
end case;
[/code]

Contoh pernyataan di atas dapat lebih disederhanakan menjadi berikut :

[code lang=”vhdl”]
case test is
when 0 to 4 => out1 <= ‘1’;
[/code]

Namun, ekspresi boolean beserta persamaannya bisa juga tetap dipakai dalam percabangan menggunakan pernyataan “case”. Contoh penulisannya sebagai berikut:

[code lang=”vhdl”]
case test is
when 0 => out1 <= ‘1’; when others => out1 <= ‘0’;
end case;
[/code]

Demikian sekelumit pembahasan mengenai algoritma percabangan di dalam VHDL. Untuk tulisan mendatang, akan disajikan tentang algoritma perulangan beserta syntaxnya yang terdapat dalam VHDL.

 

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

2 Respon

  1. 29 November 2018

    […] algoritma percabangan, di dalam VHDL juga dikenal algoritma lain yaitu […]

  2. 29 November 2018

    […] atau SWITCH dalam bahasa C, untuk lebih jelas Anda bisa cek contoh source code percabangan disini, program tersebut dibuat dengan menggunakan bahasa VHDL untuk memprogram […]

Tinggalkan Balasan

This site uses Akismet to reduce spam. Learn how your comment data is processed.