ID de l'article: 000084340 Type de contenu: Dépannage Dernière révision: 14/11/2006

Pourquoi le logiciel utilise-t-il des paramètres incorrects pour ma configuration VHDL ?

Environnement

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descriptif

Ce problème peut survenir en raison de la manière dont l’analyse et la synthèse analysent les valeurs du paramètre VHDL pour deux instances VHDL ou plus qui sont configurées avec la même configuration. L’analyse et la synthèse utilisent un paramètre de valeur pour toutes les instances VHDL de la même entité, même lorsque vous prévoyez d’utiliser une valeur de paramètre différente pour chaque instance.

Ce problème de synthèse incorrecte se produit dans les versions 6.0 et antérieures du logiciel Quartus® II, et est corrigé à partir de la version 6.1 du logiciel Quartus II.

Par exemple, lorsque ce problème peut survenir, la conception suivante utilise la même configuration « my_entity_cfg » pour toutes les instances de « my_entity ».

CONFIGURATION my_top_cfg OF my_top IS
  FOR top_arc
    FOR ALL: my_entity
      USE CONFIGURATION work.my_entity_cfg;
    END FOR;
   END FOR;
END my_top_cfg;

Pour cette conception, vous pouvez créer « inst1 » et « inst2 » pour « my_entity » dans votre conception de haut niveau et transmettre deux valeurs de paramètres différentes à la fois à l’inst1 et à l’inst2. Dans l’exemple ci-dessous, les termes « inst1 » et « inst2 » sont instantanés dans la conception de haut niveau. La conception de haut niveau transmet la valeur « un » à l’inst1 et la valeur « deux » à l’inst2.

inst1: my_entity
    GENERIC MAP(type => one)
    PORT MAP(
            data0   => a,
            data1 => b,
            result => one_out);
                     
inst2: my_entity
    GENERIC MAP(type => two)
    PORT MAP(
            data0   => a,
            data1 => b,
            result => two_out);

Dans cet exemple, les versions 6.0 et antérieures du logiciel Quartus II utilisent la valeur de paramètre « deux » pour « inst1 » et « inst2 », ce qui peut entraîner un comportement de conception incorrect.

Pour résoudre ce problème dans les versions 6.0 et antérieures, créez une copie de la configuration « my_entity_cfg » appelée « my_entity_cfg1 ». Modifiez la conception de haut niveau pour utiliser les deux noms de configuration différents, comme dans la modification suivante apportée à l’exemple précédent :

    FOR inst1: my_entity
      USE CONFIGURATION work.my_entity_cfg;
    END FOR;

    FOR inst2: my_entity
      USE CONFIGURATION work.my_entity_cfg1;
    END FOR;

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.