Hi Habe nur eine kurze Frage. Habe zwei werte in der Form eines std_logic_vectors. wert1 : std_logic_vector(5 downto 0); wert2 : std_logic_vector(5 downto 0); erg : std_logic_vector(6 downto 0); erg <= std_logic_vector(unsigned(wert1) - unsigned(wert2)); Wenn nun wert2 kleiner ist als wert1 ist steht in erg die differenz aber was ist wenn nun wert2 größer ist als wert1 steht dann in erg ein negativer wert in 2er Kompliment darstellung oder sehe ich das falsch? MFG Gast
> Kompliment Mein Komplement :-o > steht dann in erg ein negativer wert in 2er Kompliment darstellung Weil erg ein Vektor ist, kann da nur eine Bitfolge drinstehen. Wie die interpretiert wird, steht auf einem ganz anderen Blatt... Das sagst du nämlich über unsigned() oder signed(). Wenn du das erg in als signed betrachten würdest, hättest du die entsprechende negative Zahl (in der Zweierkomplementdarstellung). BTW: das Ergebnis einer unsigned-Subtraktion ist kleiner oder bestenfalls gleich breit wie jeder der beteiligten Operanden. Du brauchst also nicht ein Bit mehr am Ausgang. Mit diesem Bit würde "nur" ein entsprechender Unterlauf signalisiert.
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.