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?
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
>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?
Meine Hauptfrage ist hier, ob statt Variablen nicht auch Signale verwendet werden können
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.
> 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
Ok, wofür kann man (speziell) std_logic-Variablen verwenden, was mit Signalen nicht oder nur schlecht ginge?
sämtliche logische pfade, bei denen die instanzierung von zusätzlichen latches vermieden werden muss
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.