2016-12-03 5 views
1

Ich erhalte den folgenden Fehler: Dieses Konstrukt wird nur in VHDL 1076-2008 unterstützt. Ich weiß nicht warum. Ich möchte, dass dieser Code synthetisiert wird, aber das Flag kann Probleme verursachen.VHDL: Dieses Konstrukt wird nur in VHDL 1076-2008 unterstützt

Ziel des Flags ist, dass Daten, sobald sie ausgegeben werden, in späteren Iterationen nicht überschrieben werden können. Idealerweise möchte ich, dass die innere Schleife beendet wird, sobald Daten ausgegeben werden, aber das wird nicht synthetisiert.

enter image description here

for j in 0 to n-1 loop --For loop outputting data 
     flag:='0'; --reset the flag 
     for i in 0 to n-1 loop 

      flag:='1' when (a=b) else '0'; 
      Output(j)<=a when flag='1' else '0'; 


     end loop; 
    end loop; 

Antwort

1

Das whenelse Konstrukt wurde nicht in einem Prozess, bis VHDL-2008 erlaubt. Um dies zu beheben, ersetzen Sie es durch eine if Anweisung.