AbhyasaSEMICON TECHNOLOGIES

Module placement constraints in physical design

Working with Cadence Innovus, designers need to control cell placement efficiently to optimize performance, congestion, and timing closure. Innovus provides multiple module placement constraints that guide and restrict module locations within the core design area: None, Guide, Fence, Region and Soft Guide/Cluster.

None

When a module is assigned the None constraint, it means that the module is not pre-placed within the core design area. However, this does not mean that it lacks placement control. The module may still be moved into the core area during optimization or loaded using a floorplan file.

None constraint: module cells shown after automatic placement in the core, without a module-specific pre-placement boundary.
Supplementary figure — None constraint (no module-specific pre-placement)

Guide

A Guide is a soft constraint that helps in placing cells closer together but does not enforce strict placement rules. It represents a logical grouping of instances in the netlist and assists the placement engine in keeping related components nearby.

Source command
createGuide object_name bbox

Key Features

  • Represents the logical module structure of the netlist.
  • Helps in placing cells of the module close to each other within the suggested area.
  • Appears as pink objects in the Floorplan view (by default) after the design is imported, but before floorplanning.
  • The module guide snaps to a standard cell row (vertically) and to a metal 2 pitch (horizontally) (the default). This default can be changed to snap to the manufacture grid (in the Preferences form's Floorplan page).
  • Does not enforce strict placement, meaning cells can be slightly displaced based on connectivity requirements.
Guide constraint: related cells are near a dashed preferred area, with one extending just outside it.
Figure 1 — Guide constraint (schematic placement example)

Fence

A Fence is a hard constraint that strictly confines a module within a fixed area. It prevents cells from moving outside the defined boundary and restricts other instances from entering the area.

Source command
createFence object_name bbox

Example: Consider a memory block that needs to be placed in a specific region to optimize data flow. A Fence ensures that no other cells intrude, maintaining predictable timing and congestion.

Key Features

  • When a hierarchical instance is defined as a partition, its constraint type changes to a fence.
  • The fence outline is rigid, meaning all instances must remain within the boundary.
  • Non-child instances from other modules cannot be placed inside the fence.
  • This hard restriction is necessary to ensure consistency with third-party backend tools.
Fence constraint: assigned cells inside the exclusive fence and other cells outside.
Figure 2 — Fence constraint (schematic placement example)

Region

A Region is similar to a Fence, but it is less restrictive. Other instances can be placed inside a region, but priority is given to the assigned module.

Source command
createRegion object_name bbox

Example: If you have an ALU (Arithmetic Logic Unit) in a multi-core processor, a Region can keep its logic in a dedicated area, but some unrelated cells may still be placed within that area if needed.

Key Features

  • Unlike a fence, other instances from different modules can be placed inside a region.
  • A module guide automatically changes to a Region when it is pre-placed in the core design area.
  • Helps in grouping cells together while still allowing some flexibility.
Region constraint: assigned cells inside a region with other cells also allowed inside.
Figure 3 — Region constraint (schematic placement example)

Soft Guide/Cluster

A Soft Guide, also known as a Cluster, is an even looser constraint than a Guide. It does not specify an exact placement location but ensures that grouped instances stay relatively close to each other.

Key Features

  • Similar to a Guide, but it does not enforce any specific location constraints.
  • Ensures that the grouped instances stay relatively close but allows some cells to be placed further if necessary.
  • Less restrictive than Fence or Region, meaning placements may spread out if required for connectivity.
  • The placement engine can control the degree of closeness using the command:
Source command
setPlaceMode -place_global_soft_guide_strength
Soft Guide/Cluster: related cells kept near each other without a fixed boundary.
Figure 4 — Soft Guide/Cluster (schematic placement example)

Key Differences

Comparison based on the original article descriptions
ConstraintPlacement behavior in sourceOther instances inside?Source-described role
NoneNot pre-placed; may still move into the core during optimization or load from a floorplan file.Not specifiedNo module pre-placement constraint
GuideSoft grouping; helps keep related cells close and can allow displacement for connectivity.Not specifiedLogical grouping and proximity
FenceHard boundary; module instances stay inside.No; source says non-child instances cannot enterStrict confinement
RegionAssigned module has priority in its region.Yes; source explicitly allows other instancesGrouping with placement flexibility
Soft Guide/ClusterProximity preference; no exact location and some instances may be farther apart.Not specifiedKeep grouped instances relatively close