synthesizeable_vhdl-model-library:package

Package

pack_local.vhd
-- ############################################################################
-- # Project     :    VHDL-Modellbibliothek                                   #
-- #                                                                          #
-- # Filename    :    pack_local.vhd                                          #
-- #                                                                          #
-- # Beschreibung:    PACKAGE fuer die VHDL-Modellbibliothek                  #
-- #                                                                          #
-- #                                                                          #
-- #                                                                          #
-- # Designer   : Wolfgang Sehr                                               #
-- # Abteilung  : Lehrstuhl fuer Rechnergestuetzten Schaltungsentwurf         #
-- # Datum      : 22.02.1995                                                  #
-- ############################################################################
 
 
PACKAGE local IS
        function LOG_2(arg:INTEGER) RETURN INTEGER;
        -- liefert als Rueckgabewert den stets zum groesseren Wert hin auf-
        -- gerundeten 2'er Logarithmus des Argumentes im Integerformat.
END local;
 
 
PACKAGE BODY local IS
  function LOG_2(arg:INTEGER) RETURN INTEGER IS
     VARIABLE temp : INTEGER;
  BEGIN
     IF arg < 2 THEN
            RETURN 0;
     ELSE
        temp := 2;
        FOR i IN 1 TO (arg/2) LOOP
            temp := 2 * temp;
            IF (temp = arg) THEN 
               RETURN (i+1);
            ELSIF (temp > arg) THEN
               RETURN  i;
            END IF;
        END LOOP;  
     END IF;
  END;	
END local;