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: * |
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.
-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.
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.
-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