Forum: FPGA, VHDL & Co. Probleme mit Package


von Olaf_fpga (Gast)


Lesenswert?

Hi Leute,
kann mir jemand bei folgendem Problem helfen?

Hab folgendes package:

1
package pkg_test is
2
3
constant cChannels : integer;
4
constant cChanLog  : integer;
5
6
function f_log( Input : integer) return integer;
7
8
end package pkg_test
9
10
package body pkg_test is
11
12
function f_log( Input : integer) return integer is
13
...
14
end funtion f_log;
15
16
constant cChannels : integer := 8;
17
constant cChanLog  : integer := f_log(cChannels );
18
19
type type_test is array(natural range <>) of std_logic_vector(cChanLog downto 0);
20
21
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

von Olaf_fpga (Gast)


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

von Klaus F. (kfalser)


Lesenswert?

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

von Olaf_fpga (Gast)


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

von D. I. (Gast)


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

von Olaf_fpga (Gast)


Lesenswert?

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

von Olaf_fpga (Gast)


Lesenswert?

Stichwort: Deferred Constants

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

Olaf_fpga

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
Noch kein Account? Hier anmelden.