IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VHDL Discussion :

Test dans un generate


Sujet :

VHDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur/Chercheur
    Inscrit en
    Novembre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur/Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 123
    Par défaut Test dans un generate
    Bonjour,
    j'utilise une boucle pour générer des composants et je voudrais faire un test dans cette boucle. Je vous donne un bout de code pour illustrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	boucle : for j in 0 to N-1 generate
    		if (n_b=3) then
    			n_p <= n_p+1;
    			n_b <= 0;
    		else
    			n_b <= n_b+1;
    		end if;
    	end generate boucle;
    où n_b et n_p sont des "signal integer := 0".
    Mais la compilation ne passe pas. Modelsim me dit "Illegal concurrent statement."
    Comment je dois faire ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Par défaut
    la boucle if doit être utilisée dans un process.
    Par contre, vous devriez rencontrer un autre problème plus "hard" : piloter plusieurs fois le même objet (ici n_b ou n_p) n'est possible que si l'objet est un type résolu. std_logic et std_logic_vector sont les seuls types résolus en VHDL. Le type integer n'en fait donc pas partie...
    Essayez plutôt d'utiliser la boucle "loop" au lieu du generate (donc dans un process)
    Enfin, que ce soit la 1ère ou la 2ème solution, guère synthétisable...

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur/Chercheur
    Inscrit en
    Novembre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur/Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 123
    Par défaut
    Et si n_b et n_p sont déclarés comme variable et pas comme signal ?
    Pourquoi n'est-ce pas trop synthétisable ?
    Comment je peux remplacer le for...generate par un for...loop pour générer des choses ?
    Je voudrais instancier des modules et incrémenter n_b à chaque fois jusqu'à 3 puis réinitialiser n_b et incrémenter n_p et continuer N fois. Vous feriez comment ?

    Merci pour les conseils.

Discussions similaires

  1. Conditions d'un test dans un generate
    Par binome-x dans le forum VHDL
    Réponses: 1
    Dernier message: 21/11/2014, 22h22
  2. [FLASH MX2004] Test dans une "frame" ?
    Par Invité1 dans le forum Flash
    Réponses: 7
    Dernier message: 26/07/2005, 18h15
  3. Faire un test dans une procédure
    Par PrinceMaster77 dans le forum SQL
    Réponses: 1
    Dernier message: 23/11/2004, 09h55
  4. Ordre des tests dans la clause WHERE
    Par Tans98 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/09/2004, 10h52
  5. Probleme de test dans un boucle
    Par PrinceMaster77 dans le forum ASP
    Réponses: 14
    Dernier message: 15/06/2004, 12h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo