VHDL #5: Atribut dalam Pemrograman VHDL

December 18, 2025

 

Sahabat Robonesia, dalam pemrograman VHDL, atribut digunakan untuk mengakses informasi atau properti dari suatu objek, seperti SIGNAL, variabel, atau tipe data. Atribut ditulis dengan tanda apostrof (‘) setelah nama objek. Atribut sangat berguna untuk memeriksa status, mengontrol perilaku, atau memperoleh informasi tentang objek tersebut. Dalam pemrograman VHDL, terdapat 2 jenis atribut, yaitu atribut standar (Pre-Define Attribute) dan atribut non-standar (User-Define Attribute).

 

5.1 Atribut Standar (Pre-Define Attributes)

Atribut standar (pre-define attrbutes) adalah atribut yang telah ditentukan dalam pemrograman VHDL standar dan dapat lagsung digunakan oleh pengguna (User). Terdapat 2 jenis atribut standar, yaitu atribut data dan atribut SIGNAL. Berikut adalah penjelasan singkatnya.

5.1.1 Atribut Data (Data Attributes)

Data atribut digunakan untuk mengakses informasi tentang tipe data atau objek data dalam VHDL. Beberapa contoh atribut data yang umum digunakan dan dapat disintesis adalah sebagai berikut:

1. Atribut ‘HIGH
Atribut ‘HIGH berguna untuk mengembalikan indeks bit tertinggi dari suatu tipe data vektor.

Syntax:

Contoh:

 

2. Atribut ‘LOW
Atribut ‘LOW berguna untuk mengembalikan indeks bit terendah dari suatu tipe data vektor.

Sintaks:

Contoh:

 

3. Atribut ‘LENGTH
Atribut ‘LENGTH berguna untuk mengembalikan jumlah bit dalam suatu tipe data vektor.

Sintaks:

Contoh:

 

4. Atribut ‘TO
Atribut ‘TO berguna untuk mengonversi tipe data vektor ke arah indeks yang ditentukan.

Sintaks: nama_sinyal(to n)

Contoh:

 

5. Atribut ‘DOWNTO
Atribut ‘DOWNTO berguna untuk mengonversi tipe data vektor ke arah indeks yang menurun.

Sintaks:

Contoh:

 

6. Atribut ‘LEFT dan ‘RIGHT
Atribut ‘LEFT berguna untuk mengembalikan indeks array paling kiri.
Atribut ‘RIGHT berguna untuk mengembalikan indeks array paling kanan.

Sintaks:

Contoh:

 

7. Atribut ‘RANGE dan ‘REVERSE_RANGE
Atribut ‘RANGE berguna untuk mengembalikan rentang vektor.
Atribut ‘REVERSE_RANGE berguna untuk mengembalikan rentang vektor dalam urutan terbalik.

Sintaks:

Contoh:

 

5.1.2 Atribut SIGNAL (SIGNAL Attributes)

Atribut SIGNAL digunakan untuk memeriksa status atau perilaku suatu SIGNAL selama simulasi atau sintesis. Beberapa contoh atribut SIGNAL yang umum digunakan dan dapat disintesis adalah sebagai berikut:

1. Atribut ‘EVENT
Atribut ‘EVENT berguna untuk mengembalikan nilai “TRUE” jika sinyal mengalami transisi (event) pada siklus saat ini.

Sintaks:

Contoh:

 

2. Atribut ‘STABLE
Atribut ‘STABLE berguna untuk mengembalikan nilai “TRUE” jika sinyal tetap stabil (tidak mengalami perubahan) selama siklus saat ini.

Sintaks:

Contoh:

 

3. Atribut ‘RISING_EDGE
Atribut ‘RISING_EDGE berguna untuk mengembalikan nilai “TRUE” jika sinyal mengalami transisi dari ‘0’ ke ‘1’ (rising edge).

Sintaks:

Catatan: Ini adalah fungsi, bukan atribut langsung, tetapi sering digunakan untuk mendeteksi rising edge.

Contoh:

 

4. Atribut ‘FALLING_EDGE
Atribut ‘FALING_EDGE berguna untuk mengembalikan nilai “TRUE” jika sinyal mengalami transisi dari ‘1’ ke ‘0’ (falling edge).

Sintaks:

Catatan: Ini adalah fungsi, bukan atribut langsung, tetapi sering digunakan untuk mendeteksi falling edge.

Contoh:

 

5. Daftar atribut SIGNAL yang digunakan hanya untuk tujuan simulasi dan tidak dapat disintesis

 

