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

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