std_logic_vector als signed/unsigned behandelt

Gast #1760938
Lesenswert?
• ▲
▼
Hallo!

Ich habe gelesen, dass std_logic_vector als unsigned gehandhabt wird 
(z.B. bei vec1+vec2), sofern USE ieee.std_logic_unsigned.all; 
eingebunden wird. Das ist bei mir so auch der Fall, eine Addition von
1
  signal vec1 : std_logic_vector (3 downto 0) := "0110";
2
  signal vec2 : std_logic_vector (3 downto 0) := "0011";
3
  signal vec3 : std_logic_vector (3 downto 0) := "0110";

Ergibt bei mir 1111, also 15.
Kommentiere ich die Verwendung von "USE ieee.std_logic_unsigned.all;" 
aus, so wird mir gesagt das der Operator + nicht definiert ist. Soweit 
auch korrekt.
Binde ich nun

USE ieee.std_logic_signed.all;   (SIGNED)

ein, erhalte ich weiterhin 15 als Ergebnis. Wie wird jetzt mit den 
Vektoren gerechnet? Ich hätte erwartet,dass der Inhalt der Vektoren als 
Zweikomplement interpretiert wird. Ich hab da gerade echt ein Brett vor 
dem Kopf.
Moderator (Firma: Titel) Persönliche Seite #1761095
Lesenswert?
• ▲
▼
> erhalte ich weiterhin 15 als Ergebnis.
Wo siehst du das?
Im Simulator? Dann stell da mal die Anzeige auf signed um.

> erhalte ich weiterhin 15 als Ergebnis.
Was hättest du erwartet? Nachdem das ja auch 15 ergibt (weil keine 
negative Zahl dabei ist), stimmt das Ergebnis doch  :-o
Kritisch wirds dann, wenn das Ergebnis negativ wird, denn du hast in 
deinem Vektor keinen Platz für ein Vorzeichen...

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