Product Documentation
Virtuoso Floorplanner User Guide
Product Version IC23.1, November 2023


Contents

1

Virtuoso Floorplanner

Prerequisites for Virtuoso Floorplanner

Constraint Group Lookup Precedence

Technology File Rules for Floorplanning Tools

Layer-Purpose Pair and Voltage Dependent Rules in Floorplanning

Support for Net PROs in Virtuoso Floorplanner

Applications supported by Net PROs

Preparing Data for Floorplanning

Types of Block in Floorplanner
Setting the Cell Type
Setting the Block Type
Setting Site Information for Filler Cells

Floorplanner Design Flow

The Floorplanner Toolbar, Menu Commands, and Workspace

Floorplanner Command-Line Flow

Reinitializing a Floorplan

Creating a Rectilinear Polygon in Reinitialize Floorplan

Grid Initialization during Floorplanning

Block Override Support in Virtuoso Floorplanner

Instance Terminals and Overriding Terminals

2

Physical Hierarchy Generation Methods

Generating a Physical Hierarchy

Environment Variables Honored during Physical Hierarchy Generation

Generating a Hierarchy Automatically

Registering and De-Registering Area Estimation Functions

3

I/O Planning and Placement

Database Preparation for IO Planning and Placement

Creating I/O Rows

Abutment Issues During I/O Row Creation

Placing I/O PADS

Constraints Supported by I/O PAD Placer

Cell Insertion

Inserting Filler Cells

Inserting Corner Cells

4

Block Placement

Specifying Block Placer Generic Settings

Block Placer Constraints

Specifying Soft Block Constraints in Block Placer
Adding, Updating, and Deleting Soft Block Constraints
Adding, Updating, and Deleting Instance Constraints
Adding, Updating, and Deleting Instance To Boundary Constraints
Adding, Updating, and Deleting Relative Constraints

Loading Solutions Generated by Block Placer

Reporting Placement Statistics

5

Soft Blocks

Top-Level Power Structures Pushed into Block Level

Pushing Top-level Power Structures into Soft Blocks

Specifying General Options in Push Into Blocks
Specifying Shapes and Nets in Push Into Blocks
Specifying LPP and Pin Layers in Push Into Blocks
Modifying Target View Names

Soft Blocks and Pins Adjustment

Removing Block Overlaps

6

Pin Group Guides

Creating a Pin Group Guide

Selecting Pin Members for Pin Group Guide

Interactive Guide Creation for a Pin Group Guide

Creating a Partial Edge Pin Group Guide
Creating a Full Edge Pin Group Guide
Creating a Box Pin Group Guide
Creating a Free Area Pin Group Guide
Deleting a Pin Group Guide

Comparing Pin Group Guides

Placing Pin Group Guides Based on Schematic or Symbol Views

7

Pin Placement

Planning Placement of Top-Level and Level-1 Pins

Placing a Pin on a Boundary Edge
Placing Ordered Pins on a Boundary Edge
Placing a Pin in a Fixed Position not on the Boundary
Placing a Pin on a Lower-level Instance Terminal
Aligning Level-1 Pins to Top-Level Routes
Aligning Level-1 Pins with Level-1 Routes
Placing Pins that Are Connected to Hard Block Pins
Placing Buried Pins
Converting a Pin into a Rail
Interleave the Bits of Iterated Pins
Customization of the Pin Planner Flow

Pin Optimization

Pins Selection for Optimization
Optimization of Bus Pins
Constraints Supported by Pin Optimizer
Support for Net PRO Definitions

Optimizing Pins

Specifying Pin Spacing for Pin Optimization
Specifying Pin Offset for Pin Optimization
Setting Pin Layer and Side Constraints for Pin Optimization
Congestion-Aware Pin Placement in Pin Optimizer
Optimization of Pins Partially Outside the PR Boundary
Synchronization of Pin Optimization Options between Command Line and GUI
Specifying the Side for a Pin Using Pin Planner
Specifying the Order Constraints during Pin Optimization
Specifying the Priority of Optimized Pins Using Pin Planner
Alignment Issues During Pin Optimization
WSP/SP Support for Pin Optimization

