AR# 11287: 4.1i Virtex-II/Virtex-E/Virtex MAP - "ERROR:Map:6 - Bad format for RLOC constraint..."
4.1i Virtex-II/Virtex-E/Virtex MAP - "ERROR:Map:6 - Bad format for RLOC constraint..."
Keywords: Virtex, Virtex-II, Virtex-E, MAP, RLOC, COREGen, core, bad, format
General Description: The following error message is reported:
"ERROR:Map:6 - Bad format for RLOC constraint 'XnYm' on 'SymbolType' 'SymbolName'"
Generally, this message occurs when MAP does not recognize the format of an RLOC constraint as valid. RLOC constraints are used to construct RPMs (relationally placed macros). As RLOC format specifications vary between device families, a common cause of this error is a design with valid RLOC constraints for one device family being incorrectly targeted to another device family. This will also occur if the design contains a CORE that was generated for a different device family, and that CORE contains RLOC constraints.
The three device family groups with unique RLOC specifications are:
XC4000 derivatives: XC4000*, Spartan, Spartan-XL RLOC=[element]RmCn[.extension] where "m" and "n" are relative row numbers and column numbers, respectively, and the extension is a BEL name (FFX, FFY, F, G, H).
Virtex derivatives: Virtex, Virtex-E, Spartan-II RLOC=[element]RmCn[.extension] where "m" and "n" are relative row numbers and column numbers, respectively, and the extension is a is a site type name (S0, S1).
Virtex-II derivatives: Virtex-II, Virtex-II Pro RLOC=XmYn where "m" and "n" are relative row numbers and column numbers, respectively.
More details on RLOC specifications are available in the Chapter 12 of the Libraries Guide: "Attributes, Constraints, and Carry Logic".
To avoid this problem, correct any problems with the RLOC formats. If there are large numbers of invalid RLOC constraints due to device family re-targeting, it is possible to disable the RLOCs with a single UCF wildcard constraint:
INST "*" USE_RLOC = FALSE ;
Note that the wildcard specification can be modified as needed to match a particular module in the design.
The 4.1i Virtex/Virtex-II mapper effectively constructs special shapes for functions such as carry chains, and it passes this shape information to the placer. Because of this functionality, disabling RPM macro definitions is a viable option.
If you are using cores, this error can occur if the core being used is targeted to a Virtex device and you are using a Virtex-II derivative.
Open the core's ".edn" file in WordPad. Scroll down to the bottom, and see if the device in the same family as the one listed. If it is not, the Core is targeting the incorrect family, and the RLOCs in the .edn file will reflect that as well.
Be sure that you have the most up-to-date IP update.