5. Die Entity

Die Design-Einheit "Entity" hat die Aufgabe, die Schnittstelle des Modells nach außen zu definieren.

Sie enthält die Schnittstellenbeschreibung, die Verbindung des Modells zur Außenwelt. Dazu gehören neben den Port-Deklarationen auch zu übergebende Parameter, sog. Generics. Im Kopf können weiterhinm bestimmte Datentypen, Attribute, Unterprogramme etc. definiert werden, die für die aktuelle Entity (und für alle zugeordneten Architectures) gültig sind.

Im Entity-Anweisungsteil (zwischen BEGIN und END ) können darüber hinaus noch Anweisungen stehen, die auch für alle der Entity zugeordneten Architekturen gelten sollen.

Die Entity ist im allgemeinen folgendermaßen aufgebaut:

  ENTITY entity_name IS
GENERIC ( param1, param2 : [IN] type_name := default_value);
PORT ( port_name1, port_name2, ... : IN type_name;
port_name3, port_name4, ... : OUT type_name;
port_name5, port_name6, ... : INOUT type_name);

common declarations


BEGIN


common passive statements,
common concurrent assertion statements



END [entity_name];

Mit jeder Portdeklaration ist automatisch ein innerhalb der Architektur sichtbares Signal gleichen Typs und gleichen Namens verbunden. Den Ports muß weiterhin eine Signalflußrichtung (IN, OUT oder INOUT) zugewiesen werden. Signale von Ausgangs-Ports können im Modell nicht gelesen werden, Signale vom Mode IN können nicht mit neuen Werten versehen werden.

Zusätzliche (interne) Signale müssen im Deklarationsteil der Entity oder der Architecture deklariert werden.

Ein einfaches Beispiel (NAND3-Gatter):

   ENTITY nand3 IS
GENERIC ( delay : TIME := 2.2 ns );
PORT ( a, b, c : IN std_ulogic;
y : OUT std_ulogic );
END nand3;