Optionally use an RLOC_ORIGIN or LOC constraint to place and fix the location of an RPM on the device. In the Vivado IDE, these properties fix the RPM origin, or the lower-left corner of the RPM. Each remaining cell in the RPM set is placed by using the relative location (RLOC) to offset from the origin.
The following example shows a hierarchical RPM that is fixed using RLOC_ORIGIN. RLOC constraints are assigned to the RPM register cells to create a two-up-by-three-across placement pattern.
(* RLOC = "X0Y0" *) FDC sr0... (* RLOC = "X1Y0" *) FDC sr1... (* RLOC = "X2Y0" *) FDC sr2... (* RLOC = "X0Y1" *) FDC sr3... (* RLOC = "X1Y1" *) FDC sr4... (* RLOC = "X2Y1" *) FDC sr5...
The RPM is instantiated into the design three times with an RLOC on each cell:
(* RLOC = "X0Y0" *) ffs u0... (* RLOC = "X3Y2" *) ffs u1... (* RLOC = "X6Y4" *) ffs u2...
Finally, an RLOC_ORIGIN of X74Y15 is assigned to cell u0 resulting in the placement shown in Figure 1. The highlighting in the figure is shown in the following table.
For more information on controlling the routing used, see Routing Constraints.