mikrocontroller.net

Forum: FPGA, VHDL & Co. if mit unsigned


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe folgendes Problem beim Kombilieren erkennt er nicht das operator 
'='

 if iSel= "000" then
      oY <= iInput(1);
    elsif iSel = "001" then
      oY <= iInput(2);
    elsif iSel = "010" then
      oY <= iInput(3);
    elsif iSel = "011" then.....

Fehlermeldung:

# ** Error: C:/Documents and Settings/BOSS/My  No feasible entries for 
infix operator "=".
# ** Error: C:/Documents and Settings/BOSS/My  Type error resolving 
infix expression "=" as type std.standard.boolean.


Habe einen Subtype in Package erstellt:
subtype sSelect is unsigned (0 to 2);

....
iSel:in sSelect;
....


Mit Case Statements funktioniert es!

Finde den Fehler nicht.

Funktioniert auch mit std_match nicht, findet die Funktion nicht.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heißt der Befehl nicht else if?

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein eigentlich nicht!Ist VHDL nicht C

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie willst du einen skalaren Typ mit einem Vektor vergleichen?

Hinweis: unsigned (0 To 2) ist kein Vektor von 3 unsigneds (das wäre 
Array(0 To 2) of unsigned), sondern ein auf den Wertebereich 0 bis 2 
eingeschränktes unsigned.

Autor: CaH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wär's mit "==" statt "="

...ohne von VHDL eine Ahnung zu haben

Gruß
CaH

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne Ahnung sollte man vielleicht keine Antwort geben ... diesen 
Operator gibts nicht in VHDL.
Die Meldung bedeutet, dass der "="-Operator nicht für die verwendeten 
Datentypen existiert. Versuch mal iSel als std_logic_vector(0 to 2) zu 
verwenden und nicht als unsigned(0 to 2).

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke!

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.