Altera DSP Builder Advanced Internal Restriction: 'blockMap.find(fu->GetName()) == blockMap.end()' trong d:/SJ/nightly/12.0/178/w32/p4/ip/aion/src/mip_common/hw_model_dup_remover.cpp:191.
Ví dụ: nếu bạn có hai khối trong thiết kế của mình bên trong một hệ thống con được lập lịch: -
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
Chúng được chuyển đổi nội bộ thành các tên phẳng ở cấp hệ thống con theo lịch trình: -
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_-KU1_Mult
Hầu hết các ký tự không phải chữ và số không hợp pháp trong các ký hiệu VHDL và vì vậy chúng được chuyển đổi thành dấu gạch dưới: -
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T__KU1_Mult
Dấu gạch dưới kép cũng không hợp pháp trong các ký hiệu VHDL và do đó chúng được thu gọn thành các dấu gạch dưới duy nhất: -
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Fix_Mtr_Ctrl1_DSPBA_Current_DSPBA_T_KU1_Mult
Hai biểu tượng giờ đây giống hệt nhau, gây ra lỗi nội bộ bên trong đường ống DSPBA.
Cách khắc phục là tránh sử dụng các ký tự không phải chữ và số để phân loại các hệ thống con ở cùng cấp độ với nhau.