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


von Christian P. (kron)


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?

von Mathi (Gast)


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.

von Christian P. (kron)


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?

von Jan M. (mueschel)


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.

von Mathi (Gast)


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 ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.