ID:171102 Found conflicting placement requirements for partitions preserving placement

CAUSE: You compiled a project with multiple partitions set to preserve placement. However, nodes from multiple partitions require the same resource blocks on the device. The following situations can lead to this error:
  • Multiple partitions are using imported logic from one or more Quartus Prime Exported Partition Files (.qxp) containing post-fit results. More than one imported node require the same resource blocks on the device.
  • You changed the Netlist Type property of a previously placed-and-routed partition to Empty. You then recompiled the design, thereby allowing resource blocks previously occupied by the empty partition to be used for placing other logic. In a subsequent compilation, you changed the Netlist Type setting from Empty to a setting that implies placement reuse (for example, Post-Fit). Multiple partitions could now be using the same resource blocks.
  • A post-fit node imported from a lower-level project uses the same resource block as another post-fit node in the current project.
ACTION: Depending on the exact cause leading to this error, you can resolve the problem by performing one or more of the following actions:
  • In a bottom-up flow, use Logic Lock regions in the lower-level projects to ensure that placement conflicts do not occur after they are imported to the top-level design. For more information related to creating a high quality floorplan for the bottom-up flow, see the chapter on incremental compilation in the Quartus Prime Handbook.
  • If you import the same Quartus Prime Exported Partition File (.qxp) for multiple partitions, ensure that the imported Logic Lock regions do not overlap by adjusting the regions' origins, or by making the imported regions floating to let the Fitter determine a feasible placement.
  • If you do not control the Quartus Prime Exported Partition File generation, you can avoid the error by setting the partition's Fitter Preservation Level property to Netlist Only. Doing so causes the Fitter to ignore the placement requirements coming from the lower-level project and replace the imported logic.
  • If the conflict is caused by a partition recently set to Empty (referring to Cause 2 above), you may need to direct the Fitter to replace the partition by using an appropriate Netlist Type and/or Fitter Preservation Level setting.