Aufgrund eines Problems in der Quartus® Prime Pro Edition Software Version 23.2 und früher kann dieser Fehler auftreten, wenn Ihr HDL-Code einen generierten Block enthält, um zwischen der Instanziierung eines Designs, das auf das Agilex™ 7 F-Tile-Gerät und ein anderes unterstütztes Gerät ausgerichtet ist, zu wählen.
Wenn die "generate if"-Blöcke nicht beschriftet sind, lösen die modulübergreifenden Verweise auf unbeschriftete generierte Blöcke einen Fehler aus.
Zum Beispiel
generieren
if(Agilex == 0)
beginnen
...
Ende
sonst
beginne
...
end
endgenerate
Dieser Fehler tritt in der Analyse- und Synthesephase auf.
Um dieses Problem zu umgehen, definieren Sie eine Bezeichnung für jede "if and else"-Anweisung in Verilog HDL und eine "generate"-Anweisung in VHDL. Wenn ein Design beispielsweise darauf abzielt, zwischen dem Agilex™ F-Tile-Gerät und Arria® 10-Gerät zu wählen, kann die Instanziierung mithilfe der generate-Anweisung in Verilog HDL und VHDL wie folgt ausgewählt werden.
Verilog HDL
Generieren
if(Agilex == 0)
Anfang : label1_notfor_AG
...
Ende
oder
Anfang : label2_for_AG
...
Ende
Endgenerate
VHDL
Etikett:
if cond1 generate
...
elsif cond2 generieren
...
else generieren
...
Etikett generieren;