Product Documentation
Virtuoso Electrically Aware Design Flow Guide
Product Version IC23.1, November 2023


Contents

1

Introduction to Virtuoso Electrically Aware Design Flow

Licensing Requirements

What is Electromigration?

A Snapshot of The Electrically Aware Design Flow

2

Running Simulations and Saving Electrical Data

Setting up Testbenches and Corners

Preparing the EAD Setup for Simulation

Enabling the EAD Mode
Specifying the Save Options
Specifying the Signals to Save Electrical Data
Choosing the Type of Current to be Saved
Choosing a Method to Save the Current Data
Selecting Signals to Save Currents

Running Simulations and Viewing Output Current Data

Viewing the Current Data
Viewing the Current Data for Reliability Analysis Results
Creating Datasets
Viewing Datasets
Filtering Signals in the EAD Results View

Working with VDR Datasets

Opening the VDR Dataset Form
Viewing Simulation Datasets
Deleting Simulation Datasets
Exporting Simulation Datasets
Viewing CSV Datasets
Creating a CSV Dataset
Deleting CSV Datasets
Exporting CSV Datasets

3

Running the Pre-Layout Electromigration Check

Setting Up Environment Variables for the Pre-EM check

Running the Pre-EM Check

Pre-EM Report

Performing What-If Analysis Based on the Pre-EM Check Results

Preparing the Setup for What-If Analysis
Editing Terminal Currents in Datasets for What-If Analysis
Editing EM Temperature for What-If Analysis

4

Extracting Parasitics in the Layout View

Starting EAD Browser for a Layout

Starting EAD from a Layout Window
Starting EAD Browser
Starting Layout EAD from a Schematic View
Starting EAD from a Layout Window

The EAD Workspace

EAD Toolbar
EAD Browser
EAD Browser Toolbar
Extraction Corner and EM Dataset Controls
Summary Pane
Detail Pane
Viewing Resistance Paths between Terms
Changing Data Display in the EAD Browser
Toggling Dual Pane and Single Pane View
Sorting Columns
Showing and Hiding Columns
Filtering Rows
Creating Net Groups
Managing Net Groups
Searching Nets

Managing EAD Setups

Preparing an EAD Setup
Saving an EAD Setup
Saving a Setup
Creating a New Setup
Referencing a New Setup
Loading an EAD Setup
Related Topics:
Editing Process Settings
Using Custom Variables in ICT-EM Files
Checking Layer Mapping
Deleting an EAD Setup

Working with EAD States

Saving an EAD State
Restoring an EAD State Automatically
Loading an EAD State

Extracting and Analyzing Parasitics

Overview of Parasitic Extraction in Layout EAD
Extracting Parasitics on Interconnect Wires Between Devices
Extracting Parasitics inside Devices
Extracting Parasitics for Devices and Interconnect
Extracting Parasitics for Devices and Overlapping Interconnect
Extracting Parasitics for Local Interconnect Layers
Extracting Parasitics from Strong, Weak, or Must Connections
Customizing Extraction of Parasitics
Assigning Shapes for Extraction
Preventing Extraction Inside Devices
Stopping Extraction at the Device Boundary
Specifying the Hierarchy Levels and Hierarchy Shape Type
Identifying Instances to be Ignored during Extraction
Modifying EM Analysis for Wide Pins
Extracting Parasitics in Layout EAD
High Precision C and R Extraction
Customizing High precision R and C Extraction
finFET Support in High-Precision C Extraction
iQuantus FS C Extraction (Advanced Nodes Layout EAD Only)
Viewing and Analyzing Parasitics
Viewing Mesh for Selected Nets
Comparing Parasitic Values for Multiple Nets
Using Automatic Update Mode
Distributed Computation of Extraction Process
Automatic submission of jobs for all nets to an LSF farm
Automatic submission of jobs for all nets to dedicated servers
Customized distributed computation of net groups using different job policies
Working with Job Policies
Setting Up a Job Policy
Using Distributed Processing Jobs

5

Performing Electromigration Checks and Fixing Violations

Running EM Analysis to Identify Violations

