vhdl_reference_93:package_declaration

Package declaration

package identifier is
    package_declarative_part
end [ package ] [ package _simple_name ] ;

Declaration of the package pck in which the integer constant CINT is declared.

PACKAGE pck IS
   CONSTANT CINT : integer;
END pck;

Declaration of the package tristate in which the enumeration type Tri and three functions ( BitVal , TriVal , Resolve ) with the corresponding transfer values and result types are declared. Apart from that a type TriVector is declared as a vector of the type Tri and the maximum length ( NATURAL RANGE <> ).

PACKAGE tristate IS
   TYPE Tri IS ('0', '1', 'Z', 'E');
   FUNCTION BitVal (Value : Tri)
      RETURN Bit;
   FUNCTION TriVal (Value : Bit)
      RETURN Tri;
   TYPE TriVector IS ARRAY (
      NATURAL RANGE <>) OF Tri;
   FUNCTION Resolve (Sources : TriVector)
      RETURN Tri;
END tristate; 

The objects from the library parts are integrated.

The signal S is declared as a guarded signal (BUS) and initialized with the value 1. The driver(s) for the signal S is/are not separated immediately after S has been deactivated but only 2 ns afterwards.

The two components latch and clock with the corresponding in- and outputs are declared. The component latch also contains a Generic N .

PACKAGE pck_2 IS
   USE work.parts.all;
   SIGNAL S : resol_bit BUS := '1';
   DISCONNECT S AFTER 2 ns;
   COMPONENT latch
      GENERIC (C : Natural);
      PORT (A : IN Bit;
            B : OUT Bit_vector (1 TO C));
   END COMPONENT ;
   COMPONENT clock
      PORT (CK : OUT Bit);
   END COMPONENT ;
END pck_2;