mikrocontroller.net

Forum: FPGA, VHDL & Co. Nochmal Frage zu Typ-Umwandlung


Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: FPGA-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
probier mal :

data_out <= std_logic_vector(dsp_acc);

...

dsp_acc <= signed(data_in);

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: FPGA-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast die Klammern falsch gesetzt, so sollte es gehen:


sig2 <= std_logic_vector(sig1(7 downto 0));

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.