VHDL dilinde kullanılan toplama, çıkarma ve ekleme operatörleri aşağıda listelenmiştir:
- + : toplama
out_cikis <= in_giris_1 + in_giris_2;
Yukarıda verilen tanımlamada çıkış değerine in_giris_1 ve in_giris_2 değerlerinin toplamı atanmaktadır. Örneğin in_giris_1 değeri”1010” ve in_giris_2 değeri “0101” olsun. Bu durumda out_cikis değerine “1111” olmaktadır.
- – : çıkarma
out_cikis <= in_giris_1 – in_giris_2;
Yukarıda verilen tanımlamada çıkış değerine in_giris_1 değerinden in_giris_2 değerinin farkı atanmaktadır. Örneğin in_giris_1 değeri“1010” ve in_giris_2 değeri “0101” olsun. Bu durumda out_cikis değerine “0101” olmaktadır.
- & : ekleme
out_cikis <= in_giris_1 & in_giris_2;
Yukarıda verilen tanımlamada çıkış değerine in_giris_1 değerine in_giris_2 değeri eklenerek atanmaktadır. Örneğin in_giris_1 değeri “1010” ve in_giris_2 değeri “0101” olsun. Bu durumda out_cikis değerine “10100101” olmaktadır.
Bu operatör aynı zamanda kaydırma (shifting) işlemleri için de kullanılmaktadır. Bu sayede sağa ya da sola kaydırma yapılabilir. Bunun için sınır değerlerin kontrolü gerekmektedir. Örneğin gelen_veri değeri 8 bit uzunluğunda “10100101” başlangıç değerinde verilmiş olsun. Verilen veriyi sola kaydırmak için yazmamız gereken kod aşağıda verilmiştir:
signal gelen_veri : std_logic_vector(7 downto 0):=”10100101”; .. .. gelen_veri <= gelen_veri(6 downto 0) & ‘0’;
Eğer kaydırma işlemini diğer yöne, sağa yaptırmak isteseydik yazmamız gereken kod aşağıdaki gibi olacaktır:
gelen_veri <= ‘0’ & gelen_veri(7 downto 1);
Örnek : Toplama operatörlerinin kullanıldığı toplama_operatorleri.vhd VHDL kodu aşağıda gösterilmiştir. toplama_operatorleri varlığı 4 bitlik in_giris_1 ve in_giris_2 giriş portlarına sahiptir.
- 4 bitlik out_cikis_toplam çıkış portuna in_giris_1 ve in_giris_2 giriş port değerlerinin toplama işlemi sonucu atanmaktadır.
- 4 bitlik out_cikis_fark çıkış portuna in_giris_1 ve in_giris_2 giriş port değerlerinin çıkarma işlemi sonucu atanmaktadır.
- 8 bitlik out_cikis_ekleme çıkış portuna in_giris_1 ve in_giris_2 giriş port değerleri eklenerek atanmaktadır.
Şekil1’de toplama_operatorleri varlığının ilgili çıkışlara ilişkin benzetim çıktısı gösterilmiştir. Şekil 4‑2’de in_giris_1 giriş portunun “0101” ve in_giris_2 giriş portunun “0010” değeri için; out_cikis_toplam çıkış portu değeri “0111”, out_cikis_fark çıkış portu değeri “0011” ve . out_cikis_ekleme çıkış portu değeri “01010010” olmaktadır.
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_SIGNED.ALL; entity toplama_operatorleri is Port ( in_giris_1 : in std_logic_vector(3 downto 0); in_giris_2 : in std_logic_vector(3 downto 0); out_cikis_toplam : out std_logic_vector(3 downto 0); out_cikis_fark : out std_logic_vector(3 downto 0); out_cikis_ekleme : out std_logic_vector(7 downto 0) ); end toplama_operatorleri; architecture Behavioral of toplama_operatorleri is begin process(in_giris_1, in_giris_2) begin out_cikis_toplam <= in_giris_1 + in_giris_2; out_cikis_fark <= in_giris_1 - in_giris_2; out_cikis_ekleme <= in_giris_1 & in_giris_2; end process; end Behavioral;

Şekil 1 toplama_operatorleri varlığının ilgili çıkışlara ilişkin benzetim çıktısı