AR# 3269: M1.4 MAP: NMC hard macro cannot be LOC'd from the UCF file
M1.4 MAP: NMC hard macro cannot be LOC'd from the UCF file
Keywords: nmc, hard macro, loc, ucf
Users attempting to LOC a hard macro (.nmc) may find that PAR does not respect the LOC. The problem actually lies in MAP, since it does not translate the LOC constraint contained in the UCF into the PCF.
A workaround is to LOC it in the PCF file. Here is the syntax:
MACRO "macro_name" LOCATE = SITE "site_name" LEVEL 0 ;
where "macro name" is the name of the macro instance instantiated into the design. For instance, if you create a .nmc macro called abc.nmc and instantiate that into schematic, and if that particular instantiation is called "$1I1" in the schematic, then the following would LOC the "reference comp" to R5C4:
MACRO "$1I1" LOCATE = SITE "CLB_R5C4" LEVEL 0 ;
The "reference comp" is the COMP in the macro that the LOC constraint is applied to; it can be set in EPIC. All the other COMPs are placed in the same relative position to the LOC'd reference comp. To determine what the reference comp is, invoke EPIC on the macro and select Macro->Get Reference Comp.
As an alternative, the following syntax will also work in the PCF: