if mit unsigned

Gast #698598
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.
Gast #698626
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.
Gast #698634
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).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren