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.
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
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?
> 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.
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.
Korrekt oder? Anzahl Bits: 8 UNSIGNED: 11010100 -> 212 SIGNED: 11010100 -> -44
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.