HILFE, ich finde nicht raus wo der Fehler liegt!

Gast #1219646
Lesenswert?

Liebe Kollegen!

Ich bekomme beim simulieren immer den Fehler

There is an U'X'.... in an arithmetic operand, the result will be X

Ich hab alles schon x mal durchgesehen und finde nichts, was mache ich 
falsch?


D A N K E
Gabriel
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #1219706
Lesenswert?

> **Warning: There is an 'U'|'X'| .. in an arithmetic operand, the result
> will be 'X'(es)
Sieh dir z.B. mal deinen s_ledctr an.


Abhilfe: gib gleich bei der Definition von Signalen jedem einen 
Defaultwert an.
1
signal s_ctr : std_logic_vector (7 downto 0) := (others => '0'); -- da auf einen Ausgang nicht zugegriffen werden darf.    
2
signal s_ledctr : std_logic_vector (25 downto 0) := (others => '0');
3
constant C_1HZ : std_logic_vector(25 downto 0):= "10110111000110110000000000"; --48M Dezimal
4
signal s_led : std_logic_vector (7 downto 0) := (others => '0');
5
signal s_rep : std_logic := '0';


BTW:
> if reset_n ='1' then --asynchroner Reset
Sowas ist böse:
Ich hätte da (wegen ***_n) einen low-aktiven Reset vermutet    :-o

Sieh dir mal das numeric_std Package an (statt der std_logic_arith Lib).

Wenn du deinen s_ledctr als integer range 0 to 48000000 anlegst, 
kannst du direkt auf 48000000 vergleichen, ohne irgendwelche 
Bitumrechenereien zu machen.

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