5.1.3 Contoh Penggunaan Atribut dalam VHDL

Berikut adalah contoh program VHDL lengkap yang menggunakan atribut data dan atribut SIGNAL:

 

5.1. 4 Catatan Penting Terkait Penggunaan Atribut Pre-Define

  • Atribut Data digunakan untuk mengakses informasi tentang tipe data, seperti indeks bit tertinggi (‘high), indeks bit terendah (‘low), dan jumlah bit (‘length).
  • Atribut SIGNAL digunakan untuk memeriksa status sinyal, seperti transisi (‘event), stabilitas (‘stable), rising edge, dan falling edge.
  • Atribut sangat berguna untuk debugging, mengontrol aliran logika, dan memperoleh informasi tentang objek dalam VHDL.

 

5.2 Atribut Non-Standard (User-Define Attributes)

Kita telah melihat atribut-atribut bertipe HIGH, LOW, EVENT, dan lain-lain. Semua atribut tersebut telah didefinisikan sebelumnya di dalam standar pemrograman VHDL. Namun, VHDL juga memungkinkan pembuatan atribut yang ditentukan dan dibuat sendiri oleh pengguna atau disebut dengan “User-Define Attributes.”

 

5.2.1 Pengertian User-Defined Attributes

User-defined attributes adalah atribut yang didefinisikan oleh pengguna sendiri, bukan atribut standar bawaan VHDL. Atribut ini digunakan untuk menambahkan informasi atau parameter ke suatu entitas, arsitektur, atau objek lainnya dalam VHDL. Atribut ini biasanya digunakan untuk:

  1. Mengonfigurasi perilaku suatu modul atau komponen.
  2. Menambahkan informasi tambahan tentang desain, seperti versi, tanggal, atau penulis.
  3. Mengatur parameter desain yang dapat diubah tanpa perlu mengubah kode utama.

Atribut yang ditentukan pengguna (User-define) dapat dideklarasikan di mana saja, kecuali di dalam badan PACKAGE. Jika tidak dikenali oleh alat sintesis, hal itu akan diabaikan begitu saja oleh compiler VHDL, atau peringatan kesalahan akan muncul.

 

5.2.2 Cara Mendefinisikan User-Defined Attributes

Atribut yang ditentukan pengguna dapat didefinisikan sebagai konstanta atau tipe data khusus yang terkait dengan suatu entitas atau arsitektur. Berikut adalah cara mendefinisikan user-defined attributes:

A. Mendefinisikan Atribut di dalam ENTITY
Atribut dapat ditambahkan langsung ke dalam deklarasi entitas menggunakan kata kunci ATTRIBUTE.

 

B. Mendefinisikan Atribut di dalam ARCHITECTURE
Atribut juga dapat didefinisikan untuk arsitektur tertentu.

 

C. Mendefinisikan Atribut pada SIGNAL atau Variabel

Atribut juga dapat diterapkan pada sinyal atau variabel. Untuk menggunakan user-define atribut pada sinyal atau variabel, atribut tersebut harus dideklarasikan dan ditentukan spesifikasinya. Sintaksnya adalah sebagai berikut:

Syntax deklarasi atribut user-define:

Syntax spesifikasi atribut user-define:

di mana:
attribute_type : Semua tipe data (BIT, INTEGER, STD_LOGIC_VECTOR, dan lainnya)
class : TYPE, SIGNAL, FUNCTION, dan yang lainnya.
Value : ‘0’, 27, ‘‘00 11 10 01’’, dan yang lainnya.

Contoh 1:

 

Contoh 2:

 

5.2.3 Keterbatasan Penggunaan User-Defined Attribut

Penggunaan User-Defined Attribut dalam pemrograman VHDL memiliki keterbatasan, diantaranya sebagai berikut:

  • Keterbatasan Synthesizability: Beberapa atribut mungkin tidak dapat disintesis, terutama jika digunakan untuk tujuan dokumentasi atau informasi non-fungsional.
  • Keterbatasan Dukungan Tool: Beberapa alat sintesis atau simulator mungkin tidak mendukung semua jenis atribut.
  • Keterbatasan Kompatibilitas: Atribut yang ditentukan pengguna mungkin tidak kompatibel dengan semua versi VHDL.

 

Author

Taufiq Dwi Septian Suyadhi

Degrees from electronics and industrial engineering. Enthusiast on electronics, embedded systems, and robotics. Motivation: “Never ending learning and sharing valuable knowledge to the others”.

Leave a Reply

Post Related

error: Content is protected !!