signed to std_logic_vector, slice results

Ich muss den absoluten Wert eines Ergebnisses nehmen und interessiere mich nur für die höchstwertigen Bits. Das habe ich getan:

data_ram_h <= std_logic_vector(abs(signed(resize(r4(calc_cnt - 2), data_ram_h'length) + r4(calc_cnt - 1) +
                    r4(calc_cnt) + r4(calc_cnt + 1) + r4(calc_cnt + 2) -
                    r2(calc_cnt - 2) - r2(calc_cnt - 1) - r2(calc_cnt) -
                    r2(calc_cnt + 1) - r2(calc_cnt + 2))))(11 downto 4);

Ich versuche die Syntax zu überprüfen und erhalte folgende Fehlermeldung:

type conversion std_logic_vector is not allowed as a prefix for an slice name.

data_ram_h ist ein std_logic_vector der richtigen Dimension, und dasAbie @ -Funktion gibt ein Vorzeichen zurück, da die Konvertierung nach std_logic_vector kein Problem darstellen sollte. Die Bibliothek, die ich benutze, ist use ieee.numeric_std.all.

Wo irre ich mich? Danke im vorraus c:

Antworten auf die Frage(4)

Ihre Antwort auf die Frage