Forum: FPGA, VHDL & Co. Was bringen std_logic-Variablen


von Christian P. (kron)


Lesenswert?

Hallo,

ich arbeite hier gerade ein Design durch (nicht von mir)
und finde oft in Prozessen std_logic- bzw. std_logic_vector-Variablen.

Hat die Verwendung solcher Variablen irgendwelche Vorteile?

Gilt hier auch, dass die Wertzuweisung dieser Variablen sofort erfolgt 
(also die Wertzuweisung von Signalen)?

Was passiert dann, wenn die Werte der Variablen wieder Signal zugewiesen 
werden, und wann passiert es?

Kann ich nicht das Gleiche nur mit Signalen erreichen?

von Manfred (Gast)


Lesenswert?

Bei std_logic ist der Vorteil, dass die Logik 7-wertig ist. Wenn du z.B. 
Signalkonflikte hast, ist das Signal dann ein 'X'. Oder ist es nicht 
initialisiert ein 'U' usw.

Es gibt dazu auch Verknüpfungstabellen was z.B. bei '1' und '0' 
rauskommt, wenn sie miteinander verbunden werden (Kurzschluss: 'X')

Wenn man die in Prozessen verwendet, dann kann man zum Beispiel außen 
dann sehen - irgendwann werden die Werte ja doch nach draußen gegeben wo 
sie in ein signal z.B. reinkommen - ob es einen Fehler im Prozess gibt 
mit irgendwelchen Konflikten usw.

Wenn du nur 2-wertige Logik wie normale Bitvektoren verwendest, dann 
gehen die Informationen verloren.

Ansonsten: Variablen sind Variablen egal welchen Typs.

/Manfred

von alex (Gast)


Lesenswert?

>Wenn man die in Prozessen verwendet, dann kann man zum Beispiel außen
>dann sehen - irgendwann werden die Werte ja doch nach draußen gegeben wo
>sie in ein signal z.B. reinkommen - ob es einen Fehler im Prozess gibt
>mit irgendwelchen Konflikten usw.

Wären für solche Fälle die Variablen/Signale vom Typ std_ulogic nicht 
besser geeignet?

von Christian P. (kron)


Lesenswert?

Meine Hauptfrage ist hier,
ob statt Variablen nicht auch Signale verwendet werden können

von Michael N. (bigmike47)


Lesenswert?

nicht, wenn die variablen sofort den neuen Wert bekommen müssen

von adpat (Gast)


Lesenswert?

Meiner Meinung nach sind Variablen nicht unbedingt empfehlenswert zu 
verwenden und stiften nur Veriwrrung. In Hardware kann man sich alles 
besser als Signal vorstellen, wenn man so will.

von Manfred (Gast)


Lesenswert?

> Meiner Meinung nach sind Variablen nicht unbedingt empfehlenswert zu
> verwenden und stiften nur Veriwrrung. In Hardware kann man sich alles
> besser als Signal vorstellen, wenn man so will.

Das ist ja fast so, als würdest du jemand von der Verwendung von 
for-Schleifen in C oder C++ abraten. Das gehört dazu und ist genauso 
wichtig.

Ich verwende sehr oft Variablen, aber ich weiß halt auch wofür man sie 
verwenden kann

/Manfred

von Christian P. (kron)


Lesenswert?

Ok, wofür kann man (speziell) std_logic-Variablen verwenden,
was mit Signalen nicht oder nur schlecht ginge?

von Michael N. (bigmike47)


Lesenswert?

sämtliche logische pfade, bei denen die instanzierung von zusätzlichen 
latches vermieden werden muss

von Der andere (Gast)


Lesenswert?

Ich verwende Variablen gerne um größere Berechnungen mit 
Formatkonvertierungen aufzudrößeln. Das wird dann sehr viel 
übersichtlicher.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.