VHDL’de tasarım yaparken kullanmak istediğimiz verileri yönetebileceğimiz üç temel veri nesnesi mevcuttur:
- signal
- variable
- constant
Veri nesnelerinden signal ve variable içeriği değişebilen verilerde kullanılırken sabit değerler için constant veri nesnesi kullanılmaktadır. Bilgisayar programlama dillerinden farklı olarak VHDL dili ile yapılan tasarımlar karşılığında fiziksel bir devre sentezlendiği unutulmamalı ve bu başlık altında anlatılan kavramlara her zaman bu açıdan bakılmalıdır.
signal veri nesneleri elektronik devreler üzerinde bulunan kablolara/yollara benzemektedir. Bu kablolar/yollar kullanılarak yapılan tasarımda, haberleşmesi gereken birimler birbiri ile veri alış-verişi yapabilmektedir. signal veri nesnesi sözdizimi aşağıdaki gibi gibidir.
signal sinyal_adı : tip_adi := baslangic_degeri;
Yukarıda verilen tanımlamada := işaretinden sonra verilen kısımda tanımlanan sinyale ilk değer ataması (tanımlanan sinyalin tipine uygun şekilde) yapılmaktadır. Bu kullanım isteğe bağlı olup istendiği takdirde yapılmayabilir fakat genel bir tavsiye olarak ilk değer ataması önerilen bir kullanımdır.
Aşağıda signal bildirim örnekleri verilmiştir. Bu bildirimlerde:
- elde 1 bitlik bit tipinde,
- toplam 4 bitlik bit_vector tipinde,
- saat bir bitlik std_logic tipinde,
- kelime 10 bitlik std_logic_vector tipinde,
- sayac 0 ile 127 aralığında tanımlı integer tipinde
- kosul boolean tipinde tanımlanmış sinyallerdir.
signal elde : bit; signal toplam : bit_vector(0 to 3); signal saat : std_logic; signal kelime : std_logic_vector(9 downto 0); signal sayac : integer range 0 to 127; signal kosul : boolean;
signal veri nesnesi VHDL kodunda dört yerde tanımlanabilmektedir ve tanımlama yerleri aşağıda birer örnekle açıklanmıştır.
- entity tanımlamalarında :
.. .. entity ornek is port( toplam : std_logic_vector(3 downto 0) ); end ornek; .. ..
- Mimarinin (Architecture) tanımlama bölümünde:
.. .. architecture Behavioral of ornek is signal bayrak: std_logic; signal toplam : bit_vector(0 to 3); signal sayac : integer range 0 to 255; begin .. ..
- Paket (Package) tanımlama bölümünde:
.. .. package ornek is signal bayrak : std_logic; signal toplam : bit_vector(0 to 3); signal sayac : integer range 0 to 255; end ornek; .. ..
- Blok (Block) tanımlama bölümünde :
.. .. block signal bayrak : std_logic; signal toplam : bit_vector(0 to 3); signal sayac : integer range 0 to 255; end block; .. ..