Setting Pin Constraints Using a Pin Constraints File

Updating Pin Labels and Text Displays

Checking Pins

8

Pin Tool

The Pin Tool Browsers

Selecting Pins and Editing Pin Attributes in the Pin Tool
Sorting Pins in the Pin Tool
Converting Pins to Rails using the Pin Tool
Interleaving Bus Pins in the Pin Tool
Creating and Deleting Pin Labels in the Pin Tool
Aligning Connected Pins in the Pin Tool
Creating Square and Rectangular Pins in the Pin Tool
Adding Pins On Different Purposes in the Pin Tool
Re-layering Labels to Match Pin Layers

Pin Creation Commands

Stacked Pins and Vias in the Pin Tool
Creating Pins from Labels in the Pin Tool
Creating Pins from Net Shapes in the Pin Tool
Creating Pins Automatically in the Pin Tool
Creating Boundary and Buried Pins on Whole Shapes
Pin Shapes Created for Straddling Shapes in Auto Create Pins Form
Hierarchical Pin Creation using the Pin Tool
Creating Pin Templates in the Pin Tool

Promoting Pins in the Pin Tool

Planning and Optimizing Pins Using the Pin Tool

Applying Uniform Pin Spacing Using the Pin Tool

Specifying Pin Spacing Based on the Number of WSP Tracks

Customized SKILL Hooks to Resize Pins in the Pin Tool

Resizing Pins using the Pin Tool

Electrically Aware Pins in the Pin Tool

Finding and Viewing Undersized Pins in the Pin Tool
Resizing Undersized Pins in the Pin Tool

Pin and Label Information in the Pin Tool

Exporting Pin Information to a Pin File
Importing Pin Information from a Pin File
Exporting Label Information to a Label File
Importing Label Information from a Label File

Merging Pins using the Pin Tool

Repositioning Pins Using Assisted Move

Setting Pin Tool Options

9

Layout XL Commands Supported By Floorplanner

Floorplanner Global Options

Updating Label Layer-Purpose Pairs on Pin Layer Changes

Customizing Block Annotation Options

Analyzing Connectivity in a Floorplan

Methods for Analyzing Connectivity

Aligning Pins

Common Pin Alignment Issues
Aligning Unconnected Bus Pins

Working With Pin Connectivity Models

Supported Pin Connectivity Models
Setting a Pin Connectivity Model
Shorting Terminals using the Pin Connectivity Setting Form
Unshorting Terminals in Pin Connectivity Form

A

Area Estimation Framework in Floorplanner

Area Estimation Function Definition

Area Estimation Function Registration

Registering an Area Estimation Function to Adjust a Virtual Hierarchy Area Boundary
Registering an Area Estimation Function to Adjust a Soft Block PR Boundary

Area Estimation using the Configure Physical Hierarchy Window

Area Estimation using the Create Cluster Boundary Form

Adding an Area Estimator Function for Layout Generation

B

Floorplan Property File

Master Properties in Floorplan Property File

Binding Properties in Configure Physical Hierarchy Form
Global Variables for Soft Block Generation
Boundary Tab Properties

Terminal Properties in Floorplan Property File

Halo Properties in Floorplan Property File

Loading and Saving a Floorplan Property File

C

Floorplanner Pin Constraints File

Pin Name in a Floorplan Pin Constraints File

Edge Constraint in a Floorplan Pin Constraints File

Pitch Constraint in a Floorplan Pin Constraints File

D

Virtuoso Floorplanner Forms

Add Pin On Different Purposes Form

Analyze Connectivity Form

Auto-Create Pins Form

Auto-Generate Hierarchy Form

