J'essaie de tester un composant VHDL , mais je ne peux pas sembler obtenir cela Un port d'inuite pour me donner tout comportement. J'ai essayé de définir le port à tout de '1' à '-', mais il apparaît toujours comme «u» dans la simulation. Des sucettes ce qui pourrait être faux? p>
4 Réponses :
Vous avez besoin d'un pilote explicite sur 'Z'. P>
Je réalise que c'est le cas, mais je ne sais pas ce que cela signifie dans le code VHDL
pour le port inout (par exemple en RAM): Vous attribuez des données lisez et écrivez pour inout avec une condition. Lorsque les données sont lues, il est entraîné par un autre module. Quand il écrit, il est entraîné par interne. P>
J'ai essayé de définir le port vers tout de '1' à '-', mais il apparaît toujours comme "u" dans la simulation. p> blockQuote>
Enfer à la bonne réponse à l'affectation / lecture des ports Inout, le texte ci-dessus pourrait être lié au port étant attribué à deux endroits distincts, il est donc résolu comme «U». P>
Lorsque vous utilisez un port inout, j'ai été mordu par un outil de synthèse instanciant d'une OBUF au lieu d'une IOBUF lorsque les déclarations VHDL étaient apparemment trop compliquées pour la synthèse pour déduire l'IOBUF. Ce qui suit est un exemple simplifié (supposons que tous les signaux sont STD_Logic) de la situation qui mord peu: dans mon cas de défaillance, la synthèse générée un obuf pour data_inout. J'aurais attendu qu'un IOBUF gère le cas de choisi_a = '0' et float_b = '1' car cela aurait dû être attribué 'z' à data_inout, mais ce n'est pas ce que j'ai eu. p> p>
La définition explicitement sur Z a fait le port donnez-moi les données, mais maintenant je ne peux pas sembler obtenir les signaux internes à lire du port :(