Forum: FPGA, VHDL & Co. Unterschied: Signed - Unsigned


von Michl (Gast)


Lesenswert?

Hallo Leute. Ich wollte euch mal fragen, worin der konkrete Unterschied 
zwischen signed und unsigned signals besteht.
Quasi deren Aufbau und Beahndlung in VHDL. Ich hoffe es hilft mir beim 
"internen" Verständnis.
Vllt. hat jmd. auch ein Schriftstück parat, in dem es iwie erklärt wird.

Danke schonmal.

von Denis (Gast)


Lesenswert?

Hallo Michl,

das ist ganz einfach hier wirds eigentlich beschrieben :

http://www.mikrocontroller.net/articles/Rechnen_in_VHDL

signal x: unsigned(7 downto 0); -- Zahlenbereich: 0 bis 2**8-1
signal y: signed(7 downto 0); -- Zahlenbereich: -2**7 bis 2**7-1

ich denke die beiden Zeilen sind selbst erklärend ;-)

MfG
Denis

von Michl (Gast)


Lesenswert?

Jo dankeschön soweit. Aber wie siehts aus mit der Verarbeitung? Werden 
die immer als Zweierkomplement "verarbeitet" oder kommt das dann auf die 
jweilige Hardwareumsetzung an?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Werden die immer als Zweierkomplement "verarbeitet"
Mit den "üblichen" Libs: Ja.
(std_logic_signed + numeric_std)
Aber du selber kannst das machen wie du willst...

> kommt das dann auf die jweilige Hardwareumsetzung an?
Die Hardwareumsetzung ist in den Libs explizit beschrieben, da kann 
nichts anderes draus gemacht werden.

von Denis (Gast)


Lesenswert?

Naja die unsigned / signed Schreibweise hilft dir eigentlich nur bei den 
Rechnungen.Die erzeugte Logik arbeitet ja auf der Bitebene sprich wenn 
du mit einem Zahlenbereich von z.B signed(7 downto 0) bedeutet das nur 
das dein MSB Bit ein Vorzeichenbit ist. Schau dir doch einfach mal an 
was der Compiler dir als Logik ausgibt.

Dadurch sollte sich deine Frage von selbst erledigen.

von Michl (Gast)


Lesenswert?

Korrekt oder?

Anzahl Bits: 8
UNSIGNED:  11010100  ->   212
SIGNED:    11010100  ->   -44

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ja.

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.