-- 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)
beginif 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)
beginif 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)
Beginz <= max (a,b); -- Llamada a la función
End process;
end bhr;