By default, the relative grid is used for macro RLOC coordinates because the most common macros are made of cells that belong to the same site type.
The following simple example illustrates the relative placement derived from macro RLOCs. The macro consists of a pair of SRL >FF >FF circuits that are to be arranged in a 2x2 pattern. See the following figure.
To create the desired relative placement, the cells are assigned RLOCs as follows:
srl[0] X0Y0
regs0[0] X0Y0
regs1[0] X1Y0
srl[1] X0Y1
regs0[1] X0Y1
regs1[1] X1Y1
The following commands create this macro with a name m0:
create_macro m0
update_macro m0 {srl[0] X0Y0 regs0[0] X0Y0 regs1[0] X1Y0 srl[1] X0Y1 regs0[1] X0Y1 regs1[1] X1Y1}
The macro can be automatically placed by the placer or manually placed as a set. The macro placement appears as shown in the following figure:
The macro contains SRLs which are based on LUTRAMs, and which can be placed only in SLICEM type slices. This places slight restrictions on the possible locations of the macro. The macro can be located only where a SLICEL column is to the right of a SLICEM column.