anfänger-frage

Gast #493861
Lesenswert?

hallo,

ich bringe mir grade selbst vhdl bei (beschränkt auf synthetisierbare 
konstrukte)

was aus meiner literatur mir nciht so einleuchtend hervorging möchte ich 
hie kurz fragen...

worin besteht der unterschied zwschen std_logic und std_ulogic?


ich danke schon ma für eure antworten :)
#493879
Lesenswert?

std_logic ist die sogenanne "resolved" version von std_ulogic.
(u steht für unresolved).
Unresolved signale kann man nur in einem einzigen Prozess zuweisen.
Wenn man unresolved Signale aus mehreren Prozessen zuweist, dann gibt es 
einen Konflikt, der bei nicht aufgelöst werden kann -> eben 
"unresolved".

Bei resolved Signalen wie std_logic wird der resultierende Wert anhand 
einer Tabelle bestimmt. Dies wird bei der Simulation von Bus-signalen 
benötigt.
Ein Gerät will z.B. '1' auf den Bus schreiben, das andere Gerät '0' -> 
die Tabelle ergibt ein 'X', damit man sieht, hier stimmt etwas nicht.

Resolved signale werden im Prinzip nur für die Simulation benötigt. 
Innerhalb eines synthetisierbaren Designs sollte man niemals aus 
mehreren Prozessen das selbe Signal setzen. Beim Compiler gibt es meist 
eine Einstellung, ob er in diesem Fall überhaupt einen Fehler generieren 
soll, oder ob mittels einer ODER oder UND Funktion das resultierende 
Signal berechnet wird.

Grüße
Klaus

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