www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Typen Konvertierung


Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe hier gerade so ein Problem vor mir.

Beim versuch diese Zeile zu übersetzen kommt ein Fehler:
FATAL INTERNAL ERROR: FPGA library: HDLParsers:3329 - ... Line 165. 
Expression in type conversion to std_logic_vector has 2 possible 
definitions in this scope, for example, data_array  and 
std_logic_vector.
use.ieee.numeric_std.all
-- Hier liegt, glaube ich, das Problem : --
type data_array is array (0 to 2) of std_logic_vector(31 downto 0);
--------------------------------------------

signal a : signed(31 downto 0);
signal b : std_logic_vector(31 downto 0);
signal c : std_logic_vector(15 downto 0);

a <= signed(std_logic_vector(std_logic_vector(b(15 downto 0)) & std_logic_vector(c)));
-- auch probiert habe ich folgendes immer der gleiche Fehler
a <= signed(std_logic_vector(b(15 downto 0)) & std_logic_vector(c));
a <= signed(b(15 downto 0) & c);

Das Problem ist, so glaube ich, meine Type data_array. Es ist 
anscheinend nicht eindeutig das ich in der Zeile einen signed aus zwei 
std_logic_vector haben will. Wie schreibt man das richtig??


mfg
hans

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hans schrieb:
> Das Problem ist, so glaube ich, meine Type data_array.
In diesen 2 Zeilen ist aber kein data_array zu finden...

Poste mal etwas mehr von deinem Code.
Evtl. kommt da wer mit der Zeilennummerierung durcheinander...

Autor: Thomas Reinemann (Firma: abaxor engineering) (abaxor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hans schrieb:

>
> -- auch probiert habe ich folgendes immer der gleiche Fehler
> a <= signed(b(15 downto 0) & c);
> 

Probier mal
a <= signed(b(15 downto 0))  & signed (c);

Ich hatte schon öfter Probleme mit einem Concatenate in einer 
Typ-Konvertierung.


Tom

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Lothar Miller:

ne ist auch kein data_array vorhanden. Das nutz ich an anderen Stellen.
Trotzdem bezieht sich die Fehlermeldung auf data_array. Merkwürding 
!!??!!

--

Hat aber mit :
a <= signed(b(15 downto 0))  & signed (c);
funktioniert danke erstmal..

mfg

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.