Move, resize, add and remove Pblock site-range constraints
Syntax
resize_pblock [‑add <args>] [‑remove <args>] [‑from <args>] [‑to <args>]
[‑replace] [‑locs <arg>] [‑quiet] [‑verbose] <pblock>
Usage
Name | Description |
---|---|
[-add]
|
Add site ranges(s) |
[-remove]
|
Remove site ranges(s) |
[-from]
|
Site range(s) to move |
[-to]
|
Site range destination(s) |
[-replace]
|
Remove all existing ranges |
[-locs]
|
LOC treatment Default: keep_all |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
<pblock>
|
Pblock to resize |
Description
Place, resize, move, or remove the specified Pblock. The Pblock must have been created using the create_pblock
command.
A Pblock consists of a group of cells that can be assigned to one or more independent or overlapping rectangles. Using the various options defined below, you can add sites to a rectangle, or remove sites from a rectangle, or define a new rectangle to be associated with an existing Pblock.
Arguments
-add
<args> - (Optional) Add the specified range of sites to the Pblock. The range is specified as a rectangle from one corner to the diagonally opposite corner. The specific objects that can be used to define a Pblock range include the following: SLICE, DSP48, RAMB18, RAMB36, CLOCKREGION. For example SLICE_X0Y0:SLICE_X20Y12.
-remove
<args> - (Optional) Remove the specified range of sites from the Pblock. Removing sites from a Pblock may result in the Pblock being broken into multiple smaller rectangles to enforce the requirement that Pblocks are defined as one or more rectangles.
-from
<args> - (Optional) The -from
and -to
options must be used as a pair, and specify a site or range of sites to relocate from one location to another.
-to
<args> - (Optional) The -from
and -to
options must be used as a pair, and specify a site or range of sites to relocate from one location to another.
-locs
<args> - (Optional) Specifies how the placed logic in the Pblock will be handled as the Pblock is moved or resized. Valid values are:
-
keep_all
- leave all locs placed as they are currently. This is the default setting when-locs
is not specified. Logic that is placed outside of the Pblock will no longer be assigned to the Pblock. -
keep_only_fixed
- Specifies that only user-placed logic (fixed) will be preserved. Unfixed placed logic will be unplaced. -
keep_none
- Unplace all logic. -
move
- Specifies that all locs should be moved relative to the coordinates of the Pblock. -
move_unfixed
- Specifies that only the unfixed placed elements should be moved. Logic placed by the user (fixed) will not be moved. -
trim
- Specifies that logic that falls outside of the new Pblock boundaries will be unplaced. Any placed logic that still falls inside of the Pblock boundary will be left placed as it is. -
trim_unfixed
- Trim only the unfixed placed logic.
-replace
- (Optional) Remove all rectangles associated with the Pblock.
-quiet
- (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
-verbose
- (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config
command.<pblock> - (Required) Specify the Pblock to be resized, moved, or removed.
Examples
The following example resizes the Pblock by adding a range of SLICEs, and removing other SLICEs, but keeps all instances placed at their current location:
resize_pblock block3 -add SLICE_X6Y67:SLICE_X11Y71 \
-remove SLICE_X6Y71:SLICE_X7Y71 -locs keep_all
This example create a Pblock region, and defines the Pblock area by adding a range of CLOCKREGIONs:
create_pblock pblock_1
resize_pblock pblock_1 -add {CLOCKREGION_X0Y10:CLOCKREGION_X1Y11}
The following example moves the specified Pblock by adding a range of SLICEs, removing the existing range of SLICEs, and trims any placed logic that falls outside the new Pblock. Then it adds a new range of SLICEs and block ram to the specified Pblock in a second separate rectangle:
resize_pblock block3 -add SLICE_X3Y8:SLICE_X10Y3 \
-remove SLICE_X6Y67:SLICE_X11Y71 -locs trim
resize_pblock block3 -add {SLICE_X6Y67:SLICE_X11Y71 \
RAMB18_X0Y2:RAMB18_X1Y4}
The following example defines an SLR Pblock by specifying complete SLR:
resize_pblock pblock_SLR0 -add SLR0
Create a Pblock region and define the Pblock area by adding SLRs.
create_pblock pblock_slr0
resize_pblock pblock_slr0 -add SLR0