Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2844 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [VHDL] Question concernant les case avec des if

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VHDL] Question concernant les case avec des if

n°2065204
maxilien
Posté le 21-03-2011 à 23:07:37  profilanswer
 

Bonjour, je débute en VHDL et j'ai une question, j'ai crée un process dans lequel j'ai mis un case
 
case valeur
   when '1'
       if une_certaine_condition
             valeur <= valeur +1;
      end if;
 
  when '2'
       ....
 
Je voulais savoir ce qu'il se passait si le condition n'était pas vérifiée.
Est-ce que ça passe dans le cas 2 ? le cas others ? ça bloque ? le process continuera à tourner et aller dans ce cas tant que la condition n'est pas vérifié ?
 
Merci de votre réponse !

mood
Publicité
Posté le 21-03-2011 à 23:07:37  profilanswer
 

n°2065206
h3bus
Troll Inside
Posté le 21-03-2011 à 23:31:40  profilanswer
 

Syntaxiquement ton code est un peu bizarre mais bon je le comprends comme une présentation de concept.
 
Si la condition n'est pas vérifiée, tu sors du case.  
 
Par exemple avec ce code

Code :
  1. case valeur is
  2.    when 1 =>
  3.    
  4.    when 2 =>
  5.          valeur <= valeur +1;
  6.  
  7. end case;


 
Si valeur vaut 1 tu ne rentre que dans le cas 1 et donc tu ne fais rien.


---------------
sheep++
n°2065214
esox_ch
Posté le 22-03-2011 à 07:15:41  profilanswer
 

À part ça, c'est une mauvaise idée de procéder de cette manière (ne pas taiter tous les cas) car ça infère des latches, ce qui en général n'est pas voulu


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2065220
h3bus
Troll Inside
Posté le 22-03-2011 à 08:34:39  profilanswer
 

esox_ch a écrit :

À part ça, c'est une mauvaise idée de procéder de cette manière (ne pas taiter tous les cas) car ça infère des latches, ce qui en général n'est pas voulu


Pas vraiment, tout dépend d'où tu décris tes cas.
Par contre ce qui est sur c'est que ta simulation risque de planter si tu n'a pas de "others" alors que le synthétiseur va inférer cette clause. Cela crée une différence entre simulation et matériel ce qui n'est jamais souhaitable.
 
Mais bon c'est un chouilla HS...


---------------
sheep++
n°2065315
esox_ch
Posté le 22-03-2011 à 15:29:53  profilanswer
 

Pas vraiment :o. Suffi de ne pas penser en mode "Programmation" (ce qui est généralement une très mauvaise idée en VHDL) mais de penser en mode "hardware".
 
Quand tu écris ton when avec le signal "valeur" qui a une valeur uniquement dans une des branches, ton synthétiseur il ne saura pas quoi en faire quand il passe dans l'autre => Il va donc mettre un latch. C'est pas forcément un problème, mais les débutants n'en sont pas toujours conscients ... Pour cette raison on préconise parfois de faire "apparaître" le latch en travaillant sur des variables à l’intérieur du process et en les traduisant en signal juste avant la fin du process.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2065367
h3bus
Troll Inside
Posté le 22-03-2011 à 21:28:02  profilanswer
 

esox_ch a écrit :

Pas vraiment :o. Suffi de ne pas penser en mode "Programmation" (ce qui est généralement une très mauvaise idée en VHDL) mais de penser en mode "hardware".
 
Quand tu écris ton when avec le signal "valeur" qui a une valeur uniquement dans une des branches, ton synthétiseur il ne saura pas quoi en faire quand il passe dans l'autre => Il va donc mettre un latch. C'est pas forcément un problème, mais les débutants n'en sont pas toujours conscients ... Pour cette raison on préconise parfois de faire "apparaître" le latch en travaillant sur des variables à l’intérieur du process et en les traduisant en signal juste avant la fin du process.


 
Tout dépend d'où est ton case... si il est dans un process cadencé par une horloge par exemple, pas de latch.
 
Après c'est sûr que ça reste relativement dangereux et à proscrire pour un débutant.


---------------
sheep++

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [VHDL] Question concernant les case avec des if

 

Sujets relatifs
Question sur les fichiers .vcfQuestion Clés Primaires MySQL pour notre cas...
[obj-c] Question de maths..Question optimisation
Besoin d'aide concernant résultat suivi de colis[Flash/ActionScript] faire question / réponse
question sur un constructeur[Joomla] Petite question : catégories
Plus de sujets relatifs à : [VHDL] Question concernant les case avec des if


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR