Aturan dasar untuk penulisan process adalah sebagai berikut:
process sensitivity_list is
… declaration part
begin
… statement part
end process;
Dalam process, suatu kumpulan (list) pernyataan akan dijalankan/aktif ketika terjadi perubahan nilai sinyal. Misalnya, sebuah process memiliki sinyal “clock” dan “reset”. Process tersebut akan dijalankan ketika terjadi perubahan sinyal yang melibatkan sinyal-sinyal “clk” dan “rst”.
process (clk, rst) is
begin
… process statements
end process;
Pada contoh berikut ini, process hanya bisa berjalan/aktif terjadi perubahan nilai “clk” atau “rst”. Selain itu, process juga masih bisa aktif, yaitu dengan cara menggunakan wait statement. Bila menggunakan wait statement, process akan otomatis dijalankan sekali kemudian menunggu terjadinya perubahan nilai sinyal lain yang melibatkan sinyal “clk” atau sinyal “rst”. Bila itu terjadi, process akan berjalan/aktif lagi.
process
begin
… process statements
wait on clk, rst;
end process;
Pada umumnya, lokasi dari sebuah wait statement tidaklah begitu penting. Hal ini karena dalam simulasi VHDL, setiap process berjalan setiap siklus sehingga wait statement dapat diletakan di awal atau di akhir. Hal tersebut tidak berpengaruh pada jalannya process karena sifatnya sama saja.
Untuk bagian pendeklarasian dalam process, variabel dan sinyal-sinyal yang digunakan dapat didefinisikan saat itu juga atau bisa sebelumnya, seperti contoh berikut ini :
process (a) is
signal na : bit;
begin
na <= not a;
end process;
Listing di atas menggambarkan process “a”. Di dalam process “a”, terdapat sinyal “na” yang bertipe bit. Sinyal “na” akan dijalankan ketika terjadi perubahan nilai pada sinyal “a”. Sinyal “a” sendiri telah dideklarasikan di luar process tersebut, bisa dideklarasikan di bagian architecture atau bagian lainnya.
Demikan sekelumit pembahasan tentang process dalam VHDL. Tulisan selanjutnya akan membahas masalah tipe-tipe variabel dan operator dalam VHDL.
referensi : A VHDL Primer: The Essentials, Design Recipes for FPGA by Peter Wilson, published by Newness Publications