Verifying the Setup for EM Analysis
Running an EM Check
Running EM Checks with High Precision R and C Extraction
Viewing Current Density and Vectors
Viewing Voltage Drop
Identifying EM Hot Spots
Highlighting EM Violations
Running EM Checks on a CUSTOM Dataset
Using Custom Datasets for EM Checks
Creating User-Defined Custom Datasets
Saving CSV Templates for User-Defined Custom Datasets
Reloading and Updating User-Defined Custom Datasets

Viewing EM Information in the EAD Browser

Viewing Delta T Information

Viewing Electrical Information in the Layout Window

Using Info Balloons
Using Point-To-Point Info Balloons
Snapping Start and End Points to Existing Nodes
Displaying Info Balloons with Start and End Points from Different Layers
Displaying Resistance Paths Between the Start and End Points of an Info Balloon
Updating Info Balloons to Reflect Layout Edits
Saving Info Balloons to XML Files
Using Measurement Display
Highlighting and Fixing Violations in the Layout Window

Fixing Violations Using EM Driven Trunk Optimization

Important Point to Note
Optimizing EM Driven Trunks
Expanding Trunks to Fix EM Violations
Shrinking Oversized Trunks
Shrinking and Expanding Trunks

Running EM Analysis on Power Grids

Prerequisites
Specifying the Source Current
Using EAD Menu
Using the defaultCurrent Environment Variable
Using the CUSTOM Dataset
Running EM Analysis on the Scratch Cellview
Modifying the Original Layout
Running EM Analysis on the Original Grid
Specifying Mapping between Nets and Pin Layers for EM Check
Example

Generating EAD Dataset

6

Introduction to EM Calculator

Opening the EM Calculator

EM Calculator Graphical User Interface (GUI)

EM Calculator Toolbar
User-Specified Fields
Results Table

Working with the EM Calculator

Calculating EM Limits
Running What-If Analysis
Exporting EM Results
Loading EM Results

7

Resimulating Designs with Extracted Parasitics

Running Simulations with Layout Parasitics

Preparing the Parasitic Setup
Creating a Netlist Cellview with Layout Parasitics in Virtuoso Layout EAD
Creating a Netlist Cellview with Layout Parasitics in Virtuoso ADE Assembler
Creating a DSPF File with Layout Parasitics in Virtuoso Layout EAD
Running Simulations and Verifying Specifications
Comparing the Simulation Results

Using Extracted Parasitics to Run Spectre EM/IR Analysis

Using Parasitic Values from Multiple Sources
Setting the Source of a Parasitic Estimate to a Layout View
Creating Layout Stitching Estimates for a Cell

Running Advanced Simulation Runs to Improve Designs

Viewing and Updating Layout Parasitics in VSE XL

Important Points to Note
Viewing Parasitics
Probing Resistances for Nets, Terminals, or Instance Terminals Selected on Schematic
Probing Capacitance for Nets Selected on Schematic
Filtering the Coupling Caps Table by Layer
Finding a Specific Resistance Path
Extracting Parasitics
Viewing and Editing Constraints
Viewing and Editing the Max Resistance Constraint in the EAD Browser
Viewing and Editing the Max Capacitance Constraint in the EAD Browser
Viewing and Editing the Max Coupling Capacitance Constraint in the EAD Browser
Annotating Parasitics on the Schematic
Modifying Parasitics on the Schematic
Building Netlist to Run Simulations
Annotating Parasitics from Schematic EAD Browser

8

Quantus-Pegasus Integration for Partial Layouts

Creating Pegasus/Quantus Setup for Parasitics Extraction

Creating Process and Setup Files Manually

Extracting Parasitics from a Partial Layout

Extracting LDE Parameters

Viewing Log Files

A

Form Descriptions

EAD Setup

EAD Options

General
Extraction
EM
Environment
Comments
EAD Setup Options

EAD Pegasus/Quantus Create Setup File Dialog Form

EAD Process Settings

EAD Process Settings – Corners
EAD Process Settings – Layer Mapping
EAD Process Settings – Vias
EAD Process Settings – Cell Shape Types