Block Annotations Options Form

Block Placer Form

General Tab
Constraints Tab

Compare Pin Group Guides Form

Corner Pad Placement Form

Create I/O Row Form

Create Pin From Label Form

Create Pin From Net Shapes Form

Create Pin Template Form

Create Stacked Pin Form

Electrically Aware Pin Sizing Form

Export Pins Information to File Form

Export Labels Information to File Form

Floorplan Global Options Form

Generate Physical Hierarchy Form

Insert Filler Cells Form

I/O PAD Placement Form

Import Label Info from File Form

Import Pin Information from File Form

Label Layer Purpose Form

Label Update Form

Load Solutions Form

Merge and Must Connect Pins Form

Pin Checker Form

Pin Connectivity Setting Form

Pin Connectivity Model Context Sensitive Menu

Pin Group Guide Form

Pin Group Guide - Place as Schematic/Symbol Form

Pin Placement Form

Pin Planner tab
Pin Optimization tab

Pin Spacing Options Form

Pin Spacing Form

Pin Spacing Advanced Options Form

Pin Offset Options Form

Pin Tool Browser Windows

Pin Browser
Label Browser
Net Shapes Browser

Pin Tool Options Form

Pin Track Skip Options Form

Promote Pins Form

Push Into Blocks Form

Reinitialize Floorplan Form

Register and Deregister Area Estimators Form

Resize Pins Form

Set Cell Type Form

Snap Pins Form

E

Virtuoso Floorplanner Environment Variables

