mikrocontroller.net

Forum: FPGA, VHDL & Co. SIGNED in der Entitybeschreibung?


Autor: Christian Peters (kron)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe als Eingang einen AD-Wandler, der mir Zweierkomplement-Daten 
liefert. Diese entsprechen ja dem SIGNED-Datentyp. Kann ich zur 
Verarbeitung der Daten im FPGA in der Entitybeschreibung die 
entsprechenden Ports gleich als SIGNED definieren?
Oder geht da nur STD_LOGIC_VECTOR und ich muss es dann intern umrechnen?

Gleich noch 'ne Frage zu SIGNED, sehe ich das richtig, dass sowohl 
SIGNED als auch UNSIGNED zunächst erstmal einfach STD_LOGIC-Daten sind 
(bzw. sie gleich behandelt werden) und der Unterschied nur dann zu Tage 
tritt, wenn ich mit ihnen rechne, also sie addiere oder subtrahiere?

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich kannst Du in Deiner Port-beschreibung ein Signed-Datentypen 
nehmen. Man kann sich jedoch darüber streiten ob das ein guter 
Entwurfsstil ist.

Ja, Signed und unsigned sind erstmal nur Vektoren vom Typ std-logic. Der 
Unterschied liegt nur in der Interpretation. Bei signed wird ein Vektor 
als zweier-komplement Darstellung betrachtet.

Autor: Christian Peters (kron)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathi wrote:
> Natürlich kannst Du in Deiner Port-beschreibung ein Signed-Datentypen
> nehmen. Man kann sich jedoch darüber streiten ob das ein guter
> Entwurfsstil ist.

Danke für deine Antwort. :)
Inwiefern kann das schlechter Stil sein?
Ist es nicht resourcen- und (Lauf-)zeitsparender als die Daten zuerst 
als STD_LOGIC einzulesen und sie dann, vielleicht noch an mehreren 
Stellen, an denen berechnet wird, umzuwandeln?

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Resourcen spart das keine, höchstens ein paar Bits auf deiner 
Festplatte, weil der Code geringfügig kleiner wird. Die Daten werden 
durch die Typumwandlung ja nicht wirklich konvertiert, nur anders 
interpretiert.

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Punkt dabei ist, das Du einen weiteren Typen in deinen 
Schnittstellen hast. Ich kenne Firmen, in denen das aus diesem Grund 
verboten ist. Dort sind als Schnittstellen nur std_logic und 
std_logic_vector erlaubt.
Wie gesagt: Das ist Geschmackssache!

Resourcensparend ist das nicht. Höchstens vielleicht in der Simulation. 
Nur wirst Du, falls es einen Unterschied gibt, den nie bemerken ;)

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.