ID de l'article: 000080467 Type de contenu: Dépannage Dernière révision: 03/04/2019

Pourquoi mon attribut ram « no_rw_check » est-il ignoré dans la version 16.0 du logiciel Intel® Quartus® Prime ?

Environnement

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

En raison d’un problème dans les versions 16.0 et ultérieures du logiciel Intel® Quartus® Prime, vous pouvez constater que l’attribut de « no_rw_check » est ignoré si vous constatez que la sortie de la RAM est de l’avis d’un signal intermédiaire plutôt que d’un port de sortie. Ce problème ne se produit pas dans la version 15.1 et antérieure du logiciel Intel Quartus Prime.

Si vous avez une conception migrée vers la version du logiciel Intel Quartus Prime 16.0 et une version ultérieure, consultez le rapport en cours d’analyse et de synthèse -> LPM_Parameter paramètres -> RAM. Assurez-vous que le paramètre READ_DURING_WRITE_MODE_MIXED_PORTS a une valeur de DON’T CARE si l’attribut « no_rw_check » est utilisé.

L’exemple ci-dessous montre qu’aucun code d’attribut « no_rw_check » détecté dans la version 16.0 du logiciel Intel Quartus Prime :

LIBRARY ieee ;

UTILISEZ ieee.std_logic_1164.ALL ;

RAM D’ENTITÉ IS

PORT (

horloge : IN STD_LOGIC ;

données : IN STD_LOGIC_VECTOR (2 DOWNTO 0) ;

write_address : INTEGER RANGE 0 À 31 ;

read_address : INTEGER RANGE 0 à 31 ;

nous : IN STD_LOGIC ;

q : STD_LOGIC_VECTOR (2 DOWNTO 0)

);

RAM END ;

ARCHITECTURE rtl OF ram IS

TAPEZ MEM IS ARRAY (0 À 31) DE STD_LOGIC_VECTOR (2 DOWNTO 0) ;

ram_block SIGNAL : MEM ;

RAM entre les attributs : chaîne ;

RAM entre attributs de ram_block : le signal est « no_rw_check » ;

READ_ADDRESS_REG SIGNAL : PLAGE INTEGER COMPRISE ENTRE 0 ET 31 ;

Q_REG SIGNAL : STD_LOGIC_VECTOR (2 DOWNTO 0) ;

COMMENCER

PROCESSUS (horloge)

COMMENCER

SI (clock’event AND clock = '1') ALORS

SI (nous = « 1 »),

ram_block(write_address) <= données ;

FIN SI ;

read_address_reg <= read_address ;

FIN SI ;

pas détecté d’attribut « no_rw_check » du code coupé dans la version 16.0 du logiciel Intel Quartus Prime

------------------------------------------------------------------------------------

SI (clock’event AND clock = '1') ALORS

q_reg <= ram_block(read_address_reg) ;

FIN SI ;

q <= q_reg ;

------------------------------------------------------------------------------------

PROCESSUS DE FIN ;

END rtl ;

Résolution

Pour contourner ce problème, activez la logique d’extension du transfert direct sur les RAM inférés dans le

Affectation -paramètres > -paramètres du compilateur > -> paramètres avancés (synthèse)

Ou

Remplacez le signal de sortie de la RAM comme port de sortie sans utiliser de signal intermédiaire, en remplaçant le code ci-dessus coupé par le code ci-dessous :

------------------------------------------------------------------------------------

SI (clock’event AND clock = '1') ALORS

q <= ram_block(read_address_reg) ;

FIN SI ;

------------------------------------------------------------------------------------

Ce problème devrait être résolu dans une prochaine version du logiciel Intel Quartus Prime Pro edition.

Produits associés

Cet article concerne 1 produits

Circuits programmables Intel®

1

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.