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


Contents

1

Module Generators (Modgens)

Technology File Requirements for Modgens

Creating a Modgen

Using the Constraint Manager Toolbar
Using the Place Menu
Using Convert to Modgen
Using SKILL Functions

Open Modgens in the Modgen Editor

The Modgen Workspace

Modgen Placement Toolbar

Specifying Modgen Parameters

Row Regions in Modgens

Closing and Regenerating a Modgen

2

Automatic Generation of Modgens using the Array Assistant

Opening Array Assistant From the Constraint Manager

Opening Array Assistant During Device Placement

Opening the Array Assistant During Interactive Placement

Modgen Placement Settings in the Array Assistant

Modgen Pattern Presets
Setting the Placement Objective
Adding Dummies Around Modgens
Editing the Grid Pattern
Saving and Loading Array Settings from a CSV File
Specifying the Spacing Between Modgens
Methods to Add and Delete Rows and Columns in the Array Assistant
Display Names in Array Assistant
The Move Command in the Array Assistant
Swapping Cells, Rows, and Columns in the Array Assistant
Copying and Deleting Instances in the Array Assistant
Adding Dummies around Modgen Instances using the Array Assistant
Editing Modgen Dummy Properties in Array Assistant
Device Instance Management In the Array Assistant

Support for Stacks in Modgens

Stack Attributes Controlled by the Array Assistants

Creating Guard Rings Using the Array Assistant

Creating an Identical Guard Ring Using the Array

Defining Modgen Topology Settings Using the Array Assistant

Reusing Modgen Templates Using the Array Assistant

3

Modgen Tasks

Prevent Unauthorized Edits to Modgens

Modgen Transparent Editing Mode

Modgen On-Canvas Commands

Modgen Reusable Templates

Generating a Modgen Template File
Parameters of a Modgen Reuse Template File
Reusing a Modgen Template File

Modgen Dummies

Adding and Deleting Dummies in the Modgen Editor
Adding Surround Dummies
Neighbor Dummy Type for Modgens
Modgen Dummy Properties
Adding Dummy Device Rows or Columns
Backannotation of Dummy Devices
Methods to Delete Dummy Devices, Dummy Rows, and Dummy Columns

Body Contacts in Modgens

Defining Modgen Body Contact Properties
Adding and Removing Modgen Body Contacts

Grid Placement In Modgens

Placement of Modgen Body Contacts on Grids
Calculating DRC Rules
Corner Case Conditions for Modgen Grid Placer
Body Contact v/s Well Merge

Modgen Guard Rings

Creating a Multipath Part Guard Ring
Fluid Guard Rings Around Modgens
Creating Identical Guard Rings around Modgens (Virtuoso Advanced Node for Layout Only)
Modifying a Modgen Guard Ring
Removing a Modgen Guard Ring

Modgen Device Abutment

Prerequisites for Modgen Device Abutment
Abutting Modgen Devices
Multiple Abutments in Modgen Constraints
Removing Abutment from Devices

Specifying Modgen Device Alignment and Spacing

Aligning Modgen Devices Using the Shortcut Menu
Aligning Modgen Devices Using the Alignment and Spacing Form

Merging Layers

Modgen Merge Wells

4

Placing Modgen Members Interactively

Moving Modgen Instances Interactively

Customizing Rows and Columns

Adding Empty Rows and Columns to Modgens
Highlighting and Deleting Empty Modgen Rows and Columns
Selecting Rows and Columns in Modgens
Rotating and Flipping Modgen Instances

Flipping Instances

Swapping Instances

5

Modgen Forms

Apply Reuse Template Form
Body Contact Options Form
Configure Dummies Form
Dummy Options Form
Guard Ring Options Form
Identical Guard Ring Options Form
Reuse Template Exaction Form
Select Merge Layers Form
Set Member Alignment and Spacing Form
Surround Modgen Form
Master
Parameter
Connectivity
Tap
Array Assistant

6

Modgen Environment Variables

