www.mikrocontroller.net

Forum: FPGA, VHDL & Co. std_logic_vector auf '0' testen


Autor: Hans-werner M. (hanswerner)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe es mal wieder vergessen.
Wie ging das noch um einen std_logic_vector auf '0' zu prüfen ?

if VECTOR = (others => '0') then ... ???

Ausschreiben ist ekelig. Zählen ist unschön.

if VECTOR = "000000000000000000000000000000000000"

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiers mal so:
if VECTOR = (35 downto 0=>'0') then...
Oder so:
if VECTOR = (VECTOR'range=>'0') then...

Autor: berndl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Oder so:
>
>if VECTOR = (VECTOR'range=>'0') then...

das funktioniert? Muss ich mal testen. Ich behelfe mir bisher immer mit 
der Definition einer Konstanten 'constant hugo: std_logic_vector (x 
downto y) := (others=>'0')'...

Autor: Albert F. (betocool)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein STD_LOGIC_VECTOR teste ich immer mit

signal TestSignal: STD_LOGIC_VECTOR(X downto 0);
if (TestSignal = 0) then
  -- Do Something;
end if;

Klappt bei mir einwandfrei

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Albert F. schrieb:
>  if (TestSignal = 0) then
> Klappt bei mir einwandfrei
Klar, die alten Synopsis-Libs... :-/

Mit der numeric_std gibt diese Zeile
 = can not have such operands in this context. 

Siehe auch den Beitrag "Re: std_logic_vector auf Interger testen"

Autor: nixda (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
servus,

ich habe bei solchen sachen immer or_reduce() aus irgendweiner der 
"standard" libs verwandt.

also

if or_reduce(foo) = '0' then ...

/mfg

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fühlt sich eventuelle jemand gemüßigt, das mal in den Artikel VHDL
einzutragen?  Das ist ja so 'ne Art Mini-FAQ, da würde das gut
hin passen.

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.