VHDL-Vergleich eines vectors mit einer Konstanten

Gast #4595071
Lesenswert?
• ▲
▼
Hallo,
nachdem ich bisher nur mit Verilog programmiert habe, versuche ich mich 
nun einmal kurz an VHDL. Hmmm, scheitern tue ich schon an den 
einfachsten Sachen:
1.
  signal dreg : std_logic_vector(2 downto 0);

  if dreg = x"7" then

Hier scheitert der Vergleich mit dem Hinweis, dass der Arrayvergleich 
immer FALSE sei.

2.
if dreg = std_logic_vector(to_unsigned(7, dreg'length)) then

Das scheint zu funktionieren.

3.
if dreg = std_logic_vector(to_unsigned(x"7", dreg'length)) then

Das hier nicht. Was ist an x"7" nicht ok?

Evtl. wäre jemand so nett, mich aufzuklären. Vielen Dank.
Persönliche Seite #4595173
Lesenswert?
• ▲
▼
Wie wäre es mit "others" oder x"123456" als Hex?

Wenn es mit der Vektorlänge nicht passt, dann erweitert man ihn auf ein 
komplettes nibble, oder man nutzt einen Konversion ds Vektors und 
vergleicht auf den integer-Wert. Festvergleiche sollte man ohnehin aus 
Gründen der Pflegbarkeit mit Konstanten durchführen, aus deren Name die 
Funktion hervor geht.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.