VHDL #7: Kategori Kode Program dalam Pemrograman VHDL

December 20, 2025

Sahabat Robonesia, dalam pemrograman VHDL, kode program dapat dibagi menjadi dua kategori utama, yaitu Kode program concurrent (paralel) dan Kode program sequential (berurutan). Keduanya memiliki peran penting dalam mendesain rangkaian digital. Berikut adalah penjelasan mengenai kedua kategori kode program tersebut:

7.1 Kode Concurrent (Parallel)

7.1.1 Pengertian Kode Concurrent

Kode concurrent adalah kode yang dieksekusi secara paralel, artinya semua pernyataan dalam blok concurrent dijalankan pada waktu yang sama. Ini merupakan default dalam VHDL dan menggambarkan perilaku hardware yang sesuai dengan sifat paralelisasi sirkuit digital.

7.1.2 Karakteristik Kode Concurrent

  • Paralel: Semua pernyataan dieksekusi secara bersamaan.
  • Sederhana: Cocok untuk menggambarkan koneksi sinyal langsung atau logika sederhana.
  • Non-Process: Tidak menggunakan konstruksi blok program PROCESS atau PROCEDURE.

7.1.3 Contoh Kode Concurrent

Program 1:

Penjelasan program 1:

  • Kode di atas menggambarkan dua operasi logika yang dieksekusi secara parallel.
  • c adalah hasil operasi AND antara a dan b.
  • d adalah hasil operasi NOT dari a.
  • Kedua operasi ini dieksekusi pada waktu yang sama (Concurrent/Parallel).

7.2 Kode Sequential (Berurutan)

7.2.1 Pengertian Kode Sequential

Kode sequential adalah kode yang dieksekusi secara berurutan, artinya setiap pernyataan dijalankan satu demi satu sesuai dengan urutan yang ditentukan. Ini biasanya digunakan dalam blok PROCESS atau PROCEDURE untuk menggambarkan perilaku yang lebih kompleks.

7.2.2 Karakteristik Kode Sequential

  • Berurutan: Pernyataan dieksekusi satu demi satu.
  • Kompleks: Cocok untuk menggambarkan logika yang memerlukan urutan tertentu, seperti algoritma atau kontrol state.
  • Proses: Selalu berada dalam blok PROCESS atau PROCEDURE.

7.2.3 Contoh Kode Sequential

Program 2:

Penjelasan program 2:

  • Kode di atas menggambarkan suatu counter sederhana yang diimplementasikan dalam blok PROCESS.
  • count adalah sinyal internal yang digunakan untuk menyimpan nilai counter.
  • Operasi increment dilakukan secara berurutan: reset terlebih dahulu, lalu increment.
  • data_out menampilkan nilai counter (count) dalam bentuk STD_LOGIC_VECTOR.

7.3 Perbandingan Kode Concurrent dan Kode Sequential

Tabel 1. Perbandingan Kode Concurrent vs. Sequential

7.4 Kapan Menggunakan Kode Concurrent atau Sequential?

1. Gunakan kode concurrent untuk:
  • Koneksi sinyal langsung.
  • Logika sederhana yang tidak memerlukan urutan.
  • Menggambarkan perilaku hardware yang paralel.
2. Gunakan kode sequential untuk:
  • Logika yang memerlukan urutan tertentu.
  • Implementasi algoritma atau kontrol state.
  • Perilaku yang memerlukan kondisi atau urutan operasi.

7.5 Contoh Program Gabungan Kode Concurrent dan Sequential

Dalam praktiknya, kode concurrent dan sequential sering digunakan bersama-sama (Gabungan) untuk mendesain rangkaian sistem digital yang lebih kompleks. Program 3 berikut ini adalah salah satu contohnya.
Program 3:

Penjelasan Program 3:

1. Library dan Package:
  • IEEE.STD_LOGIC untuk tipe logika standar.
  • IEEE.NUMERIC_STD.ALL untuk operasi numerik, termasuk tipe UNSIGNED.
2. Komponen concurrent_module:
  • Merupakan komponen sederhana dengan implementasi concurrent.
  • Output langsung mengikuti input tanpa proses tambahan.
3. Entitas main_design:
  • Merupakan desain utama yang menggabungkan komponen concurrent_module dan menambahkan logika sequential.
4. Arsitektur mixed:
  • Menggunakan komponen concurrent_module dan menambahkan logika sequential untuk menghitung sinyal clock.
  • Mendemonstrasikan bagaimana menggabungkan kode concurrent dan sequential dalam satu desain.
5. Koneksi Sinyal:
  • Sinyal input_inst dan output_inst digunakan untuk menghubungkan komponen concurrent_module dengan sinyal input dan output utama.
  • Sinyal count digunakan untuk menghitung siklus clock secara sequential.

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 !!