Product Documentation
Virtuoso Relative Object Design User Guide
Product Version IC23.1, August 2023


Contents

1

Relative Object Design Concepts

Introduction

Using ROD Functions Versus Database Functions

Creating Parameterized Cells with ROD Functions

Named Objects

Hierarchical Name

Handles on ROD Objects

System-Defined Handles
User-Defined Handles

Aligning Objects

When Are ROD Alignments Recalculated?
Separating Aligned ROD Objects
ROD Objects in Hierarchy
Querying Objects for Alignments

Stretchable Parameterized Cells

The Stretchable Pcell Process
Assigning Handles
Specifying Environment Variables for Stretchable Pcells
Specifying the Frequency of Pcell Regeneration
Results of Stretching a Handle
Displaying Pcell Stretch Handles
Stretch PCell Custom Vias
Accessing Stretch Handles in SKILL

Multipart Rectangles

Connectivity for Multipart Rectangles
System-Defined Handles for Multipart Paths
Multipart Rectangles as ROD Objects
Creating a Multipart Rectangle from Other Objects
Editing Multipart Rectangles

Multipart Paths

Types of Subparts
Master Paths
Offset Subpaths
Enclosure Subpaths
Sets of Subrectangles
Ends of Paths and Subrectangles
Keeping Subrectangles Out of the Corners of Subrectangle Subpaths
Making Paths Choppable
Connectivity for Multipart Paths
System-Defined Handles for Multipart Paths
Multipart Paths as ROD Objects
Creating a Path from Other Objects
Editing Multipart Paths

Creating Objects from Objects

Creating a Rectangle from Another Object
Creating a Polygon from Another Object
Creating a Path from Another Object

Connectivity

Maintaining Connections for ROD Objects

Preserving Maintained Connections

2

Accessing Information about ROD Objects

About ROD Objects and ROD Object IDs

Getting the ROD Object ID
Getting the ROD Object ID Interactively
Storing the ROD Object ID as a Variable (Avoid)
Checking Whether an Object Is a ROD Object

Accessing ROD Object Attributes

Accessing Subpart Attributes
Examples of Using ~> to Display Information
Getting System-Defined Handle Values with a Script
Getting User-Defined Handle Names with a Script

rodCoord Objects

A

Using Relative Object Design Functions

Aligning ROD Objects Using rodAlign
Creating Handles Using rodCreateHandle
Creating Paths with rodCreatePath
Creating Objects Using rodCreateRect
Creating a Named Rectangle
Creating a Multipart Rectangle with Rows/Columns of Master Rectangles
Filling Bounding Boxes with Master Rectangles
Creating Rectangles on a Terminal and Net
Creating Rectangular Pins
Using rodGetObj
Naming Shapes Using rodNameShape
Unaligning All Zero-level Shapes in a Cellview Using rodUnAlign
Unnaming All Named Shapes in a Cellview Using rodUnNameShape
Converting Multipart Path to Polygon Using dbConvertPathToPolygon

Solutions to Problems

Solutions for rodAlign
Solutions for rodCreateHandle
Solutions for rodCreatePath
Solutions for rodCreateRect
Solutions for rodGetObj
Solutions for rodNameShape

B

Accessing the Cellview ID

Getting the Cellview ID

C

Using Design Rules in ROD Functions

Using Design Rules for Default Values
Accessing Design Rules with techGetSpacingRule

D

Using Environment Variables with ROD

Checking the Value of a ROD Environment Variable
How the System Evaluates ROD Environment Variables
Changing the Settings of ROD Environment Variables
List of ROD Environment Variables
displayStretchHandles
distributeSingleSubRect
preserveAlignInfoOn
rodAutoName
stretchDuplicateHandles
stretchHandlesLayer
traceTriggerFunctionsOn
updatePCellIncrement

E

How Virtuoso Layout Editor Works with ROD Objects

F

Displaying Pin Names in a Layout Window

Setting the Pin Names Environment Variable in .cdsenv
Turning On Pin Names in the Display Options Form

G

Code Examples

Using ROD to Create Multipart Paths
Using Stretchable Pcells

Creating a Bus

Creating a Contact Array

Creating a Guard Ring

Creating a Shielded Path

Creating a Transistor

Getting the Resistance for a ROD Path

getRodPathLength Procedure
createResHandle Procedure

Stretchable MOS Transistor

Code for simplemos Transistor
Code for contcov User-Defined Function
Code for myStretch User-Defined Function

H

Troubleshooting

Warnings in the CIW

Template templateName is replacing an existing template by the same name
Creating instance forces unname of ROD object
ROD object ID changes after Undo

Dialog Box Messages

Why is a dialog box asking about saving the technology file?

Index


Return to top
 ⠀
X