EAD Job Policy Editor

EAD Net Options

Parasitics & LDE Setup

General Tab
Layout Tab
DSPF Tab

P2T EM Optimization

The Pre-EM Setup Form

B

Environment Variables

elec.gui

createVoltageConstraints
Description
GUI Equivalent
Examples
customVoltageConstraintFunc
Description
GUI Equivalent
Examples
customVmaxCalc
customVminCalc
enableCustomVminVmaxCalc
enableEADMode
saveAll
useHierarchyLevel
hierarchyLevel
enableIdc
idcScaleFactor
enableIavg
iavgScaleFactor
enableIsignal
saveWaveforms
clipWaveforms
clipFrom
clipTo
skipLibListForDataset
Description
GUI Equivalent
Examples
vdrcPerf
Description
GUI Equivalent
Examples
vdrcPerfSigCount
Description
GUI Equivalent
Examples
vdrCsvDatasetDir
Description
GUI Equivalent
Examples
vdrCsvDatasetFileSuffix
Description
GUI Equivalent
Examples
vdrCsvDatasetNameSuffix
Description
GUI Equivalent
Examples
showOnlyTopLevelNets
Description
GUI Equivalent
Examples
warnOnCacheEdit
warnOnCacheSave
warnOnDatasetOverwrite

elec.results

dcResultName
tranResultName

ei.dataSet

excludeCurrentsInCI
storeRelativePaths
transferPerf

ei.setup

enableWorstCaseDatasetForVoltages
Description
GUI Equivalent
Examples
expandIteratedInstancesForCurrents
expandIteratedInstancesForVoltages

msps.layout

individualInstCdfCallbacks

layoutEAD

auxSearchPaths
checkEM
defaultJobPolicy
doAutoLayerMapping
excludedNets
excludedNetsExceptions
extractConnectivity
extractNetsWithConstraints
flattenOtherInstances
highlightNetShapes
includeEmptyNets
loadSubconductorLayers
processSettings
processStrappedMosfets
resistancePathLimit
stampNullNetTiles
updateMode
updateStyle
useCorner
useSetup
xlNetsOnly

layoutEAD.calc

showEstimatedResistance
Description
GUI Equivalent
Examples

layoutEAD.em

autoDatasetCustomProc
Description
GUI Equivalent
Examples
autoDatasetDeviceLengthPropList
Description
GUI Equivalent
Examples
autoDatasetMacroProp
Description
GUI Equivalent
Examples
autoDatasetDeviceWidthPropList
Description
GUI Equivalent
Examples
autoDatasetDistributionMethod
Description
GUI Equivalent
Examples
adjustedCurrentMsgRelTol
customSHESetupFile
Description
GUI Equivalent
Examples
currentDensityMPVDefault
cdfPercentage
computeIRDropWhenLoadingSetup
checkResWidthAndEMLength
Description
GUI Equivalent
Examples
defaultCurrent
deltaT
distributeTermCurrent
dynamicAnalysis
eadVerbosityLevel
Description
GUI Equivalent
Examples
emViolThresholdPercent
enableDynamicRead
enableSelfHeatingEffects
enableViaElseRule
forceSegmentTotal
ictemLayerMapFile
includeDeltaT_Margin
lifetime
ignoreResistorLimit
lifetimeUnits
metalRegionSearchExtent
minCurrent
odRegionSearchExtent
preloadWaveforms
preserveResistorCurrents
printAdjustedCurrents
resistorLimit
resPathsResistorLimit
rmsMetalLineNumAC
rmsMetalLineNumDC
scale
scalingFactor
scratchLib
segmentLength
sheSetupFile
Description
GUI Equivalent
Examples
setTermNodeAsReference
skipViaStackMetalResistor
sumThreshold
termPinLayersForEMCheck
Description
GUI Equivalent
Examples
useDatasetClipInfo
useDatasetTemperature
useMaxRule
viaOverlapPercentage
warnOnEmLayer
warnOnEmLimit
writeEMResultsToOA
preEMCheckLayers
preEMDescendIntoPCell
preEMDetailReport
preEMLogFile
preEMViolThresholdPercent
minResistorCurrent

