SIGNED in der Entitybeschreibung?

OP #775046
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?
Gast #775200
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.
OP #775209
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?
Gast #775239
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren