CONFIGURATION

Syntaktische Rahmen – CONFIGURATION

CONFIGURATION xy_conf1 OF xy_entity IS

FOR behavioral
END FOR;
END xy_conf1;
Dies ist ein Beispiel für eine einfache Configuration eines Verhaltensmodells. Es muß hierbei lediglich die Architektur zur Entity ausgewählt werden.
CONFIGURATION xy_conf2 OF any_entity IS

FOR structural
FOR nd3_c : nand3_comp USE ENTITY work.nand3 (behavioral);
END FOR;

FOR ALL : nand2_comp USE CONFIGURATION work.nand2_cfg;
END FOR;
END FOR;
END xy_conf2;
Hier wird für ein Modell zunächst die Architektur structural ausgewählt. Innerhalb der Architektur werden die COMPONENTS nand2_comp und nand3_comp instantiiert. Die CONFIGURATION hier legt fest, daß für die Instanz nd3_c die ENTITY nand3 aus der aktuellen working-library mit der Architektur behavioral eingesetzt wird. Weiterhin wird für alle Instanzen von nand2_comp bestimmt, daß auf die CONFIGURATION nand2_cfg zurückgegriffen werden soll (hierarchische Konfiguration).
CONFIGURATION xy_conf3 OF new_entity IS

USE std.standard.ALL;
FOR instance1 : comp_1
FOR instance1a : zyx USE ENTITY work.zyx_a (behavioral)
PORT MAP (clk, d, q, n_q);
GENERIC MAP (3.98 ns, 2.75 ns);
END FOR;

FOR instance1b : xyz USE ENTITY work.xyz_c (behavioral)
PORT MAP (a => d, b => clk, y => q);
GENERIC MAP (tpd_lh => 3.28 ns, tpd_hl => 4.12 ns);
END FOR;
END FOR;

FOR instance2 : comp2 USE CONFIGURATION work.abc_cfg;
END FOR;
END FOR;
END xy_conf3;
Dieses Beispiel enthält neben der Architekturauswahl eine weitere Block-Konfiguration. In der zweiten Ebene werden auch die Anweisungen für PORT MAP und GENERIC MAP verwendet. Damit sind vom Defaultwert abweichende GENERICS möglich. Die PORT MAP ist erforderlich wenn die Namen der COMPONENT-Ports von denen der ENTITY abweichen.

Bei der instance1a wird dazu das Mapping nach der Reihenfolge (entsprechend der COMPONENT-Deklaration) vorgenommen (''positional association''), bei instance1b durch eine sog. ''named association''.

Die instance2 schließlich wird wieder hierarchisch konfiguriert.