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

Solución 3: Máximo de dos vectores tipo bit

Nota de pie:

En VHDL’93 la sintaxis es: function <nombreFunción> is
end;

 

Anterior
Volver a inicio curso
Volver a inicio capítulo
Siguiente


WcN - Joan Oliver. Diseño de circuitos digitales con VHDL: Librerías