mikrocontroller.net

Forum: FPGA, VHDL & Co. std_logic_vector auf Metavalue prüfen


Autor: Hans-Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Stefan A. (chaos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Da Micha (damicha)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Stefan A. (chaos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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  ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.