Pernyataan Prosedur - Contoh VHDL
Prosedur adalah bagian dari sekelompok struktur yang disebut subprogram. Prosedur adalah bagian kecil dari kode yang melakukan operasi yang digunakan kembali di seluruh kode Anda. Ini berfungsi untuk membersihkan kode serta memungkinkan penggunaan kembali.
Prosedur dapat mengambil input dan menghasilkan output. Mereka umumnya bisa lebih rumit daripada fungsi. Tidak diperlukan untuk melewatkan sinyal apa pun ke suatu prosedur. Dalam contoh di bawah ini ada prosedur p_INCREMENT_SLV yang tujuannya adalah untuk menambah vektor logika standar sebesar 1 dan menghasilkan sinyal dengan hasilnya.
Satu catatan tambahan tentang penggunaan pernyataan tunggu:
Pernyataan tunggu BISA digunakan dalam prosedur, selama proses yang memanggil prosedur tidak memiliki daftar sensitivitas. Dalam contoh di bawah, prosedur memiliki pernyataan wait 1 ns untuk mendemonstrasikannya. Ini membuat prosedur berguna untuk membuat kode testbench.
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity example_procedure_simple is
end example_procedure_simple;
architecture behave of ex_procedure_simple is
signal r_TEST : std_logic_vector(7 downto 0) := X"42";
-- Purpose: Increments a std_logic_vector by 1
procedure p_INCREMENT_SLV (
signal r_IN : in std_logic_vector(7 downto 0);
signal r_OUT : out std_logic_vector(7 downto 0)
) is
begin
r_OUT <= std_logic_vector(unsigned(r_IN) + 1);
wait for 1 ns; -- Wait is OK here.
end p_INCREMENT_SLV;
begin
process is
begin
wait for 10 ns;
p_INCREMENT_SLV(r_TEST, r_TEST);
wait for 10 ns;
p_INCREMENT_SLV(r_TEST, r_TEST);
wait for 10 ns;
p_INCREMENT_SLV(r_TEST, r_TEST);
wait;
end process;
end behave;
Halaman Nandland Paling Populer |