11.6 Floorplanning Using Chip Planner

Floorplanning includes creating regions and making logic assignments to those regions. It is an optional methodology to improve the performance and routability of your design. The objective in floorplanning is to assign logic to specific regions on the chip to enhance performance and routability.

When floorplanning, you analyze your design to see if certain logic can be grouped within regions. Placement regions are especially useful for hierarchical designs with plenty of local connectivity within a block. If your timing analysis indicates several paths with negative slack, try grouping the logic included in these paths into their own regions. This forces the placement of logic within the path closer together and may improve timing performance of the design.

Use floorplanning to create Design Separation Regions for security-critical designs. For Microchip’s Design Separation Methodology, all logic should be contained in a logic placement region with dedicated Place and Route resources. For details, see the Design Separation Methodology User Guide .

Use Chip Planner before and after running layout to help you floorplan. You can:

  • Create Regions
  • Move, resize, merge, or delete regions
  • Assign logic to region
  • Assign nets to regions

11.6.1 Types of Regions

Three region types can be created for floorplanning purposes:

  • Inclusive region
  • Exclusive region
  • Empty region

11.6.1.1 Inclusive Region

In an inclusive region, the Place and Route tool places unassigned logic within its boundary. It can contain macros, both assigned and unassigned to region. Routing resources within an inclusive region are also not restricted. Logic that is placed prior to region creation is not unplaced from the region.

Use the Create Inclusive Region icon

to create an inclusive region.

When a region rectangle is created, you can assign logic macros, net macros, and port macros to it from the Design View window.

Figure 11-41. Inclusive Region Example

11.6.1.2 Exclusive Region

In an exclusive region, the Place and Route tool does not place unassigned logic within its boundary. It can contain only macros already assigned to the region before the region is created. However, routing resources within an exclusive region are not restricted.

Use the Create Exclusive Region icon to create an exclusive region:

When a region rectangle is created, you can assign logic macros, net macros, and port macros to it from the Design View window.

If an exclusive region rectangle is created over placed macros, the locked macros already inside the exclusive region will not be unplaced. They are automatically assigned to the region. If the macro is placed but not locked, the macros will be unplaced from the locations and will not be assigned to the exclusive region.

Figure 11-42. Exclusive Region Example

11.6.1.3 Empty Region

In an empty region, neither the user nor the Place and Route tool can place any logic within its boundary. However, routing resources within an empty region can be used by the Place and Route tool.

Use the Create Empty Region icon to create an empty region:

You cannot assign logic macros, net macros, or port macros to an empty region.

If an empty region rectangle is created over placed macros which are not locked, the macros will be unplaced from the locations. The creation of an empty region over locked macros is not allowed.
Figure 11-43. Empty Region Example (PolarFire)

11.6.2 Creating Rectilinear Regions

To create a rectilinear region for floorplanning:

  1. Click the region icon: Empty/Inclusive/Exclusive.
  2. Go to the Floorplanner View and click at the location where you want to create a region.
  3. Drag the mouse diagonally to draw a rectilinear shape for the size of the region you want. The region is named UserRegion1, 2, 3, and so on by default for Inclusive and Exclusive Regions, and EmptyRegion1, 2, 3, and so on by default for Empty Regions.
  4. (Optional) Right click and select Rename to rename the region from the default name to a different name.
  5. Click Commit to save the changes.
The Log window prints the message that PDC files are updated/written to reflect the changes you have made in Chip Planner.
Note: If a user region and its boundary fall on top of a cluster boundary, the tool extends the region to include the cluster in the region.
Figure 11-44. Log Window Messages

The floorplan.pdc file is updated with the “define_region” PDC command to reflect the new user region you create.

define_region -name EmptyRegion3 -type empty -color 2143322112 648 225 659 227
define_region -name UserRegion1 -type inclusive -color 2147442270 552 300 731 311

