Relative Grid Macro Examples - 2023.2 English

Vivado Design Suite User Guide: Using Constraints (UG903)

Document ID
Release Date
2023.2 English

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.

Figure 1. Schematic of Example Circuit

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:

Figure 2. Placement of the Macro Example

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.

Too many densely packed slices in proximity can cause congestion, which reduces routability and can negatively impact performance.