ID de l'article: 000074592 Type de contenu: Dépannage Dernière révision: 04/09/2012

Pourquoi le logiciel Quartus II ne synthétise-t-il pas correctement les variables de batterie signées emballées dans SystemVerilog ?

Environnement

  • Édition d'abonnement Intel® Quartus® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descriptif

    En raison d’un problème dans le logiciel Quartus® II, il est possible que les variables de batteries emballées signées dans SystemVerilog ne soient pas correctement synthétisées. Ce problème peut survenir lors de l’affectation d’une variable de batterie unidimensionnel à une variable de batterie emballée signée si la plage d’index n’est pas explicitement spécifiée.

    Par exemple, le code suivant peut être synthétisé incorrectement par le logiciel Quartus II :

    logic clk;
    logic signed [3:0][31:0] packed_array_variable;
    logic signed [31:0] array_variable;

    always_ff @ (posedge clk)
        packed_array_variable[0] <= array_variable;
    Résolution

    Pour contourner ce problème, il est explicitement impossible de déterminer la plage d’index lors de l’affectation d’une variable d’ensemble unidimensionnel à une variable de batterie emballée.

    Par exemple, dans le code ci-dessus, changez la dernière ligne pour :

        packed_array_variable[0][31:0] <= array_variable;

    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.