VHDL: problème fonction de résolution

T

toninlg

Guest
Code:data_in: INOUT STD_LOGIC_VECTOR (7 downto 0)

signal de données: STD_LOGIC_VECTOR (7 downto 0);

 
Comment vos réels FPGA saura que data_in »dans« l'état de A à Z
parce '111111 'il est très similaire à' ZZZZZ '?
Vous pouvez le faire que par des mesures, mais pour quoi faire FPGA?

Je pense que vous devez créer signal supplémentaire, qui
confirmer les données valables sur data_in:

std_logic valid_data signal: '0 ', '0' données non valides, '1 'data_valid

if (valid_data = '1 ') puis <= données data_in, c'est chaîne correcte, mais asynchrone

Plus fiables et correctes (sur front montant de CLK):

if (clk'event et CLK = '1 'et valid_data = '1') puis <= données data_in

 
Je pense que je ne comprends pas très bien l'état haut-Z, c'est le problème.

En ajoutant signal supplémentaire que tu voulais dire soit un imput écrire?En fait j'ai une entrée écrire, mais dans la simulation si je jeu de données à tous les 'Z', a été contraint de data_in inconnu.Je suppose que, comme pour d'autres IC, les données doivent être valides avant le signal Rédiger et qu'il n'y a rien à faire si l'entrée en écriture est activé lorsque bus de données est encore haut-Z?

 
Désolé pour ma réponse fisrt ce n'est pas tout à fait exact.

Z-état est l'état haute impédance du pilote de sortie.
La production de A à Z à l'état isolé de l'entrée, la même situation
Lorsque vous placez 10Mom résistance en série de la production à
d'entrée.Toute la valeur de la production ne parviennent pas entrée.
Suivant: vous avez data_in INOUT bus de FPGA à l'extérieur du monde
et les données = signal interne.
data_in est de bus fonctionne en mode INOUT que représente la consommation
et de sortie reliées entre elles.

Pourquoi utilisez-vous INOUT bus si c'est la seule destination des données INPUT
(À en juger sur le nom data_in). Si c'est le cas, l'utilisation en mode (c.-à-data_in: IN std_logic_vector ..)

Si ce n'est pas, et vous avez besoin inout bus bidirectionnel, et aller plus loin.
Comme je l'ai dit, signifie INOUT broche d'entrée et de pilote de sortie reliées entre elles.S'il n'y a aucune valeur sur le pilote de sortie, que la même valeur, vous verrez
sur l'entrée.entrée plus forte Driver, vous voyez la valeur de sortie vers l'arrière sur l'entrée,
car ils reliés entre eux.
Si vous voulez voir la valeur du pilote externe connecté à votre broches d'E / S sur
data_in bus d'E / S, vous devez placer votre bus de sortie à l'état Z.
Si vous placez pas votre sortie à l'état de A à Z dans le pire des cas pilote externe
seront lutte interne avec vous le pilote de sortie.Gagnez plus forte.Et vous
voir le résultat de ces combats sur votre data_in entrée.
Lorsque votre sortie placé dans l'état A à Z de votre sortie est isolée de l'entrée,
et vous verrez signal du conducteur externe connecté à cet axe.
C'est pourquoi vous devez utiliser Z-État.

Maintenant, votre data_in dans Z-Etat et que vous êtes en attente des données correctes à partir de l'extérieur
conducteur.
Si vous attribuer de façon permanente <= données data_in, que les données «réglé état inconnu.
Eh bien, il n'est pas le problème.Lorsque vous placez des données externes à data_in, vous ne
ont aucun signal dans les broches externes, qui accompagne avec des données valides.
Si vous avez, pas de problème.Test ce signal et seulement lorsque le signal
valable, céder <= données data_in.
Si vous n'avez pas un tel signal, comment définir les FPGA exactitude des données sur le bus data_in?

 
J'ai d'utiliser inout, lorsque Ecrire est de permettre à jour les données de signal interne et lu est de permettre j'ai mis le signal de données interne sur data_in (le nom n'est pas très bien choisi, mais il s'agit de la tentative multiples).Il ya aussi une puce sélectionner.
Citation:Si vous voulez voir la valeur du pilote externe connecté à votre broches d'E / S sur

data_in bus d'E / S, vous devez placer votre bus de sortie à l'état Z.

 
toninlg a écrit:

Si j'utilise une tige inout comment puis-je placer le bus de sortie à l'état de A à Z?
Je pensais que data_in mise à l'état de A à Z, a été la solution pour que les données externes sur la broche d'E / S?

 
Pourquoi ne pas que ce soit?
Je ne pense pas que cela est nécessaire pour convertir Z à 1 ou 0.

 
Je ne parle pas de la conversion de A à Z à 0 ou 1, mais détecter si le bus de données a été haut-z.Parce que dans la simulation de bus de données est si haute-Z du signal de données est contraint à un inconnu.Mais j'étais mélangeant la simulation et du matériel réel.Dans le matériel si le bus est haute-Z l'entrée verrez 0, 1 ou une valeur oscillant entre 0 et 1.
Je n'ai pas très bien comprendre comment faire un bus bidirectionnelle en VHDL; J'ai vu quelques messages sur ce sujet, je ne suis pas la pensée que c'est confus.

 
Vous ne pouvez pas détecter Haute Z. Z High est un état modifiable.Si un processus est en permanence au volant d'une ligne de signal à "l'état de A à Z", puis un autre processus peut remplacer l'Etat par la mise en permanence un 0 ou 1 sur la ligne même signal.Vous ne pouvez pas capturer un état A à Z.(Vous ne pouvez pas l'horloge à l'autre signal.) Il s'agit d'un état inconnu parce que sa valeur booléenne est imprévisible.

 

Welcome to EDABoard.com

Sponsor

Back
Top