Dieser Fehler kann in einer RANGE FOR LOOP
Anweisung auftreten, wenn das 0
Bit von a std_logic_vector
explizit zugewiesen wird, im Gegensatz zur Verwendung der LOOP
Variable.
Die Lösung besteht darin, die Zuweisung zu Bit 0
außerhalb der LOOP
Anweisung zu machen und dadurch die Anweisung in der RANGE
Schleife so zu ändern, dass Bit ausgeschlossen wird 0
.
Ein Beispiel für den Code, der den Fehler verursacht, wird unten angezeigt:
SIGNAL cfg_a: std_logic_vector(32 downto 0); SIGNAL cfg_edge1: std_logic_vector(32 downto 0); cfg_a_proc: PROCESS(cfgclk) BEGIN IF (cfgclk 'EVENT and cfgclk = '1') THEN FOR i in cfg_a 'RANGE LOOP IF (i = 0) THEN cfg_a(0)
Ein Arbeitsbeispiel wird unten gezeigt:
SIGNAL cfg_a: std_logic_vector(32 downto 0); SIGNAL cfg_edge1: std_logic_vector(32 downto 0); cfg_a_proc: PROCESS(cfgclk) BEGIN IF (cfgclk 'EVENT and cfgclk = '1') THEN cfg_a(0)