Absolute Grid Macro Examples - Absolute Grid Macro Examples - 2026.1 English - UG903

Vivado Design Suite User Guide: Using Constraints (UG903)

Document ID
UG903
Release Date
2026-07-01
Version
2026.1 English

When you combine cells of different site types into a macro, use the absolute grid.

The absolute grid, or RPM grid, is a coordinate system that defines site coordinates by their physical location in the device. The grid accounts for differences in site sizes, such as the wider spacing of RAM and DSP blocks compared to slices. The following figure shows an example schematic.

This example groups cells from three site types into a macro using the absolute grid. The input data path flows from input ports through two register stages into block RAMs.

Figure 1. Example Circuit for Absolute Grid

To create the macro, provide a list of cells and their relative locations (RLOCs) using the absolute grid. Because visualization can be difficult, AMD recommends placing the cells temporarily at absolute locations in the device and then deriving their absolute grid RLOC values.

Figure 2. Manually Placed Cells for an Absolute Grid Macro

Although the absolute grid specifies fixed locations, the macro can still be placed anywhere that supports the relative placement. In this example, the lower-left corner serves as the reference point.

Even though the locations are absolute, they define only relative placement. This allows you to place the macro anywhere in the device that maintains the same relative arrangement. Because this macro includes ILOGIC, slices, and block RAM, placement is somewhat restricted. You can place the macro only in the three highlighted locations shown in the following figure.

Figure 3. Three Possible Locations for the XDC Macro

To determine absolute grid RLOCs, use the site RPM_X and RPM_Y properties. For example, the lower block RAM is placed at site RAMB36_X0Y0. Selecting the site (not the cell) shows RPM_X = 33 and RPM_Y = 0 (Figure 4). The corresponding RLOC value is X33Y0.

Figure 4. Absolute Grid Coordinates of a Block RAM

A slice in the same region produces an RLOC of X31Y0.

Figure 5. Absolute Grid Coordinates of a Slice

Create the macro with the following commands:

create_macro m0
update_macro m0 -absolute_grid <cell0 rloc0 cell1 rloc1 cell2 rloc2 … cellN rlocN>

If the macro contains many cells, Tcl can simplify the process of building the cell-RLOC list required by update_macro.

proc getAbsRLOC {cell} {
set site [get_sites -of [get_cells $cell]] 
set X [get_property RPM_X $site]
set Y [get_property RPM_Y $site]
return "X${X}Y${Y}"
}