Section courante

A propos

Section administrative du site

END

Fin
VHDL

Syntaxe

block_label : block (optional_guard_condition)
declarations
begin
concurrent statements
end block block_label;
case sel is
   when choice_1 =>
      sequential_statements1;
   when choice_2 =>
      sequential_statements2;
      ...
   when others =>
      sequential_statements_other;
end case;
component component_name [ is ]
   generic (generic_list);
   port (port_list);
end component component_name;
configuration configuration_name of entity_name is
   configurationdeclarations
   for architecture_name
      for instance_label:component_name
         use entity library_name.entity_name(arch_name);
      end for;
   otherforclauses
   end for;
end [configuration] [configuration_name];
configuration configuration_name of entity_name is
   configurationdeclarations
   for architecture_name
      for instance_label:component_name
         use configuration library_name.config_name;
      end for;

   otherforclauses
   end for;
end [configuration] [configuration_name];
label : for parameter in range generate
[ { declarations }
begin ]
{ concurrent_statements }
end generate [ label ] ;
label : if condition generate
[ { declarations }
begin ]
{ concurrent_statements }
end generate [ label ];
if condition then
   sequential_statements_true
end if;
if condition then
   sequential_statements_true
else
   sequential_statements_false
end if;
if condition then
   sequential_statements_true
elsif condition then
   sequential_statements
else
   sequential_statements_false
end if;
loop_label: while condition loop
   sequence_of_statements
end loop loop_label;
loop_label: for loop_parameter in range loop
   sequence_of_statements
end loop loop_label;
[process_label:] process [ ( sensitivity_list ) ] [ is ]
process_declarations
begin
   sequential_statements
end process [ process_label ] ;
type record_type_name is record
   element_name : element_type;
   element_name : element_type;
   ...
end record record_type_name;
type units_type_name is range rang
units
   element_name = value element_name;
   element_name = value element_name;
   ...
end units;

Paramètres

Nom Description
block_label Ce paramètre permet d'indiquer le nom de l'étiquette du bloc.
optional_guard_condition Ce paramètre optionnel permet d'indiquer la condition de surveillance.
declarations Ce paramètre permet d'indiquer les déclarations du bloc.
concurrent statements Ce paramètre permet d'indiquer les instructions concurrentes.
sel Ce paramètre permet d'indiquer l'expression à évaluer
choice_1, choice_2... Ces paramètres permettent d'indiquer une valeur à évaluer
sequential_statements1, sequential_statements2... Ces paramètres permettent d'indiquer l'instruction exécuté si la valeur correspond
sequential_statements_other Ce paramètre permet d'indiquer l'instruction exécuté si aucune valeur ne correspond
component_name Ce paramètre permet d'indiquer le nom de la composante.
generic_list Ce paramètre permet d'indiquer la liste générique de la composante.
port_list Ce paramètre permet d'indiquer la liste de port de la composante.
configuration_name Ce paramètre permet d'indiquer le nom de la configuration.
entity_name Ce paramètre permet d'indiquer le nom de l'entité.
configurationdeclarations Ce paramètre permet d'indiquer la liste des déclarations de configuration.
architecture_name Ce paramètre permet d'indiquer le nom de l'architecture.
instance_label Ce paramètre permet d'indiquer le nom de l'étiquette de l'instance.
component_name Ce paramètre permet d'indiquer le nom de la composante.
arch_name Ce paramètre permet d'indiquer le nom de l'architecture à utiliser.
library_name Ce paramètre permet d'indiquer le nom de la bibliothèque.
config_name Ce paramètre permet d'indiquer le nom de la configuration.
label Ce paramètre permet d'indiquer le nom de l'étiquette de la génération.
parameter Ce paramètre permet d'indiquer la variable de compteur de la boucle.
range Ce paramètre permet d'indiquer l'intervalle de la boucle.
declarations Ce paramètre permet d'indiquer les déclarations de la génération.
concurrent_statements Ce paramètre permet d'indiquer les instructions concurrents.
condition Ce paramètre permet d'indiquer une condition à vérifier.
sequential_statements_true Ce paramètre permet d'indiquer une liste d'instructions séquentiel a exécuter si la condition vrai.
sequential_statements Ce paramètre permet d'indiquer une liste d'instructions séquentiel a exécuter si la deuxième condition est vrai.
sequential_statements_false Ce paramètre permet d'indiquer une liste d'instructions séquentiel a exécuter si toutes les conditions sont fausses.
loop_label Ce paramètre permet d'indiquer le nom de l'étiquette de la boucle.
condition Ce paramètre permet d'indiquer une condition vrai à satisfaire pour rester dans la boucle.
sequence_of_statements Ce paramètre permet d'indiquer la séquence d'instructions à exécuter à chaque passage de la boucle.
loop_parameter Ce paramètre permet d'indiquer la variable de compteur de la boucle.
range Ce paramètre permet d'indiquer l'intervalle du compteur de la boucle.
process_label Ce paramètre permet d'indiquer le nom de l'étiquette du processus.
sensitivity_list Ce paramètre permet d'indiquer la liste sensitive du processus.
process_declarations Ce paramètre permet d'indiquer les déclarations du processus.
sequential_statements Ce paramètre permet d'indiquer une liste d'instructions séquentiel.
record_type_name Ce paramètre permet d'indiquer le nom du type d'enregistrement.
element_name Ce paramètre permet d'indiquer le nom de l'élément.
element_type Ce paramètre permet d'indiquer le type de données de l'élément.
units_type_name Ce paramètre permet d'indiquer le nom de l'unité de mesure.
rang Ce paramètre permet d'indiquer l'intervalle du type de données.
element_name Ce paramètre permet d'indiquer le nom de l'élément.
value Ce paramètre permet d'indiquer la quantité multipliant l'élément.

Description

Ce mot réservé permet d'indiquer la fin d'un architecture, d'une configuration, d'une entité, d'un module, d'un corps de module ou d'une instruction de processus.



Dernière mise à jour : Mercredi, le 30 mai 2018