ID de l'article: 000078358 Type de contenu: Messages d'erreur Dernière révision: 13/04/2007

Erreur (10170) : erreur de syntaxe HDL Verilog à <design>.v près du texte « localparam » ; attendre « fin », ou un identifiant (« localparam » est un mot clé réservé ), ou une déclaration séquentielle</design>

Environnement

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descriptif

Cette erreur se produit uniquement dans la version 6.0 du logiciel Quartus® II (y compris la version 6.0 SP1), si la conception utilise des déclarations localparam à l’intérieur des déclarations de générer, comme dans l’exemple ci-dessous, car le logiciel applique certaines règles linguistiques Verilog plus strictement que toutes les autres versions.

generate
    for (i = 0; i < WIDTH; i = i 8)
  begin : my_loop
  localparam j = i 7 > WIDTH-1 ? WIDTH-1 : i 7;
  localparam k = BASE (i>>3); ...
endgenerate

Le manuel de référence linguistique (LRM) de Verilog indique la règle suivante :

Les déclarations de modules et les éléments de module qui ne doivent pas être autorisés dans une déclaration de génération comprennent : paramètres, paramètres locaux, déclarations d’entrées, déclarations de sortie, déclarations de sortie, déclarations de sortie et blocs de spécifient. 1364-2001 LRM 12.1.3

Pour éviter l’erreur et implémenter la même fonctionnalité, placez les relevés de paramètres locaux dans un bloc toujours bloqué comme dans l’exemple ci-dessous :

generate

   for (i = 0; i < WIDTH; i = i 8)

   begin : my_loop

      always @(posedge clk or posedge reset)

         begin : my_params

            localparam j = i 7 > WIDTH-1 ? WIDTH-1 : i 7;

            localparam k = BASE   i>>3);

            ...

endgenerate

Produits associés

Cet article concerne 1 produits

Circuits programmables Intel®

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.