Altera DSP Builder Advanced Internal Restriction: 'blockMap.find(fu->GetName()) == blockMap.end()' in d:/SJ/nightly/12.0/178/w32/p4/ip/aion/src/mip_common/hw_model_dup_remover.cpp:191.
Beispiel: Wenn Sie zwei Blöcke in Ihrem Design in einem geplanten Subsystem haben:-
psc_ctrl_fixed/FIX_MCTRL/Fix_Mtr_Ctrl1_DSPBA/Current_DSPBA/T/KU1/Mult
psc_ctrl_fixed/FIX_MCTRL/Fix_Mtr_Ctrl1_DSPBA/Current_DSPBA/T/-KU1/Mult
Diese werden intern in flache Namen auf der Ebene des geplanten Subsystems umgewandelt:-
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_ KU1_Mult
Die meisten nicht alphanumerischen Zeichen sind in VHDL-Symbolen nicht legal und werden daher in Unterstriche konvertiert:-
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T__KU1_Mult
Doppel-Unterstriche sind auch in VHDL-Symbolen nicht legal und werden daher in einzelne Unterstriche zusammengeklappt:-
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Die beiden Symbole sind jetzt identisch, was einen internen Fehler innerhalb der DSPBA-Pipeline verursacht.
Die Problemumgehung besteht darin, zu vermeiden, dass keine alphanumerischen Zeichen verwendet werden, um Subsysteme auf derselben Ebene voneinander zu unterscheiden.