Forum: FPGA, VHDL & Co. Problem bei SLV -> Singed


von Till (Gast)


Lesenswert?

Hallo zusammen,
ich habe ein Problem beim Umstellen meines Codes. Das Aufaddieren des 
letzten Bits ACC(16) funktioniert nicht. Wie wirds gemacht ?

S: std_logic_vector
ACC,int_sum : signed
1
  
2
int_sum <= ACC(32 downto 17) + ACC(16 downto 16);
3
S       <= std_logic_vector(int_sum);

Gruß Till

von dden (Gast)


Lesenswert?

Hi,
soso du willst also einen SIGNED-Type zelegt addieren?
Erzähl doch mal WAS du machen wills?

Mfg

von Till (Gast)


Lesenswert?

Hallo,
ich möchte das ausgeschnittene Ergebnis runden. Mit SLV hat das auf 
diese Weise funktioniert.
Ich habe den Code jetzt aber auf numeric_std umgestellt.

Viele Grüße
Till

von dden (Gast)


Lesenswert?

Hi,
versuch mal folgendes:
[vhdl]
S <= std_logic_vector(resize(ACC(32 downto 17),ACC'Range) + resize(('0' 
& ACC(16)),ACC'Range));
[vhdl]

von dden (Gast)


Lesenswert?

so jetzts richtig
1
S <= std_logic_vector(resize(ACC(32 downto 17),ACC'Length) + resize(('0' 
2
& ACC(16)),ACC'Length));

von Till (Gast)


Lesenswert?

Danke, das hat geholfen :)

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.