AR# 7083: 4.1i 4000 MAP - "ERROR:OldMap:532 - Unable to obey design constraints which require...the following symbols into a single CLB..."
4.1i 4000 MAP - "ERROR:OldMap:532 - Unable to obey design constraints which require...the following symbols into a single CLB..."
Keywords: OldMap, 532, HMAP, FMAP, function generator, ir
General Description: The following error is reported in MAP:
ERROR:OldMap:532 - Unable to obey design constraints which require the combination of the following symbols into a single CLB: HMAP symbol "Viterbi_0_ACS_ENGINE_INST1_MEMORY_MEM_BLK/B546" (output signal=Viterbi_0_ACS_ENGINE_INST1_MEMORY_MEM_BLK/N144) FMAP symbol "FMAP_3285" (output signal=N943) FMAP symbol "Viterbi_0_ACS_ENGINE_INST1_MEMORY_MEM_BLK/B541" (output signal=Viterbi_0_ACS_ENGINE_INST1_MEMORY_MEM_BLK/N9255) FDCE symbol "Viterbi_0_ACS_ENGINE_INST1_MEMORY_MEM_BLK/B579" (output signal=Viterbi_0_ACS_ENGINE_INST1_MEMORY_MEM_BLK/N139) FMAP symbol "Viterbi_0_ACS_ENGINE_INST1_MEMORY_MEM_BLK/B578" (output signal=Viterbi_0_ACS_ENGINE_INST1_MEMORY_MEM_BLK/N9748) No function generator is available. These symbols share the same RLOC parameter. Consider using the "-ir" command line switch.
MAP packing errors can occur for a variety of reasons, from user-generated packing directives that are impossible to meet, to bugs in the mapper that prevent legitimate packing directives from being followed. The error message's recommendation to use the "-ir" switch is not always the optimal solution.
One common source of packing errors occurs is when MAP pulls an undirected FMAP into a CLB (because it drives the HMAP in the CLB) without regard to whether the CLB has an FMAP available. In this case, the packing error will list three FMAPs among the components involved.
In the 1.5i software, an environment variable was made available to disable this behavior:
setenv XIL_MAP_NO_FMAP_PACK 1 (Workstations)
set XIL_MAP_NO_FMAP_PACK=1 (PCs)
The 2.1i/3.1i/4.1i releases intended to make the default behavior turn the FMAP pack off and introduce a new variable to turn it back on, if needed. This change was not implemented properly, so in 2.1i/3.1i, the new variable needs to be set in order to disable the FMAP pack: