Get footprint tiles for different DFX flows.
Syntax
get_dfx_footprint [‑regexp] [‑nocase] [‑filter <arg>] [‑of_objects <args>]
[‑place] [‑route] [‑pu] [‑bli_tiles] [‑frame] [‑half_frame] [‑shared]
[‑cell_type <arg>] [‑site_type <arg>] [‑overlap] [‑prohibit]
[‑illegal_nodes] [‑illegal_clock_nodes] [‑snapped_tiles] [‑quiet]
[‑verbose] [<patterns>]
Returns
Tiles, sites, cells, nodes.
Usage
Name | Description |
---|---|
[-regexp]
|
Patterns are full regular expressions |
[-nocase]
|
Perform case-insensitive matching. (valid only when -regexp specified) |
[-filter]
|
Filter list with expression |
[-of_objects]
|
Accepts cell instance of the reconfigurable module and tile of the device. It accepts one object as input. |
[-place]
|
Returns the placement footprint of a cell specified by -of_objects |
[-route]
|
Returns the routing footprint of a cell specified by -of_objects |
[-pu]
|
Returns the programmable unit of a given tile specified by -of_object |
[-bli_tiles]
|
Returns the BLI tiles connected to given HSR tile |
[-frame]
|
Returns frame tiles of a given tile specified by -of_object |
[-half_frame]
|
Returns half frame tiles of a given tile specified by -of_object |
[-shared]
|
Returns the tiles of a given cell specified by -of_objects, that are shared with another reconfigurable pblock |
[-cell_type]
|
Returns the cells of type specified by value. The cells are of the reconfigurable module specified by `-of_objects`. Valid values are: non_clock, clock, and clock_control. Note: -cell_type is only used for disjoint pblock. |
[-site_type]
|
Returns the sites of type specified by value. The sites are of the reconfigurable module specified by `-of_objects`. Valid values are hsr, fsr, fsr_hsr. Note: -site_type is only used for disjoint pblock. |
[-overlap]
|
Returns the overlapped tiles of routing footprint of a given cell specified by -of_object |
[-prohibit]
|
Returns the prohibited sites of RM module specified by -of_objects |
[-illegal_nodes]
|
Returns the illegal nodes of a RP module specified by -of_objects, or illegal nodes prohibited for static if no cell is specified |
[-illegal_clock_nodes]
|
Returns the illegal clock nodes of a net specified by -of_objects |
[-snapped_tiles]
|
Returns the tiles of a given cell that are in derived ranges and not in XDC constraints |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
[<patterns>]
|
Match tiles, sites, cells, nodes against patterns Default: * |
Description
This command is used in the Dynamic Function eXchange (DFX) flow. The command highlights the placement and routing footprints of reconfigurable Pblocks and to view the overlapping tiles. It can also be used for debugging and analysis of DFX DRCs.
The get_dfx_footprint
command returns tiles, sites, and cells objects which can be further used in create_pblock
and resize_pblock
commands to create valid reconfigurable Pblocks. Most of the arguments take the reconfigurable module (RM) cell name as a valid value for -of_objects
. The command requires the reconfigurable Pblock to be defined by user before executing the command. For more details about footprint and expanded footprint, see Vivado Design Suite User Guide: Dynamic Function eXchange (UG909).
get_dfx_footprint
command is supported for Versal adaptive SoC devices only. For Ultrascale and Ultrascale+ devices, -place
, -route
and -illegal_nodes
are supported.Arguments
-of_objects
- (Optional) Dependent on the argument passed, it is used to return objects associated with specified reconfigurable module or device tiles. It accepts one object as input.
-of_objects
option requires objects to be specified using the get_*
commands, such as get_cells
or get_pins
, rather than specifying objects by name. In addition, -of_objects
cannot be used with a search <pattern>.-place
- (Optional) Returns the tiles which are included in the placement footprint of a reconfigurable module specified by -of_objects
. Following is an example of getting placement footprnit of the reconfigurable module design_0_i/rp1_rm1
.get_dfx_footprint -place -of_objects [get_cells design_0_i/rp1_rm1]
-route
- (Optional) Returns the tiles which are included in the routing footprint of a reconfigurable module specified by -of_objects. Routing footprint is superset of placement footprint.
-pu
- (Optional) Returns the tiles included in programmable unit (PU) which are the minimum required resource set for partial reconfiguration for the tile specified by -of_objects
. The granularity varies based on the resource type and architecture family.
-bli_tiles
- (Optional) Returns the Boundary logic interface (BLI) tile connected to given HSR tile specified by -of_objects. BLI tiles are register stages available for signal going in and out of FSR to and from HSR resources.
-snapped_tiles
- (Optional) Returns the list of tiles are added to derived ranges by snapping and are not present in XDC constraints. With SNAPPING_MODE
on, the tool includes PU of tiles in the Pblock derived ranges that are not included in XDC. The following example shows getting tiles of reconfigurable module that are snapped in derived range and not part of XDC. get_dfx_footprint -snapped_tiles -of_objects [get_cells design_0_i/rp1rm1_0]
-prohibit
- (Optional) Returns the prohibited sites of RM module specified by -of_objects
. This lists all prohibited sites of the given RM cell.
-illegal_nodes
- (Optional) Returns the illegal nodes of a RP module specified by -of_objects
, or illegal nodes prohibited for static if no cell is specified. Illegal nodes cannot be used in routing of RM or static net.
-illegal_clock_nodes
- (Optional) Returns the illegal clock nodes of a clock net specified by -of_objects. Illegal clock nodes cannot be used in clock routing. These nodes are subset of illegal nodes.
-frame
- (Optional) Returns the tiles included in a frame of the given tile specified by -of_objects
. A Reconfigurable Frame is the smallest size physical region that can be reconfigured, and aligns with clock region boundaries.
-half_frame
- (Optional) Returns the tiles included in a half frame of the given tile specified by -of_objects
. A Reconfigurable Frame is the smallest size physical region that can be reconfigured, and aligns with clock region boundaries and half frame aligns with half of the clock region boundary.
-site_type
- (Optional) Returns the sites of type specified by value. It takes the reconfigurable module cell name in -of_objects
. Valid values are:-
hsr
- Returns the valid sites of the horizontal super region which needs to be part of the reconfigurable Pblock of the reconfigurable module specified by-of_objects
. -
fsr
- Returns the valid sites of the fabric logic region which needs to be part of the reconfigurable Pblock of the reconfigurable module specified by-of_objects
. -
fsr_hsr
- Returns the valid sites of horizontal super region and adjoined fabric logic region which needs to be part of the reconfigurable Pblock of the reconfigurable module specified by-of_objects
. The clock sources needs to be placed in the HSR and the clock control logic needs to be placed in this adjoined fabric logic region in case of disjoint Pblock.Note:-site_type
is only used for disjoint Pblocks. This option is disabledfor non-disjoint Pblocks and does not return any objects.
get_dfx_footprint -site_type fsr -of_objects [get_cells design_0_i/rp1_rm1]
-cell_type
- (Optional) Used to return the cells of type specified by value. The cells are of the reconfigurable module specified by -of_objects
. Valid values are:
-
non_clock
- Returns list of cells which needs to be placed in fabric logic region. -
clock
- Returns list of cells which are of clock type and needs to be placed in HSR. -
clock_control
- Returns list of cells which are part of the clock control logic and needs to be placed in the fabric logic region just above the HSR where the source clock cells are placed.Note:-cell_type
is only used for disjoint Pblocks. This option is disabledfor non-disjoint Pblocks and does not return any objects.
-overlap
- (Optional) Returns the overlapping tiles of routing footprint of a given reconfigurable module specified by -of_objects
. This argument can be used to get the tiles which are part of multiple reconfigurable Pblocks in a DFX design which could lead to DRC errors.
-shared
- (Optional) Returns the tiles of a given reconfigurable module specified by -of_objects
which can be shared with another reconfigurable Pblock. This lists all shared clocking tiles of the given RM cell.
-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.-regexp
- (Optional) Specifies that the search <patterns> are written as regular expressions. Both search <patterns> and -filter
expressions must be written as regular expressions when this argument is used. Xilinx® regular expression Tcl commands are always anchored to the start of the search string. You can add ".*" to the beginning or end of a search string to widen the search to include a substring. See http://perldoc.perl.org/perlre.html for help with regular expression syntax.
regexp
is not anchored, and works as a standard Tcl command. For more information refer to http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.
-nocase
- (Optional) Perform case-insensitive matching when a pattern has been specified. This argument applies to the use of -regexp
only.
Examples
The following example returns the Programmable Unit (PU) of a CLE_E_CORE tile.
get_dfx_footprint -pu -of_objects [get_tiles CLE_E_CORE_X27Y4]
The following example returns the overlapping tiles of the RM cells design_0_i/rp1_rm1 footprint .
get_dfx_footprint -overlap -of_objects [get_cells design_0_i/rp1_rm1]
The following example shows usage of get_dfx_footprint
command to create a valid child Pblock to handle disjoint Pblock usecase. Here rp_pblock
is the parent Pblock which is disjoint and rp_child_pblock
is the child Pblock.
set fsr_tiles [get_dfx_footprint -of $rm_cell -site_type fsr]
set non_clock_cells [get_dfx_footprint -of $rm_cell -cell_type non_clock]
resize_pblock [get_pblock rp_child_pblock] -add $fsr_tiles
# Add sites and cells to child pblock
add_cells_to_pblock [get_pblocks rp_child_pblock] $non_clock_cells -clear_locs
The following example returns the BLI tiles connected to CMT_MMCM HSR tile.
get_dfx_footprint -bli_tiles -of_objects [get_tiles CMT_MMCM_X25Y0]