-- Cálculo del valor máximo de dos vectores de 4 bits tipo bit

--1. Creación del package

package pack is -- Nombre del package

function max (x, y: in integer) return integer; --Declaración de la funciones
function max (x, y: in bit_vector) return bit_vector;

end;
package body pack is

function max (x, y: in integer) return integer is -- Definición de la función (para enteros)
begin

if x>y then return x;
else return y;
end if;

end; --Final de función
function max (x, y: in bit_vector) return bit_vector is -- Definición de la función (para tipo bit)
begin

if x>y then return x;
else return y;
end if;

end; --Final de función

end; --Final de package

--2. Diseño del modelo

use work.pack.all; -- Uso de la librería de trabajo y del package definido

- Declaración de la entidad
Entity maximo is
port (

a, b: in bit_vector (3 downto 0);
z: out bit_vector (3 downto 0));

end maximo ;

-- Definición de la arquitectura
Architecture bhr of maximo is
begin

Process (a)
Begin

z <= max (a,b); -- Llamada a la función

End process;

end bhr;


WcN - Joan Oliver. Diseño de circuitos digitales con VHDL