10.1.5 Floorplanning FDC Commands
(Ask a Question)Floorplanning (FDC) commands are used to create and edit user regions and to assign/unassign logic to these regions.
10.1.5.1 assign_region
(Ask a Question)This PDC command constrains a set of macros to a specified region.
assign_region -region_name <region_name> -inst_name <macro_name>+
Arguments
- -region_name
- Specifies the region to which the macros are assigned. The macros are constrained to
this region. Because the
define_region
command returns a region object, you can write a simpler command such asassign_region [define_region]+ [macro_name]+
. - -inst_name
- Specifies the macro(s) to assign to the region. You must specify at least one macro
name. The following table lists the wildcard characters you can use in macro
names.
Table 10-29. Supported Wildcard Characters in Macro Names Wildcard What It Does \ Interprets the next character as a non-special character ? Matches any single character * Matches any string Important:- The region must be created before you can assign macros to it. If the region creation PDC command and the macro assignment command are in different PDC files, the order of the PDC files is important.
- You can assign only hard macros or their instances to a region. You cannot assign a group name. A hard macro is a logic cell consisting of one or more silicon modules with locked relative placement.
- The macro name must be a name with full hierarchical path.
Examples
assign_region -region_name UserRegion1 -inst_name “test_0/AND2_0 test_0/AND2_1”
assign_region -region_name User_region2 -inst_name des01/Counter_1/*
10.1.5.2 assign_net_macros
(Ask a Question)This PDC command assigns to a user-defined region all the macros that are connected to a net.
assign_net_macros -region_name <region_name> -net_name <net_name> -include_driver <true|false>
Arguments
- -region_name
- Specifies the name of the region to which you assign macros. The region must
exist before you use this command. See
define_region
(rectangular) ordefine_region
(rectilinear). Because thedefine_region
command returns a region object, you can write a simple command such asassign_net_macros [define_region]+ [net]+
. - -net_name
-
You must specify at least one net name. Net names are AFL-level (flattened netlist) names. These names match your netlist names most of the time. When they do not, you must export AFL and use the AFL names. Net names are case insensitive. Hierarchical net names from ADL are not allowed.
The following table lists the wildcard characters you can use in net names.
Table 10-30. Supported Wildcard Characters in Net Names Wildcard What It Does \ Interprets the next character as a non-special character ? Matches any single character * Matches any string - -include_driver
- Specifies whether to add the driver of the net(s) to the region. Enter one of the
values in the following table.
Table 10-31. -include_driver Values Value Descriptions True Includes the driver in the list of macros assigned to the region (default). False Do not assign the driver to the region. Observe the following guidelines and see define_region for more information:
- Placed macros (not connected to the net) that are inside the area occupied by the net region are automatically unplaced.
- Net region constraints are internally converted into constraints on macros. PDC export results as a series of assign_region <region_name> macro1 statements for all the connected macros.
- If the region does not have enough space for all of the macros, or if the region constraint is impossible, the constraint is rejected and a warning message appears in the Log window.
- For overlapping regions, the intersection must be at least as big as the overlapping macro count.
- If a macro on the net cannot legally be placed in the region, it is not placed and a warning message appears in the Log window.
- Net region constraints may result in a single macro being assigned to multiple regions. These net region constraints result in constraining the macro to the intersection of all the regions affected by the constraint.
10.1.5.3 define_region
(Ask a Question)This PDC command defines either a rectangular region or a rectilinear region.
define_region -region_name <region_name> -type <inclusive|exclusive|empty> -x1 <integer> -y1 <integer> -x2 <integer> -y2 <integer> [-route <true|false>]
Arguments
- -region_name <region_name>
- Specifies the region name. The name must be unique. Do not use reserved names such as Bank 0 and Bank <N> for region names. If the region cannot be created, the name is empty. A default name is generated, if a name is not specified in this argument.
- -type <inclusive | exclusive | empty>
-
Specifies the region type. The following table shows the acceptable values for this argument.
Table 10-32. -type Values Region Type Description Empty Empty regions cannot contain macros Exclusive Only contains macros assigned to the region Inclusive Can contain macros both assigned and unassigned to the region - -x1 -y1 -x2 -y2
- Specifies the series of coordinate pairs that constitute the region. These rectangles may or may not overlap. They are given as x1, y1, x2, y2 (where x1, y1 is the lower left and x2 y2 is the upper right corner in row/column coordinates). You must specify at least one set of coordinates.
- -route <value>
-
Specifies whether to direct the routing of all nets internal to a region to be constrained within that region. A net is internal to a region, if its source and destination pins are assigned to the region.
The following table lists the acceptable values for this argument.
Table 10-33. -route Values Constrain Routing Value Description True Constrain the routing of nets within the region as well as the placement. False Do not constrain the routing of nets within the region. Only constrain the placement. This is the default value. Note: Local clocks and global clocks are excluded from the-route
option. Also, interface nets are excluded from the-route
option because they cross region boundaries.An empty routing region is an empty placement region. If
-route
is true, then no routing is allowed inside the empty region. However, local and global clocks can cross empty regions.An exclusive routing region is an exclusive placement region (rectilinear area with assigned macros) along with the following additional constraints:
- For all nets that are internal to the region (the source and all destinations belong to the region), routing must be inside the region (that is, such nets cannot be assigned any routing resource which is outside the region or crosses the region boundaries).
- Nets without pins inside the region cannot be assigned any routing resource, which is inside the region or crosses any region boundaries.
An inclusive routing region is an inclusive placement region (rectilinear area with assigned macros) along with the following additional constraints:
- For all nets that are internal to the region (the source and all destinations belong to the region), routing must be inside the region (that is, such nets cannot be assigned any routing resource which is outside the region or crosses the region boundaries).
- Nets that are not internal to the region can be assigned routing resources within the region.
Description
Unlocked macros are unassigned in the empty or exclusive regions. You cannot create empty regions in areas that contain locked macros.
Use inclusive or exclusive region constraints, if you intend to assign a logic to a region. An inclusive region constraint with no macros assigned to it has no effect. An exclusive region constraint with no macros assigned to it is equivalent to an empty region.
Examples
define_region -region_name UserRegion1 -type empty -x1 100 -y1 46 -x2 102 -y2 50
define_region -region_name UserRegion2 -type exclusive -x1 12 -y1 39 -x2 23 -y2 41 -x1 12 -y1 33\ -x2 23 -y2 35
define_region -region_name UserRegion0 -color 128 -x1 50 -y1 19 -x2 60 -y2 25 define_region -region_name UserRegion1 -color 16711935 -x1 11 -y1 2 -x2 55 -y2 29 define_region -region_name UserRegion2 -color 8388736 -x1 61 -y1 6 -x2 69 -y2 19
For more information about regions, see assign_region.
10.1.5.4 move_region
(Ask a Question)This PDC command moves the named region to the specified coordinates.
move_region -region_name <region_name> -x1 <integer> -y1 <integer> -x2 <integer> -y2 <integer>
Arguments
- -region_name
- Specifies the name of the region to move. This name must be unique.
- -x1 -y1 -x2 -y2
- Specifies the series of coordinate pairs representing the location in which to move the named region. These rectangles can overlap. They are given as x1, y1, x2, and y2, where x1 and y1 represent the lower-left corner of the rectangle and x2 and y2 represent the upper-right corner. You must specify at least one set of coordinates.
Example
move_region -region_name UserRegion1 -x1 0 -y1 40 -x2 3 -y2 42
For more information about regions, see define_region.