-- Fichier : pkg_res.vhd -- Société : ENSERB -- Date de création : Sept-96 -- Exemple trouvé dans le livre de R.Airiau ( VHDL etc..) -- Modifié par : P.Nouel -- Réseau en étoile ------------------------------------------------------------------------------ PACKAGE pkg_res IS TYPE type_etat_ligne IS (libre, occupe, demande, conflit); TYPE type_tableau_etat_ligne IS ARRAY ( NATURAL RANGE <>) OF type_etat_ligne; FUNCTION r_etat ( V : IN type_tableau_etat_ligne) RETURN type_etat_ligne; SUBTYPE type_ligne IS r_etat type_etat_ligne; -- type resolu END; PACKAGE BODY pkg_res IS TYPE table_etat_ligne IS ARRAY (type_etat_ligne, type_etat_ligne) OF type_etat_ligne; CONSTANT table_resolution : table_etat_ligne := ( -- ------------------------------------------------------ -- libre | occupe | demande | conflit -- ( libre , occupe , demande , conflit ), -- libre ( occupe , occupe , occupe , occupe ), -- occupe ( demande , occupe , conflit , conflit ), -- demande ( conflit , occupe , conflit , conflit ) -- conflit ); FUNCTION r_etat ( V : type_tableau_etat_ligne) RETURN type_etat_ligne IS VARIABLE resultat : type_etat_ligne := libre ; BEGIN FOR i IN v'RANGE LOOP resultat := table_resolution(resultat, v(i)); END LOOP; RETURN resultat; END r_etat; END;