layoutEAD.pex

autoInjectionPointFile
Description
GUI Equivalent
Examples
autoInjectionPointDebug
Description
GUI Equivalent
Examples
capacitanceMethod
checkInterrupt
couplingCThreshold
coupleToBulkNets
doSlotting
dspfCapUnits
dspfCouplingCapPrefix
dspfFileName
dspfGroundCapPrefix
dspfResistorPrefix
dspfResUnits
dspfSubNodeDelimiter
dspfWriteInstances
dspfWriteSubNodes
enableErosionEffects
enableLoadingEffects
enableWbeEffects
enableWeeEffects
excludePolyDiffusionCap
extractDegenerateNets
extractLocalInterconnectVias
extractNetsWithOpens
extractNonOrthoNets
extractResOnDiffusion
extractToPins
extractionPrimitives
enableCapOnlyModels
fillPurposeNames
fillType
forceExtraction
groundNetName
hideDummyResistors
Description
GUI Equivalent
Examples
hierarchyLevels
hierarchyShapeType
insertResNodeLabelPurpose
insertResNodes
instTermHierarchyLevels
instTermSuperconductive
maxResistorLength
netHierarchyLevels
nonTermDiffusionShapeType
promotePorts
recordCoupledCap
relativeCThreshold
resScaleFactor
Description
GUI Equivalent
Examples
gndCapScaleFactor
Description
GUI Equivalent
Examples
couplingCapScaleFactor
Description
GUI Equivalent
Examples
slottingPurposeNames
stackViaArrayHandling
skipPowerGround
supportSDRDynamicDataset
Description
GUI Equivalent
Examples
swapLithoBiasDirection
temperature
threads
type
unusedInstTermShapeType
viaInstanceMode
viaShapesScanMode
warnOnLayerMapping

layoutEAD.solver

autoThreadsPerNetOverride
convergenceCThreshold
finWidth
finSpacing
hpcMetalFillDefFileName
hprDisableViaClustering
hprStampDataFileName
includePolyFringingCap
modelNonGateFormingPolyCap
modelViaCapacitanceEffect
resistanceMeshDensity
resistanceMeshDensityFileName
resistanceMeshFileName
resistanceMesherThreadCount
resistanceMesherTimeOut
resistancePathThreshold
resistanceFieldFileName
showVoltageDropViolation
tileExtractor
tileExtractorThreadCount
useNumberOfGPU
qrcTechFileName
qrcLayerSetupFileName
qrcCapgenFileName
hpcEngine

layoutEAD.gui

autoHideParasiticHighlights
applyLayerFilterOnCanvasHighlight
capacitanceFixedSuffix
clickClickUpdateDelay
clickClickUseNetCache
detailedParasiticTables
dualPaneMode
emResultsShowAllResistors
emTableResultType
enableFindNet
fitToSelected
hideCheckLayerMapping
Description
GUI Equivalent
Examples
hideHPRCExtraction
Description
GUI Equivalent
Examples
fitToSelectedZoomScale
highlightSelectedNets
layerFilterOnEMCanvas
loadTablesOnDemand
Description
GUI Equivalent
Examples
includeSkippedNets
maxTooltipLength
netGroupsPath
parasiticHighlightColor
P2PSnapping
resistanceDisplay
displayP2PResistancePath
resistancePathsTableTimeout
saveStateOnClose
saveUserSpecificSetups
selectNetsInLayout
selectedParasiticHighlightColor
significantDigits
statePath
strikeOutDeletedDatasets
updateP2POnDrag
violationLevels
violationPacketStipple
violationTransparency
warnOnTemperatureMismatch
warnOnTemperatureOutOfRange
warnWhenEMDataSourceIsInvalid
warnWhenNoParasiticsForDSPF
loadStateOnOpen
enableEMCalculator
Description
GUI Equivalent
Examples
showEMPlannerWindow
Description
GUI Equivalent
Examples
showRecommendedTracks
Description
GUI Equivalent
Examples
showTracksWithoutWSP
Description
GUI Equivalent
Examples
useWSPGroupNames
Description
GUI Equivalent
Examples

