ID de l'article: 000090227 Type de contenu: Messages d'erreur Dernière révision: 08/08/2023

Erreur(13224) : erreur Verilog HDL ou VHDL à <your module="" name="">.sv(<your line="" number="">) : <your index=""> l’index est hors de la plage [<your range="">] pour '<your variable="">'</your></your></your></your></your>

Environnement

  • Intel® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descriptif

    En raison d’un problème dans le logiciel Intel® Quartus® Prime Pro Edition version 21.4 et antérieure, vous pouvez voir cette erreur pendant l’étape d’analyse et de synthèse. Cela est dû au fait que les interfaces paramétrées n’ont pas réussi à remplacer les variables logiques localparam de l’interface SystemVerilog par les variables wrapper de niveau supérieur.

    Dans l’exemple ci-dessous, les variables logiques localparam ADDR_W et DATA_W, avec les paramètres 4 et 1, ne sont pas remplacées par les variables wrapper de niveau supérieur, avec les paramètres 5 et 8 respectivement.

    Wrapper de niveau supérieur :

    module mem_wrapper #( int ADDR_W = 5, int DATA_W = 8 )

    ...

    mem_if #( ADDR_W, DATA_W ) mem_if ( i_clk_a );

    mem mem ( mem_if );

    ...

    module d’extrémité : mem_wrapper

    Interface:

    interface mem_if #( int ADDR_W = 4, int DATA_W = 1 ) ( input clk );

    Logique localparam [DATA_W - 1:0] INIT_V [2 ** ADDR_W] = '{default: '1};

    ...

    modport mem (input clk, addr, wren, idat, output odat) ;

    endinterface : mem_if

    Modport :

    module mem ( mem_if.mem mem_if );

    logique [mem_if. DATA_W - 1:0] mem [2 ** mem_if. ADDR_W];

    Initiale
    for(int i = 0; i < 2 ** mem_if. ADDR_W; i++)
    mem[i] = mem_if. INIT_V[i];

    ...

    Module d’extrémité : MEM

    Résolution

    Pour éviter cette erreur, n’utilisez pas la logique localparam dans l’interface SystemVerilog.

    Par exemple :

    Interface:

    interface mem_if #( int ADDR_W = 4, int DATA_W = 1 ) ( input clk );

    logique [DATA_W - 1:0] INIT_V [2 ** ADDR_W] = '{default: '1};

    ...

    modport mem (input clk, addr, wren, idat, output odat, INIT_V);

    endinterface : mem_if

    Ce problème est résolu à partir de la version 22.4 du logiciel Intel® Quartus® Prime Pro Edition.

    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.