Funciones
Una función es un subprograma que produce un resultado
En VHDL puede describirse en un package, en una arquitectura o en un proceso
Formato (ver Nota de pie)
function <nombreFuncion> --Declaración
[([...]: in type [...]...)]
return type [...];
function <nombreFuncion> --Cuerpo
[([...]: in type [...]...)]
return type [...] is
begin
secuencia de instrucciones;
return (expresión);
end;
Ejemplo: Diseñar el programa que encuentra el valor máximo de dos vectores de 4 bits. Se utiliza una función de cálculo del máximo de dos valores enteros para, después, utilizarla en el cálculo del máximo de dos vectores (tipo std_logic_vector)
Solución 1: Función dentro de la propia arquitectura
Solución 2: Función descrita en un package
. Debe observarse como se llama a la librería de trabajo work que es donde se encuentra el package con nuestra declaración de constantes, variables, funciones y/o procedimientos
Al igual que los lenguajes de programación orientados a objeto, el lenguaje VHDL dispone de la sobrecarga en funciones. Esto permite que la misma función pueda usarse con distintos tipos de variables (si así se ha definido)
Ejemplo: Utilizando el mismo package, crear la función que permite obtener el máximo de dos vectores tipo bit
En VHDL’93 la sintaxis es: function <nombreFunción> is
end;