is not a globally static expression

Gast #2164436
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
Moderator (Firma: Titel) Persönliche Seite #2165201
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... ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren