Da ich bei der Konvertierung eines std_logic_vectors in einen integer eine Fehlermeldung erhalte das dieser einen Metavalue beinhaltet, möchte ich diesen zuvor auf Metavalues abprüfen. Isr es möglich einen Aufzählungstyp zu definieren und zu prüfen ob ein Wert in diesem Aufzählungstyp enthalten ist ? Es gibt ja 'pred und 'succ usw. Gibt es auch so etwas wie is_member ? Danke
Falls es sie gibt, kenne ich sie nicht. Aber ich weiß, was ich machen würde: Programmiere eine Schleife, in der Du durch den Vektor durchgehst und auf die Metawerte abprüfst. Allerdings solltest Du doch im Simulator sehen, was für Werte Dein Vektor hat. Wahrscheinlich hast Du bloß Deine Signale nicht initalisiert, die haben dann am Anfang 'U' als Wert.
Hab ein ähnliches Problem. Gibt es wirklich keinen eleganteren Weg als eine Schleife über den Vektor um herauszufinden, ob der Vektor X oder Z enthält? Zur Prüfung auf valide Daten in der Testbench wäre das mehr als nützlich.
Hallo. Es gibt im Package std_logic_1164 die Funktion: is_X(). Diese prüft ob ein 'U' | 'X' | 'Z' | 'W' | '-' vorhanden ist. Die Funktion ist für Vektoren und für ein einzelnes Bit definiert. Die Quelldatei zum Package liegt bei Modelsim unter vhdl_src/ieee/stdlogic.vhd. Gruß DaMicha.
Vielen Dank, ich hatte den Funktionsnamen bereits gelesen, allerdings auf eine reine 'X' Prüfung geschlossen. Wenn die Funktion auch alle andern 'ungültigen' Werte prüft passt sie natürlich genau.
Und das Ganze noch in eine klitzekleine Prozedur verpackt, damit der Aufruf und das Handling augenfreundlicher wird.. ..und fertig. Im Anhang eine kleine Testbench, die sich selber testet ;-)
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.