mikrocontroller.net

Forum: FPGA, VHDL & Co. Syntaxfrage VHDL


Autor: Stefan K. (stefan82)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
hab mal wieder eine Frage und im Forum leider noch nix gefunden, ...

Data_int sei ein 30bit STD_Logic_Vector:

-- libs etc.

if (rst = '1') then
   Data_int <= (others => '0')
   .
   .
   .
elsif (...) then
end if; 

-- weitere Prozeduren

Meine Frage:
bewirkt die Syntax <= (others '0') wirklich exakt das gleiche wie ein 
dreißig bittiges auf 0 setzen àla Data_int <= "000...000"; ?
Könnte mir den Befehl vllt. zufällig jemand "ausformulieren?
Also diese (others ...) Anweisung hab ich nun schon öfter gelesen, 
verstehe aber nicht so recht was dabei wirklich geschieht.

Thx & ru

Autor: Stefan K. (stefan82)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, ok, ...

obige Frage hat sich glaub ich grade bereits erledigt. Habe doch noch 
was gefunden (allerdings nicht hier im Forum) ...

Also bitte ich um Korrektur wenn ich mit folgender Erklärung falsch 
liege:

Die beiden Anweisungen:
bsp_signal <= "0000";
-- oder
bsp_signal <= (others => '0');

bewirken absolut das Gleiche.
Vorteil von der "Others"-Variante ist scheinbar, dass ich damit 
variabler arbeiten kann und zum Beispiel später auch entscheiden kann, 
dass mein Signalvektor nur 2bit oder aber 100bit breit ist. Others 
bewirkt in diesem Fall immer ein zurück setzen aller Bits des bsp_signal 
Vectors auf '0'.

Hoffe mal die Erklärung stimmt soweit... sonst bitte Korregieren!

THX and ru

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur zur Ergänzung:

  bsp_signal <= "1000";
und
  bsp_signal <= (3 => '1', others => '0');

sind auch identisch.

Dann versteht man auch warum das eigentlich "others" heisst.

Autor: Stefan K. (stefan82)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Ergänzung!
Wollte diese erkenntnis auch grade noch ergänzen aber da bist du mir 
wohl zuvor gekommen :)

Gruß Stefan

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.