get_dfx_footprint - 2023.2 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
UG835
Release Date
2023-10-18
Version
2023.2 English

Get footprint tiles for different DFX flows.

Syntax

get_dfx_footprint [‑regexp] [‑nocase] [‑filter <arg>] [‑of_objects <args>]
    [‑place] [‑route] [‑pu] [‑frame] [‑half_frame] [‑shared]
    [‑cell_type <arg>] [‑site_type <arg>] [‑overlap] [‑quiet] [‑verbose]
    [<patterns>]

Returns

Tiles, sites, cells.

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] Get the tiles, sites, cells of these tiles, cells, sites.
[-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
[-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
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
[<patterns>] Match tiles, sites, cells against patterns Default: *

Categories

HD, Debug

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).

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.

Note: The -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.

-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 disabled for non-disjoint Pblocks and does not return any objects.
The following example get the sites of type fsr of the reconfigurable module design_0_i/rp1_rm1.
 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 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. 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.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the 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.
Note: The Tcl built-in command 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