mikrocontroller.net

Forum: FPGA, VHDL & Co. Probleme mit Package


Autor: Olaf_fpga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,
kann mir jemand bei folgendem Problem helfen?

Hab folgendes package:


package pkg_test is

constant cChannels : integer;
constant cChanLog  : integer;

function f_log( Input : integer) return integer;

end package pkg_test

package body pkg_test is

function f_log( Input : integer) return integer is
...
end funtion f_log;

constant cChannels : integer := 8;
constant cChanLog  : integer := f_log(cChannels );

type type_test is array(natural range <>) of std_logic_vector(cChanLog downto 0);

end package_body pkg_test;

In der Simulation ist das kein Problem. Sobald ich jedoch in der 
Synthese das Package einbinde und "type_test" in der Port-Deklaration 
meines Modules verwende, erhalte ich die Fehlermeldung: "type_test" is 
not declared

Wie löse ich diesen Spagat ?

Danke, Olaf_fpga

Autor: Olaf_fpga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, falsche Info: In der Simulation wird das auch bemängelt. Kennt 
aber trotzdem jemand eine Möglichkeit, den Typ im Package-Body zu 
definieren ? Die relevante Funktion kann ja nur im Package-Body 
ausgeführt werden.

Danke, Olaf_fpga

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Type definition gehört in die package selbst, nicht in den body, 
wenn Du willst dass der Type außerhalb sichtbar ist

Autor: Olaf_fpga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja klar, das ist mir nun auch bewusst geworden. Aber wie kann ich die 
Konstante "cChanLog", die im Package-Body berechnet wird, im Package 
selbst verwenden ?

Olaf_fpga

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Konstante wird nicht "berechnet" in dem Sinne das ist einfach ein 
fester Wert den du direkt im package deklarieren solltest und nicht im 
body

Autor: Olaf_fpga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christopher
Man sollte sich schon mal genau anschauen, was ich will, bevor man 
antwortet ;O)

Autor: Olaf_fpga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stichwort: Deferred Constants

Aber wie kann man diese Konstanten für type-Deklarationen im Package 
selbst verwenden ?

Olaf_fpga

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.