Een library kan meerdere packages bevatten.
Een package bevat 1 of meer van onderstaande middelen.
Een VHDL module kan gebruik maken van 1 of meerdere packages
Voorbeeld:
library library1;
use library1.pack2.all;
library library2;
use library2.pack4.all;
entity ...
architecture...
Een verwijzing naar de package “standard” in de library “std” is steeds impliciet aanwezig.
Volgende twee codes zijn identiek.
entity and_or_poort is
port( a, b, d: in bit;
e: out bit);
end and_or_poort;
architecture arch of and_or_poort is
signal c: bit;
begin
c <= a and b;
e <= c or d;
end arch;
library std;
use std.standard.all; -- geeft aan wat we precies willen gebruiken van deze package
entity and_or_poort is
port( a, b, d: in bit;
e: out bit);
end and_or_poort;
architecture arch of and_or_poort is
signal c: bit;
begin
c <= a and b;
e <= c or d;
end arch;
Een stuk code van de standard package.
package STANDARD is
--opsomming types
type BOOLEAN is (FALSE, TRUE);
type BIT is ('0', '1');
type CHARACTER is ( -- opsomming ASCII characters);
type INTEGER is range -- implementation defined;
--arrays: samengestelde types waarvan de range moet ingesteld worden
type STRING is array (POSITIVE range <>) of CHARACTER;
type BIT_VECTOR is array (NATURAL range <>) of BIT;
...
end STANDARD;