VHDL dilinde kullanılan çarpma, bölme, mod ve artan operatörleri aşağıda listelenmiştir:
- * : çarpma
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 ile çarpılarak atanmaktadır. Örneğin in_giris_1 değeri “1010” ve in_giris_2 değeri “0101” olsun. Bu durumda out_cikis değerine “00110010” atanmaktadır.
- / : bölme
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ğerine bölünerek atanmaktadır. Örneğin in_giris_1 değeri 19 ve in_giris_2 değeri 4 olsun. Bu durumda out_cikis değerine 4 atanmaktadır.
VHDL dilinde var olan bölme operatörü sadece 2’nin kuvvetleri şeklinde ifade edilebilen sayılar üzerinde sentezlenebilir sonuç üretmektedir.
- mod : mod alma
out_cikis <= in_giris_1 mod in_giris_2;
Yukarıda verilen tanımlamada çıkış değerine in_giris_1 değerinin in_giris_2 değerine göre modu atanmaktadır. Örneğin in_giris_1 değeri19 ve in_giris_2 değeri 4 olsun. Bu durumda out_cikis değerine 19 mod 4 = 3 atanmaktadır. Eğer in_giris_1 değeri –19 olsaydı out_cikis değerine –19 mod 4 = 1 atanacaktır.
VHDL dilinde var olan mod operatörü sadece 2’nin kuvvetleri şeklinde ifade edilebilen sayılar üzerinde sentezlenebilir sonuç üretmektedir.
- rem : artan
out_cikis <= in_giris_1 rem in_giris_2;
Yukarıda verilen tanımlamada çıkış değerine, in_giris_1 değerinin in_giris_2 değerine göre artan değeri atanmaktadır. Örneğin in_giris_1 değeri 19 ve in_giris_2 değeri 4 olsun. Bu durumda out_cikis değerine 19 rem 4 = 3 atanmaktadır. Eğer in_giris_1 değeri –19 olsaydı out_cikis değerine –19 mod 4 = -3 atanacaktır.
VHDL dilinde var olan rem operatörü sadece 2’nin kuvvetleri şeklinde ifade edilebilen sayılar üzerinde sentezlenebilir sonuç üretmektedir.
Örnek : Çarpım operatörlerinin kullanıldığı carpim_operatorleri.vhd VHDL kodu aşağıda gösterilmiştir. Şekil 4‑3’te carpim_operatorleri varlığının ilgili çıkışlara ilişkin benzetim çıktısı gösterilmiştir. Örnek içerisinde 25., 26. ve 27. satırlarda kullanılan conv_integer fonksiyonu std_logic_vector türünde sinyali integer tipine tür dönüşüm işlemini gerçekleştirmektedir. Detaylı olarak Bölüm 5 içerisinde anlatılacaktır.
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_SIGNED.ALL; entity carpim_operatorleri is Port ( in_giris_1 : in std_logic_vector(3 downto 0) := "0011"; in_giris_2 : in std_logic_vector(3 downto 0) := "0100"; in_giris_3 : in integer := 19; out_cikis_carpim : out std_logic_vector(7 downto 0); out_cikis_bolme : out integer; out_cikis_mod : out integer; out_cikis_rem : out integer ); end carpim_operatorleri; architecture Behavioral of carpim_operatorleri is begin process(in_giris_1, in_giris_2, in_giris_3) begin out_cikis_carpim <= in_giris_1 * in_giris_2; out_cikis_bolme <= in_giris_3 / conv_integer(in_giris_2); out_cikis_mod <= in_giris_3 mod conv_integer(in_giris_2); out_cikis_rem <= in_giris_3 rem conv_integer(in_giris_2); end process; end Behavioral;

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