Forum: FPGA, VHDL & Co. Ergebnis von Berechnung


von Gast (Gast)


Lesenswert?

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

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


Lesenswert?

> 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
Noch kein Account? Hier anmelden.