Forum: FPGA, VHDL & Co. is not a globally static expression


von Flo (Gast)


Lesenswert?

Code:

COMPONENT sacu IS
    PORT(Factor :IN     std_logic_vector;
         MinOut :IN     std_logic_vector;
         MaxOut :IN     std_logic_vector;
         SacuIn :IN     std_logic_vector;
         SacuOut:BUFFER std_logic_vector
    );
END COMPONENT;

CONSTANT 
cMaxOut:std_logic_vector(scaled'RANGE):=(scaled'HIGH-2=>'1',OTHERS=>'0') 
;

CONSTANT 
cMinOut:std_logic_vector(scaled'RANGE):=(scaled'HIGH=>'0',OTHERS=>'0');

 i_sacu:sacu PORT MAP(Factor  => "100000110",
                       MaxOut  => cMaxOut,
                       MinOut  => cMinOut,
                       SacuIn  => SincUpOut,
                       SacuOut => scaled);
....

Fehler:
Actual (constant "cminout") for formal "minout" is not a globally static 
expression.
 Actual (constant "cmaxout") for formal "maxout" is not a globally 
static expression.

Es hat am PC in der Schule funktioniert, daheim am Laptop taucht jetzt 
dieser Fehler auf. Kann mir jemand helfen?? Danke schon mal

von Andi (chefdesigner)


Lesenswert?

Was ist das denn für ein komisches VHDL? Ist das schon aus Standard 
2002?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Flo schrieb:
> SacuOut:BUFFER std_logic_vector
Aua...
Brauchst du diesen Buffer oder bist du nur schreibfaul?

> SacuOut:BUFFER std_logic_vector
Weil da keine Breite angegeben ist, ist das schon mal gleich ein 
unconstrained vector mit (natural range <>).

> scaled
Welchen Datentyp hat dieses Signal?

> scaled'HIGH
Woher soll denn der Synthesizer an dieser Stelle wissen, wie breit der 
Vektor sein wird?

Andreas Fischer schrieb:
> Ist das schon aus Standard 2002?
Ich tippe eher auf einen generischen Anfänger. Der Buffer deutet 
darauf hin... ;-)

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.