Hallo Leute, ich hatte vor einiger Zeit schonmal nachgefragt wegen der möglichkeit einen signed-vektor in einen std_logic_vector umzuwandeln, hatte bis jetzt aber noch keinen erfolg bzw. noch keine Antwort erhalten. Langsam weiß ich aber auch nicht mehr weiter. Mein Problem ist an sich ganz einfach. Ich möchte einen signed-vektor den ich für arithmetische Zwecke habe als std_logic-vektor (also unsigned) ansprechen (speziell in der entity, und intern soll es dann als signed dargestellt werden). bsp : entity dsp_alu port (clock : in std_logic; ... dataout1 : out std_logic_vector (31 downto 0); ... datain1 : in std_logic_vector (31 downto 0); ); end entity; ... architecture behave of dsp_alu is signed dsp_acc : signed (31 downto 0); begin dataout1 <= dsp_acc; -- funzt net ... dsp_acc <= datain1; -- funzt auch net end behave; hat jemand eine idee wie man sowas löst ? kann ja eigentlich kein problem sein oder seh ich das falsch ? danke schonmal im voraus gruß rene
probier mal : data_out <= std_logic_vector(dsp_acc); ... dsp_acc <= signed(data_in);
hallo fpga-user, ich hatte das schonmal verwendet, aber dann in zusammenhang damit das ich teile des signed vektors in einen unsigned kopieren wollte. da ging es darum das ich den 32-bit signed vektor 8-bit weise unsigned angesprechen wollte (für ein späteres debug-interface, also schreibend und lesend). da kam er aus dem meckern nicht mehr raus. von wegen ungültige typ-konversion. kann es sein das man nur komplette vektoren konvertieren kann ? das ganze sah dann so aus : entity ... port (... dsp_data8b : out std_logic_vector (7 downto 0); ); end entity; ... signal dsp_reg1 : signed (31 downto 0); ... process... ... case regnum_8bit is when "0000" => dsp_data8b <= std_logic_vector (dsp_reg1) (31 downto 24); when "0001" => dsp_data8b <= std_logic_vector (dsp_reg1) (23 downto 16); when "0010" => dsp_data8b <= std_logic_vector (dsp_reg1) (15 downto 8); when "0011" => dsp_data8b <= std_logic_vector (dsp_reg1) ( 7 downto 0); ... oder ist das ein syntaktischer fehler, von wegen das std_logic_vector (x) ( y downto z) nicht funktioniert ? vielen dank schonmal rene
hast die Klammern falsch gesetzt, so sollte es gehen: sig2 <= std_logic_vector(sig1(7 downto 0));
aaaarrrrgggghhhh... bitte anstellen zum schlagen. *mann, bin ich doof. danke fpga-user. jetzt sollte meinen ersten dsp-entwicklungsversuchen nichts mehr im wege stehen. gruß rene
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.