-- Cálculo del valor máximo de dos vectores de 4 bits
--1. Creación del package
package pack is --
Nombre del package
function max (x, y: in integer) return integer;
--Declaración de la función
end;
package body pack is
function max (x, y: in integer) return
integer is -- Definición de la
función
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
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
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 std_logic_vector (3 downto 0);
z: out std_logic_vector (3 downto 0));
end maximo ;
-- Definición de la arquitectura
Architecture bhr of maximo is
begin
Process (a)
Beginz <= conv_std_logic_vector( max (conv_integer(a), conv_integer(b)), 4); -- Llamada a la función
End process;
end bhr;