kurzzeitig 'X' Zustände beim Simulieren

Gast #728581
Lesenswert?

Hallo,

ich habe in der Postfit Simulation an einer Stelle einen Takt lang einen 
undefinierten Zunstand 'X' auf einem Signal.
Zu diesem Zeitpunkt interessiert mich der Wert aber gar nicht und wird 
bis zur "wichtigen" Abfrage auch definiert (mit dem gewünschten Wert).

Meine Frage nun, muss ich weiter nach möglichen Fehlern suchen?
"Raucht" mir, falls ich dieses Design in einen CPLD flashe dieser ab?

Danke!
Gast #728619
Lesenswert?

Wenn du 'X' auf einem Signal hast, hast du mindestens zwei Prozesse, die 
das Signal beschreiben. Das kann aber nicht funktionieren, wenn diese 
Prozesse immer dann, wenn es nicht näher bestimmt ist, irgendwas 
schreiben, vielmehr brauchst du dann Tristate-Logik, der Prozess, der 
nichts besseres weiß, sollte also seinen Ausgang auf 'Z' legen.
Gast #728631
Lesenswert?

ISt das wirklich so? Deutet das x IMMER auf konkurrierendes Schreiben ?
Könnte die Ursache nicht auch darin liegen, daß ein Signal nicht 
initialisiert ist unddaher irgendwas falsch schaltet, sodaß es dann erst 
dadurch (im Simulator) dazu kommt - während es real garnicht passieren 
kann?

Ich denke da ein Register im RAM, die etwas steuern, wobei der Simulator 
den Inhalt der REgister nicht sieht.
#728663
Lesenswert?

FPGA-Fragender wrote:
> ISt das wirklich so? Deutet das x IMMER auf konkurrierendes Schreiben ?

Ja; beim Datentyp std-logic(-vector) entsteht das "X" nur bei der 
Verknüpfung von "0" und "1" bzw. von "0" oder "1" mit "-".

> Könnte die Ursache nicht auch darin liegen, daß ein Signal nicht
> initialisiert ist unddaher irgendwas falsch schaltet, sodaß es dann erst
> dadurch (im Simulator) dazu kommt - während es real garnicht passieren
> kann?

Nein. Für nicht initialisierte Signale gibt es beim Datentyp 
std-logic(-vector) eigens den Zustand "U" (uninitialized).
Für nähere Informationen siehe Library ieee.std_logic_1164. Dort gibt's 
alle möglichen Zustände sowie die resolution table.

> Ich denke da ein Register im RAM, die etwas steuern, wobei der Simulator
> den Inhalt der REgister nicht sieht.

Verstehe ich jetzt nicht so ganz. Wenn aus einem Baustein, den man nur 
als Black Box vor sich hat, ein "X" herauskommt, läuft im Baustein was 
schief. Eigentlich sollte jeder Baustein so gestaltet sein, dass er auch 
bei ungültigen Eingangskombinationen einen gültigen Ausgangswert 
liefert. "X" gehört da sicher nicht hinzu.


MfG

Patrick

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren