Altera DSP 빌더 고급 내부 제한: 'blockMap.find(fu->GetName()) == blockMap.end()' d:/SJ/nightly/12.0/178/w32/p4/ip/aion/src/mip_common/hw_model_dup_remover.cpp:191.
예를 들어, 예약된 하위 시스템 내부에 설계에 블록이 두 개 있는 경우:-
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
이러한 이름은 예약된 하위 시스템 수준에서 내부적으로 평평한 이름으로 변환됩니다.-
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_-KU1_Mult
대부분의 비 영숫자 문자는 VHDL 심볼에서 합법적이 아니므로 밑단으로 변환됩니다.-
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T__KU1_Mult
이중 밑단은 VHDL 심볼에서도 합법적이 아니므로 단일 밑단으로 축소됩니다.-
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
이제 두 기호가 동일하여 DSPBA 파이프라인 내부의 내부 오류가 발생합니다.
해결 방법은 영숫자가 아닌 문자를 사용하여 하위 시스템을 같은 수준에서 서로 구별하지 않도록 하는 것입니다.