p2t

EMStackTwigs
EMFillStackedTrunksWithVias
EMAllowDRCViolations
EMOptimizationMode
EMTrunkStrandMode
EMTrunkTapering

C

Electrically Aware Design Functions

List of EAD-related OCEAN Commands
elecCreateDataSetCSVTemplate
Description
Arguments
Value Returned
Examples
elecDeleteDataSets
Description
Arguments
Value Returned
Example
eadDeleteScratchLib
Description
Arguments
Value Returned
Example
elecGetEnableEADMode
Description
Arguments
Value Returned
Example
elecSetEnableEADMode
Description
Arguments
Value Returned
Example
elecGetCurrentData
Description
Arguments
Value Returned
Example
elecGetDataSetNames
Description
Arguments
Value Returned
Example
elecGetDataSetParamsPropValue
Description
Arguments
Value Returned
Example
elecMakeDefaultDatasetName
Description
Arguments
Value Returned
Examples
elecUpdateDataSetParamsPropValue
Description
Arguments
Value Returned
Example
elecGetVoltageData
Description
Arguments
Value Returned
Examples
elecGetVsyncEnabled
Description
Arguments
Value Returned
Example
elecSetVsyncEnabled
Description
Arguments
Value Returned
Example
elecVdrCreateConstraints
Description
Arguments
Value Returned
Example
elecVdrCreateDeltaV
Description
Arguments
Value Returned
Example
eadAddNetsToNetGroup
Description
Arguments
Value Returned
Example
eadCreateDataSetFromLayCSV
Description
Arguments
Value Returned
Examples
eadCreateDataSetFromSchCSV
Description
Arguments
Value Returned
Examples
eadCreateDataSetLayCSVTemplate
Description
Arguments
Value Returned
Examples
eadCreateNetGroup
Description
Arguments
Value Returned
Example
eadDeleteNetGroup
Description
Arguments
Value Returned
Example
eadExtractParasiticsForDesign
Description
Arguments
Value Returned
Example
eadGetAllEMDatasets
Description
Arguments
Value Returned
Examples
eadGetNetsInNetGroup
Description
Arguments
Value Returned
Example
eadGetTriggerDesc
Description
Arguments
Value Returned
Example
eadGetLocCurrentLimit
Description
Arguments
Value Returned
Example
eadJobClose
Description
Arguments
Value Returned
Example
eadJobStatus
Description
Arguments
Value Returned
Example
eadJobSubmit
Description
Arguments
Value Returned
Example
eadLoadSetup
Description
Arguments
Value Returned
Example
eadPreEMSetUserStopCVList
Description
Arguments
Value Returned
Examples
eadRegTrigger
Description
Arguments
Value Returned
Examples
eadRegisterCustomEMVariable
Description
Arguments
Value Returned
Example
eadRemoveNetsFromNetGroup
Description
Arguments
Value Returned
Example
eadRemoveParasitics
Description
Arguments
Value Returned
Example
eadSetEMVariable
Description
Arguments
Value Returned
Example
elecTransferDataSets
Description
Arguments
Value Returned
Example
eadUnregTrigger
Description
Arguments
Value Returned
Example
eadInitializeDesign
Description
Arguments
Value Returned
Example
eadExtractParasitics
Description
Arguments
Value Returned
Example
eadRemoveDesignParasitics
Description
Arguments
Value Returned
Example
eadRunEM
Description
Arguments
Value Returned
Examples
eadSaveSummaryTableToCSV
Description
Arguments
Value Returned
Examples
eadSetCurrentDataset
Description

D

Generating an EAD Technology File

Prerequisites

Generating an EAD Technology File

Example Scenarios of EAD Technology File Generation

Updating an EAD Technology File

EM Rule Support in EAD

Current Density (JMAX) Keywords
Rules for Defining EM Parameters
Rules for Specifying Via Area
EM Rule Selection Priority

Solvers for Generation of Capacitance Models

Guidelines for Using a Solver

Return to top
 ⠀
X