For details about PDC commands, see the PDC Commands User Guide (SmartFusion2, IGLOO2, RTG4 or the PDC Commands User Guide (PolarFire).

The Properties Window displays the properties of the region you created.

11.6.3 Creating Non-Rectilinear Regions

By default, a region is created with a rectangular area. However, you can also create a non-rectilinear region by merging two or more rectangular regions.

Note:
  • Use inclusive or exclusive region constraints if you intend to assign 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.
  • A user region in which there are macros assigned to it is identified by a vertical and horizontal
    checkered-board pattern:
  • A user region without any logic assigned to it is identified by a diagonal hash line pattern:

11.6.4 Assigning Components/Macros to Regions

To assign components or macros to a user region:

  1. Right click the component or macro in the Logical View and choose Region Assign. A dialog box opens for you to select a user region.
  2. Click Commit to save the changes.
    Alternatively, you can drag-drop the component or macro from the port, Logical View, or net onto a user region in the Floorplanner View.
    The component or macro assigned to the region is identified by a blue check mark:
    Figure 11-45. Macro Assigned to a User Region

    The Log window prints the message that PDC files are updated/written to reflect the changes you have made in Chip Planner.

    The floorplan.pdc file is updated with the assign_region PDC command:

    define_region -name UserRegion1 -type inclusive -color 2147442270 552 300 731 311 
    assign_region UserRegion1 FDDR_INIT_0

    For details about PDC commands, see the PDC Commands User Guide for PolarFire FPGA and the PDC Commands User Guide for SmartFusion2, IGLOO2, and RTG4 .

11.6.5 Routing Inside a Constrained Region

By default, when a region is first created, the region properties (Inclusive/Exclusive/Empty) apply to design resources (Placement) only. The Place and Route tool is free to use the routing resources inside the region. To further constrain the Place and Route tool on routing resources usage inside the region, click the Constrain Routing check box in the Properties window.

Figure 11-46. Constrain Routing Check Box inside Property Window

11.6.5.1 Constrain Routing

This option applies to all types of regions: inclusive, exclusive, and empty.

When this check box is checked, the region constraints are applied to routing, in addition to placement. The routing behavior is summarized in the following table for each type of user region.

Table 11-13. Routing Behavior Inside User Regions with Constrain Routing Enabled
Region Type Routing Behavior
Inclusive
  • For all nets 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 resources that are outside the region or cross the region boundaries).
  • Nets not internal to the region can use routing resources within the region.
Exclusive
  • For all nets 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 resources that are outside the region or cross the region boundaries).
  • Nets without pins inside the region cannot be assigned any routing resources that are outside the region or cross region boundaries).
Empty
  • No routing is allowed inside the Empty Region.
  • However, local clocks and globals can cross empty regions.

11.6.6 Empty Region General Guidelines

Empty regions allow you to create exclusive areas on the device where no logic placement can occur. Empty regions help guide the placer to pack your logic closer together and thereby use more local routing resources to connect it. You cannot create empty regions in areas that contain locked macros. Use the following guidelines for empty regions.

11.6.6.1 Use Empty Regions to Guide the Place and Route Process

If your design does not completely use up your target device (for example, 60% utilization or lower), use empty regions to cluster your logic placement into specific subareas of the chip. This helps when you have originally placed-and-routed the design into a smaller device but want to fit it to a larger part while still preserving the performance you have achieved in the smaller device.

11.6.6.2 Use Empty Regions to Reduce Routing Congestion

Creating empty regions next to the congested area(s) of your design helps reduce congestion. When you place an empty region next to congested logic blocks or regions, the placer cannot place any logic next to your region or logic block. Logic which would normally be placed there is forced to be placed somewhere else. Routing resources next to the congested area are freed up and provide the router more options to route signals into the congested block.

Before deciding to place empty region(s), analyze your design for congestion areas. Use the Ratsnest view in Chip Planner to see dense areas of connectivity into and out of your logic blocks or regions. Create empty regions in these congested areas and see it if improves the routability of your logic.

11.6.6.3 Use Empty Regions to Reserve Device Resources

If you want to preserve the placement of your existing design but plan additional modifications in the future, create empty regions in the areas of the chip where you plan to add additional logic. As you add new logic, remove or resize your empty regions accordingly to fit your new logic. Empty regions placed over I/O pins reserve them for future use as the I/O needs of your design changes. There are some restrictions for using empty regions in this manner.

11.6.7 Overbooking of Regions

Overbooking of regions (assigning resources over 100% utilization) is not allowed. When you try to overbook a region, Chip Planner shows the overbooked resource type in the Properties Window of the Region and the resources are not assigned to the region. The overbooked resource is highlighted in red in the Region Properties window as shown in the following figure.

Figure 11-47. Overbooking of Region

11.6.8 User Action in Regions in the Floorplanner View

When you select a region on the Floorplanner View, you may see some of the following options:

  • Rename Regions
  • Delete Regions
  • Merge Regions
  • Unassign macros from Regions
  • Assign Macros inside Region
  • Clone Region
  • Unassign All
  • Unassign Selected Nets
  • Unassign Selected Components
  • Unassign Selected Ports
Floorplanner View has two operating modes:
  • Macro Manipulation Mode
  • Region Manipulation Mode
In Macro Manipulation Mode, before any region operations (resizing, renaming, deleting, or merging), you must first click the Region Manipulation Mode button to enter the Region Manipulation Mode.
Note: Any side-effects, such as unplacing or unassigning of a macro due to region creation or region resizing, are shown in the Log window.