I ont une FIFO qui a une interface qui ressemble à quelque chose comme ceci:lecture des ports pour le débogage
entity fifo is
port (
CLK : IN std_logic := '0';
DIN : IN std_logic_vector(31 DOWNTO 0);
ALMOST_EMPTY : OUT std_logic;
ALMOST_FULL : OUT std_logic;
DOUT : OUT std_logic_vector(31 DOWNTO 0);
...
WR_ACK : OUT std_logic
);
end fifo;
Cette interface est donnée et je ne peux pas changer est. La chose est maintenant, à des fins de débogage, je veux voir ce qui est écrit et lu vers/depuis le FIFO. En d'autres termes, idéalement je voudrais assigner deux déboguer les valeurs in et out du FIFO, ie.
DBG_FIFO_IN <= DIN;
DBG_FIFO_OUT <= DOUT;
Pour des raisons évidentes, la deuxième mission me donne le message d'erreur suivant:
[exec] ERREUR: HDLParsers: 1401 - Objet DOUT du mode ne peut pas être lu. Donc, je me demande s'il y a un moyen de donner la valeur DOUT à mon symbole de débogage de quelque manière que ce soit. L'interface est donnée, donc je ne peux pas faire de DOUT un signal inout.
Merci beaucoup pour vos commentaires utiles!
Attention en utilisant la première option dans un processus cadencé - vous vous retrouverez avec un seul retard de cycle entre les deux signaux. La deuxième forme est préférable pour cela (mais si vous changez "votre logique ici" vous devrez vous rappeler de changer les deux ...) –
La façon dont nous faisons habituellement ceci est en mettant le 'DBG_FIFO_OUT <= (votre logique ici) ; 'à l'intérieur du processus cadencé et' DOUT <= DBG_FIFO_OUT; 'en dehors de celui-ci (avec toutes les autres sorties qui ont besoin du même traitement) – QuantumRipple