> **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.