You can 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, which is the lower-left corner of the RPM. Each remaining cell in
the RPM set is placed using its RLOC value as an 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 instantiates 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 highlights in
the figure are explained in the table that follows.
| Cell | Highlight Color |
|---|---|
| u0 | yellow |
| u1 | green |
| u2 | red |
For more information on controlling the routing, refer to Routing Constraints.