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]
[‑is_reconfigurable] [‑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 |
[-is_reconfigurable]
|
Returns true for a reconfigurable tile specified by -of_objects, or returns false for a non-reconfigurable tile |
[-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. It highlights the placement and routing footprints of reconfigurable Pblocks and displays the overlapping tiles. It is also useful for debugging and analysis of DFX DRCs.
This command returns tiles, sites, and cells objects which are further used in
create_pblock and resize_pblock commands to
create valid reconfigurable Pblocks. Most of the arguments uses the reconfigurable
module (RM) cell name as a valid value for -of_objects. You must
define Reconfigurable Pblock (RP) 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 passed argument. It
returns objects associated with specified RM or device tiles. It accepts one object
as input.
-of_objects option requires specifying
objects 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 RM specified by -of_objects. The following
example fetches placement footprint of the RM
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 RM specified by -of_objects. Routing
footprint is superset of placement footprint.
-pu - (Optional) Returns the tiles included in programmable unit
(PU) which are 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 fetches RM tiles
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. Vivado Design Suite does not allow the use of illegal clock
modes in the RM or static net routing.
-illegal_clock_nodes - (Optional) Returns the illegal clock nodes of
a clock net specified by -of_objects. Vivado Design Suite does not
allow the use of illegal clock modes in the clock routing. These nodes are subset of
illegal nodes.
-frame - (Optional) Returns the tiles included within the frame of
the tile specified by -of_objects. A Reconfigurable Frame is the
smallest size physical region that can be reconfigured and it aligns with clock
region boundaries.
-half_frame - (Optional) Returns the tiles included within the frame
of the tile specified by -of_objects. A Reconfigurable Frame is
the smallest size physical region that can be reconfigured, 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 uses the RM cell name in -of_objects. Valid values
are:
-
hsr- Returns the valid sites of the horizontal super region which must be part of the RP of the RM specified by-of_objects. -
fsr- Returns the valid sites of the fabric logic region which must be part of the RP of the RM specified by-of_objects. -
fsr_hsr- Returns the valid sites of horizontal super region and adjoined fabric logic region which must be part of reconfigurable Pblock of the reconfigurable module specified by-of_objects. The clock sources requires placement in the HSR and the clock control logic requires placement in this adjoined fabric logic region in case of disjoint Pblock.Note:-site_typeis only used for disjoint Pblocks. This option is disabled for 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) Returns the cells of type specified by
value. These are RM cells specified by -of_objects. Valid values
are:
-
non_clock- Returns list of cells which requires placement in fabric logic region. -
clock- Returns list of clock type cells and requires placement in HSR. -
clock_control- Returns list of clock control logic cells and requires placement in the fabric logic region above the HSR where the source clock cells are placed.Note:-cell_typeis only used for disjoint Pblocks. This option is disabled for 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. You can also use this argument to get the tiles which
are part of multiple RPs in a DFX design which leads to DRC errors.
-shared - (Optional) Returns the tiles of a given reconfigurable
module specified by -of_objects shared with another RP. This lists
all shared clocking tiles of the given RM cell.
-is_reconfigurable - (Optional) Returns true (1) if the output tile
specified by -of_objects is reconfigurable and returns false (0) if
the tile is non-reconfigurable.
-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]