modgenAllowPinPermutation
modgenBodyContactNetToUse
modgenBodyContactReferenceLayer
modgenBodyContactSep
modgenBodyContactType
modgenCreatePreserveLayout
modgenCreatePreserveSpacing
modgenCreateReferenceLPP
modgenCreateUseDefAlignSpacing
modgenCreateUnaboundAsDummies
modgenDefHCSRefLayer
modgenDefHCSRefPurpose
modgenDefHoriAlignment
modgenDefHoriSpacing
modgenDefVCSRefLayer
modgenDefVCSRefPurpose
modgenDefVertAlignment
modgenDefVertSpacing
modgenDummyCell
modgenDummyLengthOptions
modgenDummyLengthValue
modgenDummyLib
modgenDummyNet
modgenDummyNumFingersOptions
modgenDummyNumFingersValue
modgenDummySpecifyParams
modgenDummyType
modgenDummyView
modgenDummyWidthOptions
modgenDummyWidthValue
modgenGuardRingSep
modgenInterdigitationFactor
modgenMakeMinDummies
modgenMergeLayers
modgenMergeWells
modgenMPPGuardRingToUseCB
modgenPassiveCreateOnConnectivity
modgenPatternFormAbutAll
modgenPhysConfigs
modgenPlacementConstraintGroup
modgenPreviewIgnoreXLConnVios
modgenReferencePoint
modgenRememberBodyContactVals
modgenRememberDummyVals
modgenPToTChannelWidth
modgenPToTGenTrunkTwigs
modgenPToTOnCreateFigMode
modgenPToTPinCoverTapLowerViaPercent
modgenPToTPinCoverTapLowerViaPercentEnable
modgenPToTPinCoverTapViaPercent
modgenPToTPinCoverTapViaPercentEnable
modgenPToTPinCoverViaModePercentTrunkOver
modgenPToTPinCoverViaModePercentTrunkOverEnable
modgenPToTPinCoverViaModeTrunkOver
modgenPToTPinCoverViaModeTrunkOverEnable
modgenPToTSpecifyChannelWidth
modgenPToTSpecifyTrunk2DevSpacing
modgenPToTTrimTrunks
modgenPToTTrunk2DevSpacing
modgenPToTTrunkInsertMode
modgenPToTTrunkLayer
modgenPToTTrunkNets
modgenPToTTrunkSpacing
modgenPToTTrunkWidth
modgenPToTTwigAbsoluteWidth
modgenPToTTwigDirectionDown
modgenPToTTwigDirectionLeft
modgenPToTTwigDirectionOver
modgenPToTTwigDirectionRight
modgenPToTTwigDirectionUp
modgenPToTTwigLayer
modgenPToTTwigMinNumCuts
modgenPToTTwigRelativeWidth
modgenPToTTwigWidthType
modgenPToTViaControlCutClass1
modgenPToTViaControlCutClass2
modgenPToTViaControlCutClassLayer
modgenPToTViaControlCutClassName
modgenPToTViaControlCutClassType
modgenPToTViaControlCutClassEnable
modgenPToTViaControlExtensionOrient
modgenPToTViaControlExtensionOrientEnable
modgenPToTViaControlInline
modgenPToTViaControlInlineEnable
modgenPToTViaControlOffset
modgenPToTViaControlOffsetEnable
modgenPToTViaControlOrient
modgenPToTViaControlOrientEnable
modgenPToTViaWidthPercent
modgenPToTViaWidthPercentEnable
modgenSaveOnClosePreviewWindow
modgenTransferDiffInstances
modgenTransferIgnoreParamsList
modgenUseSnapSpacing
modgenUseIteratedAsMfactor
modgenWidthParamProportionalToFingers
modgenWindowConfigFile
transparentModgenArray
chainPermutePins
moveAsSwap
patternDefaultDisplayMode
patternPresetItemList
useDummyOwner

7

Modgen Topology Constraints

minNumCut
minWidth
numStrands
pinCover
properTwigTrunkOverlap
strandSpacing
strandWidth
trunkAccessingNumCuts
validLayers
Defining Modgen Topology Settings Using the Array AssistantvalidStackLPPs
viaControl
viaPercent
wirePercent

Return to top
 ⠀
X