AR# 52991: 14.x PlanAhead - [Constraints 18-5] Cannot LOC instance at site
14.x PlanAhead - [Constraints 18-5] Cannot LOC instance at site
I receive a Critical Warning for the following line in my UCF post-Implementation:
NET "My_net_CLK_pin" IOSTANDARD = LVCMOS25 | LOC = "R7";
[Constraints 18-5] Cannot loc instance 'i_core_module_zynq70x0/i_mmcme2_base' at site R7, Illegal to place instance i_core_module_zynq70x0/i_mmcme2_base on site R7 [My_constraints.ucf:48]
However when I view the Implemented Design the net is on site R7, but not fixed.
If the constraint is locked to a NET, then you should check the hierarchy to ensure that there are no other objects between the net and the I/O port.
PlanAhead does not propagate the constraint through the nets as ISE/NGDBuild did, so the Critical Warning occurs.
In the example above, the correct pin (R7) is used even though PlanAhead removes the constraint because the site being used is for a dedicated feature that requires this pin to be used.
In most cases, when the Critical Warning is issued for a constraint, the site indicated in the constraint will not be used because the UCF file sent to NGDBUILD (written to the runs directory) will not include the constraint.
Below are two available solutions:
Assign the constraint to INST on the I/O port instead of using NET.
Another option is to remove the UCF from the PlanAhead project, and instead pass the UCF file through the -uc switch in the NGDBuild options.
With this option, the GUI will not show the I/O ports that are fixed, as the project does not have an associated UCF to determine which sites are "fixed".
However the implementation tools will see the original UCF constraints and process them as it would when using Project Navigator or the ISE command line flow.