mikrocontroller.net

Forum: FPGA, VHDL & Co. Integer nach std_logic_vector


Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe vor kurzem begonnen, mich mit VHDL zu beschäftigen. Ich habe
jetzt ein Verständnisproblem.

Ich habe in einen Process eine Variable vom Typ "Integer range 0 to
255". Wie kann ich diese auf einen Port vom Typ "std_logic_vector(7
downto 0) ausgeben? Alle 256 Möglichkeiten über if oder case
abzufragen, scheint mir nicht der richtige Weg zu ein.

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
output <= conv_std_logic_vector(int,anzahlbits)

also für varabc 0...255:
output <= conv_std_logic_vector(varabc,8);

Gruss,
Simon

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, probier mal vektor <=
conv_std_logic_vector(integerwert,vektorbreite)


Mfg
Christian

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da war wohl wer schneller

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sauberer ist es das "numeric_std" package zu verwenden und die
integer zahl zuerst mit

u = TO_UNSIGNED(zahl, 8)

in einen UNSIGNED Typ umzuwandeln.
Diesen kann man dann mit einem cast auf std_logic_vector wandeln.

Allgemein wird empfohlen das std_logic_arith package nicht mehr zu
verwenden.
Meiner Meinung nach ist bei der Verwendung der conv_std_logic_vector()
nicht sicher was mit dem Vorzeichenbit passiert, während man bei den
Typen SIGNED und UNSIGNED genau weiss, ob sie ein Vorzeichenbit haben
oder nicht.

Grüße
Klaus

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.