You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/src/vpr/placement_constraints.rst
+33-3Lines changed: 33 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -28,6 +28,14 @@ A Placement Constraints File Example
28
28
<add_atomname_pattern="n4917"/>
29
29
<add_atomname_pattern="n6010"/>
30
30
</partition>
31
+
32
+
<partitionname="Part2">
33
+
<add_regionx_low="3"y_low="3"x_high="85"y_high="85"/> <!-- When the layer is not explicitly specified, layer 0 is assumed. -->
34
+
<add_regionx_low="8"y_low="5"x_high="142"y_high="29 layer_low="0" layer_high="1"/> <!-- In 3D architectures, the region can span across multiple layers. -->
35
+
<add_region x_low="6" y_low="55" x_high="50" y_high="129 layer_low="2"layer_high="2"/> <!-- If the region only covers a non-zero layer, both layer_low and layer_high must be set the same value. -->
36
+
<add_atomname_pattern="n135"/>
37
+
<add_atomname_pattern="n7016"/>
38
+
</partition>
31
39
</partition_list>
32
40
</vpr_constraints>
33
41
@@ -75,7 +83,10 @@ The ``name_pattern`` can be the exact name of the atom from the input atom netli
75
83
Region
76
84
^^^^^^
77
85
78
-
An ``<add_region>`` tag is used to add a region to the partition. A ``region`` is a rectangular area on the chip. A partition can contain any number of independent regions - the regions within one partition must not overlap with each other (in order to ease processing when loading in the file). An ``<add_region>`` tag has the following attributes.
86
+
An ``<add_region>`` tag is used to add a region to the partition. A ``region`` is a rectangular area or cubic volume
87
+
on the chip. A partition can contain any number of independent regions - the regions within one partition **must not**
88
+
overlap with each other (in order to ease processing when loading in the file).
89
+
An ``<add_region>`` tag has the following attributes.
79
90
80
91
:req_param x_low:
81
92
The x value of the lower left point of the rectangle.
@@ -90,11 +101,30 @@ An ``<add_region>`` tag is used to add a region to the partition. A ``region`` i
90
101
The y value of the upper right point of the rectangle.
91
102
92
103
:opt_param subtile:
93
-
Each x, y location on the grid may contain multiple locations known as subtiles. This paramter is an optional value specifying the subtile location that the atom(s) of the partition shall be constrained to.
104
+
Each x, y location on the grid may contain multiple locations known as subtiles. This parameter is an optional value specifying the subtile location that the atom(s) of the partition shall be constrained to.
105
+
106
+
:opt_param layer_low:
107
+
The lowest layer number that the region covers. The default value is 0.
108
+
109
+
:opt_param layer_high:
110
+
The highest layer number that the region covers. The default value is 0.
94
111
95
112
The optional ``subtile`` attribute is commonly used when constraining an atom to a specific location on the chip (e.g. an exact I/O location). It is legal to use with larger regions, but uncommon.
96
113
97
-
If a user would like to specify an area on the chip with an unusual shape (e.g. L-shaped or T-shaped), they can simply add multiple ``<add_region>`` tags to cover the area specified.
114
+
In 2D architectures, ``layer_low`` and ``layer_high`` can be safely ignored as their default value is 0.
115
+
In 3D architectures, a region can span across multiple layers or be assigned to a specific layer.
116
+
For assigning a region to a specific non-zero layer, the user should set both ``layer_low`` and ``layer_high`` to the
117
+
desired layer number. If a layer range is to be covered by the region, the user set ``layer_low`` and ``layer_high`` to
118
+
different values.
119
+
120
+
If a user would like to specify an area on the chip with an unusual shape (e.g. L-shaped or T-shaped),
121
+
they can simply add multiple ``<add_region>`` tags to cover the area specified.
122
+
123
+
It is strongly recommended that different partitions do not overlap. The packing algorithm compares the number clustered
124
+
blocks and the number of physical blocks in a region to decide pack atoms inside a partition more aggressively when
125
+
there are not enough resources in a partition. Overlapping partitions causes some physical blocks to be counted in more
0 commit comments