VHDL güçlü bir tip kontrol dilidir. Bunun anlamı, bir sinyal tipinin, başka bir sinyal tipine atanmasına izin vermemektedir. Hatta bit ve std_logic gibi, birbiri ile uyumlu gibi görünen sinyallerin birarada kullanmasına da izin vermez. Bu durumu önlemek amacı ile kodlamaya başlamadan önce kullanılacak olan tip önceden belirlenmelidir. Kodlamada tip dönüşümü gereksinimi duyulduğunda bir türden diğer türe, tip dönüşüm fonksiyonu ile geçilebilmektedir.
Örneğin integer tipindeki bir sayıyı std_logic_vector tipine dönüştürelim. Dönüştürmek istediğimiz integer sayı X değişkenine atansın. Bu sayı 12 bitlik bir std_logic_vector tipinde Y değişkenine atanmak istenirse aşağıdaki işlem yapılmaktadır.
Y <= conv_std_logic_vector(X, 12);
Aynı şekilde conv_std_logic_vector tipindeki Y sayısını, integer tipindeki X değişkenine atama işlemi aşağıdaki gibi yapılmaktadır.
X <= conv_integer(Y);
Aşağıda verilen ornek_conv.vhd VHDL kodunda 1-4. satırlarda gerekli kütüphanelerin kullanılacağına ilişkin bildirim yapılmaktadır. ornek_conv varlığının port tanımlamaları 7-12. satırlar arasında yapılmıştır. in_giris_1 giriş portu 10 bitlik std_logic_vector tipinde ve in_giris_2 giriş portu 0 ile 511 aralığında tanımlanmış integer tipindedir. out_cikis_1 çıkış portu integer tipinde ve out_cikis_2 portu 10 bitlik std_logic_vector tipindedir. Kodda 19. satırda in_giris_1 portu integer tipine dönüştürüldükten sonra out_cikis_1 portuna atanmaktadır. 20. satırda in_girsi_2 portu 10 bitlik std_logic_vector tipine dönüştürüldükten sonra out_cikis_2 portuna atanmaktadır.
library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_SIGNED.all use IEEE.STD_LOGIC_ARITH.all; entity ornek_conv is port ( in_giris_1 : in std_logic_vector(9 downto 0); in_giris_2 : in integer range 0 to 511; out_cikis_1 : out integer; out_cikis_2 : out std_logic_vector(9 downto 0) ); end ornek_conv; architecture Behavioral of ornek_conv is begin out_cikis_1 <= conv_integer(in_giris_1); out_cikis_2 <= conv_std_logic_vector(in_giris_2, 10); end Behavioral;