allowNonEdgePins
analyzeConnCheckLogicalConn
analyzeConnCriticalNetOnly
analyzeConnDisplayConn
analyzeConnDisplayNetCount
analyzeConnDisplayNetOpt
analyzeConnEnableNetSel
analyzeConnFontColor
analyzeConnFontOpt
analyzeConnFontSize
analyzeConnFltGroundNet
analyzeConnFltGlobalNet
analyzeConnFltPowerNet
analyzeConnLineSizeWidth
analyzeConnNetSetName
analyzeConnTransValue
analyzeConnWidthOpt
astPinMoveMatchLabelLayerChoice
astPinMoveMatchLabelLayerLPP
astPinMoveMatchLabelLayerPurpose
astPinMoveMatchLayerType
astPinMoveMatchSizeChoice
astPinMovePickTargetFromSelection
autoGenHierCreateView
autoGenHierPhysConfig
autoGenHierDepth
autoGenHierDefaultArea
autoGenHierPinOptMode
autoGenHierRunPinOpt
autoGenHierStopViewsForLib
autoPinCreateBoundaryBuriedPowerPins
autoPinCreateFigGroup
autoPinMultiplePathSpine
autoPinPathSpineAware
autoPinProjectDefaults
autoPinSearchExtraLayers
autoPinTopBackMetalLayer
blockAnnotationArea
blockAnnotationAreaUnits
blockAnnotationCellType
blockAnnotationInstName
blockAnnotationRotation
blockAnnotationSelMode
blockAnnotationShrinkFactor
blockAnnotationTextLPP
blockAnnotationTextSize
bottomSidePinLayersConstraints
boundarySignalPinSize
boundaryMultipleMode
boundarySquareShapePin
buriedMultipleMode
buriedSignalPinSize
buriedWholeShapePin
closePinToolSubForms
customPinGrid
customLengthForBoundaryPins
customLengthForBuriedPins
customLPPField
customPurposeField
defaultBlockTypeWhenUnknown
deletePinSelection
eaPinResizeEdgeSelectMode
eaPinResizeFindMode
eaPinResizeHilightOrigPin
eaPinResizeHilightPin
eaPinResizeHilightVEdge
eaPinResizePinAbutToPRB
eaPinResizeRetainPinSelection
eaPinResizeRunMode
eaPinResizeSelectPin
eaPinResizeSetResizeMode
eaPinResizeShowVEdgeDimension
enableCongestion
enableNoPinsBetweenBusPins
enablePinLayerSideConstraints
enableTrackSkipping
groundWireTypes
honorCurrentPinLocation
ignoreConnectivityBusPinsAlign
labelLayerPurposePair
layerChangeResize
layerPriority
leftSidePinLayersConstraints
matchLabelLayerWithPin
modeOption
mergePinsConnMode
mergePinsSelMode
mergePinsSuffix
moveLabelOrigin
moveLabelTo
numberOfSkipTracks
offSetByGrids
offSetBySpacing
offSetMode
optimizeInstancesPartiallyOutsidePRB
perLayerAdjustmentFactorList
perLayerCustomPinGridList
perLayerOffsetByMfgGridList
perLayerOffsetByRoutingGridList
perLayerOffsetBySpacingList
perLayerSpacingList
pinConnectivityMode
pinFromLabelApplyDepthToInstLabels
pinFromLabelAttachLabelToPin
pinFromLabelCheckNetConnectivity
pinFromLabelCreateWholeShapePin
pinFromLabelEnableVirtualConnect
pinFromLabelPinSizeX
pinFromLabelPinSizeY
pinFromLabelSelectInstLabel
pinFromLabelSelectMode
pinFromLabelSetCustomLPP
pinFromLabelSetCustomPurpose
pinFromLabelSetLabelList
pinFromLabelSetLPPList
pinFromLabelSetPinLayers
pinFromLabelSetPinSize
pinFromLabelSetShapeDepth
pinFromLabelSetShapeLayer
pinFromLabelSetShapeType
pinGridAdjustmentFactor
pinLayers
pinOffsetEdge
pinOffsetMode
pinOffsetValue
pinLayerOption
pinOptMode
pinResizeMode
pinResizeAllEstimators
pinResizeCurrentEstimator
pinResizeFiles
pinSizeSelection
pinSnapModeSnapPins
pinSpacingFrom
pinSpacingType
pinSpacingUpdateConstrs
pinSpacingValue
pinTemplateCreatePGPins
pinTemplateCreatePGPinsLPPList
pinTemplateCreatePGRails
pinTemplateCreatePGRailsLPPList
pinTemplateCreatePinConstraints
pinTemplateDeletePinsRails
pinTemplateGroundNet
pinTemplatePowerNet
pinTemplateRunPinOpt
pinToolMatchLabelLayer
pinToolMatchLabelLayerChoice
powerWireTypes
promoteCreateLabelsOnPins
promoteCustomPurpose
promoteCustomLPP
promoteDeleteOldPins
promoteLayerChoice
promoteOddEvenChoice
promotePinConnectivity
promotePinNetChoice
promotePinNetList
promotePinOnNetForSelInsts
promotePinOnNetPickLevel
promotePrefixChoice
promotePrefixString
promoteSchematicAware
promoteSelectiveBusBits
promoteSelectInCanvas
promoteSuffixChoice
promoteSuffixString
promoteToChoice
promoteTopLayerFig
promoteToLevel
promoteVisibleLPPs
ptImportFileMode
ptImportFileName
ptPinPurposeNames
purposeField
rectangularPinEdgeOnPRB
retainLongPin
rightSidePinLayersConstraints
sameLabelPurpose
selectedOnly
signalWireTypes
snapOnlySelInstsToGrid
spacingConstraint
spacingMode
spacingType
spacingValue
tableSpacingRule
targetPinSide
topSidePinLayersConstraints
widthForPinGrid
vfpGroundWireTypes
vfpPlacePinsAsSchCreateEdgeCons
vfpPinCheckerDuplicatePin
vfpPowerWireTypes
vfpSignalWireTypes
vfpTopLevelRouteCreatePinOnRouteProp
vfpTopLevelRouteEnableCustomPinLayer
vfpTopLevelRouteEnableCustomPinSize

Return to top
 ⠀
X