View Library View Table Of Contents View Previous Chapter in Book View Next Chapter in Book Open PDF to print book Search Cadence Library Email Comments Help Using Documentation Shut Down Cadence Documentation Server


Virtuoso Layout Editor User Guide, Product Version 5.0


8


Creating Objects

This chapter contains these topics:




Entering and Deleting Points

When you create objects in the Virtuoso® Layout Editor, you enter and delete points to create the shape you want.



Entering Points

To enter points,

  1. Click and release the left mouse button.

  2. Double-click to enter the last point for a polygon or path.



Deleting Points

To delete a point,

      press Backspace.



Entering Points with the Keypad

You can use the keypad to move the cursor and to enter points. This can be helpful if, for example, you want to enter a point just a few units away from the last point.



Typing Points in the CIW

You can enter points by typing coordinates into the Command Interpreter Window (CIW.)

When you are prompted for a point, type a coordinate pair into the CIW, use a colon to separate the coordinates, as shown, and press Return.

       

You can continue typing coordinates each time you are prompted for a point.

If you are creating a polygon or path, type in the same coordinates twice to indicate the last point.




How Creation Commands Work with ROD Objects

The following tables summarize the level of support for how creation commands work on relative object design (ROD) objects in the current release.

Using commands that are not fully supported for ROD objects could cause the objects to lose the ROD information associated with them, changing the objects into ordinary shapes.

Note:  ROD functionality is not implemented for mosaics.


Create Command

Degree of ROD Support

Rectangle... r

Create and name new rectangles as ROD objects using the Create Rectangle form.

Polygon... P

Create and name new polygons as ROD objects using the Create Polygon form.

Path... p

Create and name paths as ROD objects using the Create Path form.

Multipart Path...

Create and name new multipart paths as ROD objects using the Create Multipart Path form. This form lets you choose a template from your technology file, load templates from an ASCII file, and save form values as a template in your technology file (if you have write permission) or in an ASCII file.

Label... l

You cannot create a label as a ROD object. However, you can make an existing label a ROD object by assigning it a name with the rodNameShape function.

Instance... i

An instance is automatically a ROD object because it has a unique name. The ROD object name is the same as the instance name.

Pin... ^p

Create and name new pins as ROD objects using the Create Pin Shape form.

Pins From Labels...

You cannot create a pin from a label as a ROD object. However, you can make an existing pin a ROD object by assigning it a name with the rodNameShape function.

Contact... o

A symbolic contact is automatically a ROD object because it is an instance and has a unique name. The ROD object name is the same as the instance name.

Device...

A symbolic device is automatically a ROD object because it is an instance and has a unique name. The ROD object name is the same as the instance name.

Conics Circle

Circles are supported as ROD objects. However, there is no user interface for naming a circle; use the rodNameShape function.

Ellipse

Ellipses are supported as ROD objects. However, there is no user interface for naming an ellipse; use the rodNameShape function. An ellipse ROD object has only bounding box handles.

Donut

Donuts are supported as ROD objects. However, there is no user interface for naming a donut; use the rodNameShape function. A donut ROD object has only bounding box handles.

Layer Generation...

You cannot create a shape using a layer generation operation as a ROD object. However, you can make a generated shape a ROD object by assigning it a name with the rodNameShape function.





Creating Rectangles

The Create Rectangle command lets you create rectangular shapes. When you create a rectangle, you have the option of designating it as a relative object design (ROD) object. The ROD object contains information about the rectangle, including its name and database ID.

Creating a ROD object using the Create Rectangle command lets you

Only one ROD object can be created and assigned to a net at a time. You cannot enter a series of names in the Net Name and ROD Name fields and expect the names to peel off at the spaces separating the words.

You can use the environment variable rodAutoName to set the Create Rectangle form to automatically

Once the rectangles are created, you can edit them by typing ROD function commands in the CIW. These commands let you

See the Virtuoso Relative Object Design User Guide for information about ROD objects.



About the Create Rectangle Form

Net Name assigns the rectangle to a specific net.

As ROD Object creates the rectangle as a ROD object.

ROD Name assigns a name to the new rectangle in the current layout cellview if As ROD Object is on. The name must be unique in the cellview. If you do not edit this field, the system assigns a unique name consisting of the prefix rect, followed by a number. For example, the first ROD rectangle would be named rect0, the second, rect1, and so on.



Creating a Rectangle

To create a rectangle,

  1. In the Layer Selection Window, click on the layer you want.

  2. Choose Create - Rectangle [r].

  3. In the Net Name field, type the net name you want the rectangle to be associated with.

  4. If you want to create a ROD object rectangle, turn on As ROD Object.

    The ROD Name field becomes editable, allowing you to change the name from the default name that is displayed. If you do not change the name, the default name is assigned to the rectangle.

  5. Click to enter the first corner of the rectangle.

  6. Click to enter the opposite corner of the rectangle.




Creating Polygons

The Create Polygon command lets you create polygonal shapes. When you create a polygon, you have the option of designating it as a ROD object. The ROD object contains information about the polygon, including its name and database ID.

Creating a ROD object using the Create Polygon command lets you

Only one ROD object can be created and assigned to a net at a time. You cannot enter a series of names in the Net Name and ROD Name fields and expect the names to peel off at the spaces separating the words.

You can use the environment variable rodAutoName to set the Create Polygon form to automatically

Once the polygons are created, you can edit them by typing ROD function commands in the CIW. These commands let you

See the Virtuoso Relative Object Design User Guide for information about ROD objects.



About the Create Polygon Form

Snap Mode limits how the cursor snaps when you create a polygon.

anyAngle creates lines at any angle.

diagonal creates lines parallel to the X or Y axis or at a 45-degree angle to the axes.

orthogonal creates lines parallel to the X or Y axis.

L90XFirst creates orthogonal two-segment lines and creates the first line in the X direction.

L90YFirst creates orthogonal two-segment lines and creates the first line in the Y direction.

Create Arc lets you create an arc in the polygon.

Net Name assigns the polygon to a specific net.

As ROD Object creates the polygon as a ROD object.

ROD Name assigns a name to a new polygon in the current layout cellview if As ROD Object is on. The name must be unique in the cellview. If you do not edit this field, the system assigns a unique name consisting of the prefix polygon, followed by a number. For example, the first ROD polygon would be named polygon0, the second, polygon1, and so on.



Creating a Polygon

To create a polygon,

  1. In the LSW, click on the layer you want.

  2. Choose Create - Polygon [Shift-p].

  3. In the Net Name field, type the net name you want the polygon to be associated with.

  4. If you want to create a ROD object polygon, turn on As ROD Object.

    The ROD Name field becomes editable, allowing you to change the name from the default name that is displayed. If you do not change the name, the default name is assigned to the polygon.

  5. Click to enter the first point.

  6. Move the cursor and click to enter the next point.

  7. Continue to move the cursor and click to enter points.

    As you enter each point, a dotted line shows how the layout editor will close the polygon if you stop at that point.

  8. Double-click to finish the polygon.



Creating Polygons Using Different Snap Modes

To create polygons using the snap mode to control the angle of the edges,

  1. Open the Create Polygon form.

  2. In the Snap Mode cyclic field, choose a value.

Snap Mode settings are illustrated here.

If you chose an L90 mode, you can switch to the other L90 mode by clicking right.

Keep clicking right to toggle between L90XFirst and L90YFirst.



Creating an Arc in a Polygon

To create an arc in a polygon,

  1. Open the Create Polygon form.

  2. Click on Create Arc in the form.

  3. Click to indicate the startpoint, the endpoint, and a radius point on the arc.

If you have already entered some points of a polygon, the last point you clicked is the startpoint of the arc.

Note:  You can also use the Modify Corner command to curve the corner of a polygon.




Creating Paths

The Create Path command lets you create paths. A path is the course over which electrical currents flow in circuits. This is also known as routing.



About the Create Path Form

Width specifies the path width in user units.

Fixed Width, when on, uses the width you specify in the Width field for all segments of the path. When off, the path width remains set at the last setting until you click the Defaults button. The Defaults setting uses the minWidth defined in the technology file for the current layer.

Offset offsets the line you use to create the path from the final path. To control which edge of the path is offset, set the Justification cyclic field.

Justification controls which edge of the path you create: left, center, or right. If you set a path offset, Justification controls which edge of the path is offset from the line you create.

End Type controls how the path ends are created.

flush: the path ends and path points end at the same points.

offset: the path ends extend from the path points by one half the path width.

octagon: the path ends extend from the path points by one half the path width, creating an octagonal shape.

variable: the path ends extend from the path points by whatever value you enter in the Begin Extension and End Extension fields.

Begin Extension and End Extension, when End Type is set to variable, let you enter a beginning and an ending extension in user units.

Change To Layer lets you automatically place a contact and change layers while creating a path. While creating the path, you can select the new layer by selecting the layer from the cyclic menu. If the Create Path form is not open, you can change layers by clicking Control right in your design to cycle through the layers in the menu.

Contact Justification is the field where you click on one of the Contact Justification radio buttons to control which edge or corner of the contact connects to the path end. Your technology file must include definitions of all contacts.

Snap Mode controls how path segments snap to the grid.

Snap Mode examples:

To toggle between L90XFirst and L90YFirst while you are creating a path, click right.

Acute Angle (available only when Snap Mode is set to anyAngle) When set to on, you can create acute angle paths. When set to off, you can create paths only from 90 degree to 180 degree angles.

Net Name assigns the path to a specific net.

As ROD Object creates the path as a ROD object.

ROD Name assigns a name to the new path in the current layout cellview if As ROD Object is on. The name must be unique in the cellview. If you do not edit this field, the system assigns a unique name consisting of the prefix path, followed by a number. For example, the first ROD path would be named path0, the second, path1, and so on.

Rotate turns the contact 90 degrees counterclockwise. You can also click Shift right to rotate the contact.

Sideways mirrors the contact along the X axis.

Upside Down mirrors the contact along the Y axis.



Creating a Path

To create a path,

  1. In the LSW, click on the layer you want to use.

  2. Choose Create - Path.

  3. Enter the first point by clicking in the cellview.

  4. Move the cursor to the next point and click.

  5. Continue to move the cursor and click to enter points.

  6. Double-click to finish the path.



Changing Path Shape

To change the path shape as you create a path,

  1. Open the Create Path form.

  2. In the Snap Mode cyclic field, choose a value.



Changing Path Width

To change the width while creating a path,

  1. Open the Create Path form.

  2. In the Width field, type in the new width.

    The width setting is calculated in user units, which are usually microns. The default path width is the minWidth for the entry layer as defined in the technology file.



Creating Offset Paths

You can create a path that is offset from the points you enter.

  1. Open the Create Path form.

  2. In the Offset field, type a value.

    The edge of the path is offset by the amount you type in the Offset field. For example if you type 0.5, the path is created 0.5 microns from the points you enter.

  3. In the Justification cyclic field, select the edge of the path you want to offset.

    The layout editor offsets the path to the left of the points you enter from the bottom of the cellview to the top.



Changing Path Ends

The path End Type settings change the shape and spacing of path ends.

  1. Open the Create Path form.

  2. In the End Type cyclic field, choose an end type.

  1. If you chose variable, type values in the Begin Extension and End Extension fields.



Setting Path Justification

The path justification settings control whether you enter points along the centerline or the edge of a path.

  1. Open the Create Path form.

  2. In the Justification cyclic field, choose a new value.



Displaying Path Centerlines or Borders

You can control how paths appear in the cellview.

To display path centerlines or borders,

  1. Choose Options - Display [e].

    The Display Options form appears.

  2. Do one of the following:

    • Turn Path Borders on, which displays both the path centerline and its outer edges.

    • Turn Path Borders off, which displays only the path centerline.

  3. Click OK.



Path Stitching

You can create a path that switches from one layer to another, automatically placing an appropriate contact at the point where the layer changes. This function is often called path stitching.

You can automatically place default contacts, or if multiple contacts are defined in the technology file, you can choose from a list of contacts.

Using Default Vias During Path Stitching

  1. Open the Create Path form.

  2. Click the first point of the path.

  3. In the Change To Layer cyclic field, choose the layer you want. If the Create Path form is not open, you can change layers by pressing Control and the right mouse button in your design to cycle through the layers listed in the cyclic field.

    If no layers appear in the Change To Layer cyclic field, no contacts are defined in the technology file for the current layer and you cannot stitch the path. For more information about defining contacts, see "Defining Contacts".

  4. Move the pointer back into the cellview.

    The cursor drags the outline of a contact or a contact array.

  1. If you want to change the contact alignment, click on the Contact Justification button in the form that represents where you want the contact to align.

  1. If you want to change how the contact snaps to the path, change the path justification.

  1. Click in the cellview window to place the contact.

Selecting From Multiple Contacts During Path Stitching

  1. Set the environment variable useDefaultVia to nil.

  2. Open the Create Path form.

  3. Click the first point of the path.

  4. In the Change To Layer cyclic field, choose the layer you want.

    If multiple contacts are defined in the technology file, the Select Contact form appears.

  5. Click on the name of the contact you want.

  6. Click OK.

  7. Click in the cellview window to place the contact.

Rotating Contacts During Path Stitching

You can rotate the contacts you place while you are path stitching.

  1. Open the Create Path form.

  2. Click the first point of the path.

  3. In the Change To Layer cyclic field, choose the layer you want.

  4. Move the pointer back into the cellview.

    The cursor drags the outline of a contact or a contact array.

  5. Click Rotate or press Shift and click right to rotate the contact.

  6. Move the pointer.

  1. Click to place the contact.



User-Defined Contacts

You can create your own contacts and have them appear in the Change To Layer cyclic field. To do this, you must edit either the syEnhContact or syContact device class when defining and declaring your contacts. You can use the syntax format in the syEnhContact.tf sample file to define your custom contacts. The class and formal parameters must be the same name as that used for creating a symContactDevice device class. You can add parameters, but do not change the names of the existing ones.

Contacts created in the user-defined device class syEnhContact appear in the Device Class and Device Type fields in the Create Device form and contacts created in the user-defined device class syContact appear in the Contact Type field in the Create Contact form.

For information about how to edit the technology file and add customized contacts, read the "Devices" chapter in the Technology File and Display Resource File User Guide.



Defining Contacts

To define contacts, do the following:




Creating Labels

The Create Label command lets you enter text in the cellview.



About the Create Label Form

Label sets the text you want to appear.

Height sets the height of the label in user units (usually microns).

Font sets the text style of the label.

Text Options

Drafting prevents the label from being rotated more than 90 degrees.

Overbar determines how text strings containing underscore characters are displayed.

Justification sets the location of the label origin. The origin appears as a small square on the label when you place or select it.

Attach lets you attach the label to an object in the cellview.

Rotate turns the label 90 degrees counterclockwise.

Sideways mirrors the label along the X axis. Drafting must be off for this button to work.

Upside Down mirrors the label along the Y axis. Drafting must be off for this button to work.



Creating and Attaching a Label

You can identify objects or portions of your design by adding labels. You typically attach labels to objects on a net, so the LVS (Layout Versus Schematic) program can verify the nets in your layout against those in your schematic.

To create and attach a label,

  1. Choose Create - Label.

    The Create Label form appears.

  2. In the Label field, type the text of the label.

    You can include spaces and special characters.

  3. Choose a font.

  4. Set Attach on.

  5. Click where you want to place the label.

  6. Click on the object to which you want to attach the label.

    A dashed line extends from the label to the object and disappears when you click on the object.



Rotating Labels

To rotate or mirror a label as you place it,

  1. Set Drafting off in the Create Label form.

    When Drafting is on, you cannot rotate text more than 90 degrees.

  2. Do any of the following:

    • Click right to rotate the label 90 degrees.

    • Press Shift and click right to mirror the label.

    • In the Label form, click on Rotate, Sideways, or Upside Down.

You can click on the rotate and mirror buttons, or click right, as many times as you want. Each time you click a button or click right, the label is further rotated or mirrored.



Choosing a Font

To choose your label font, select one of the fonts in the Create Label form. The font styles are shown below.



Using the Overbar Option

The overbar display option determines how text strings containing underscore characters are displayed in a layout window.

When overbar is off (default), the software displays underscore characters ( _ ) as part of the text string. When overbar is on, the software interprets underscore characters in the text string name as toggle switches that control where overbars begin and end. Overbars appear above the text string, as shown in the examples.




Placing Instances and Arrays

An instance is a database object that represents a master cellview. You can have several instances of the same cellview in a design. The Create Instance command lets you place an instance of a cell into the current cellview.



About the Create Instance Form

Library, Cell, and View set the library, cell, and view names of the master cell you want to place as an instance in this cellview.

Browse lets you select the library, cell, and view names by clicking on them in the browser.

Names sets the name assigned to this instance. You can type any name unique to the cellview here or let the layout editor automatically assign instance names that begin with the letter I, followed by a number. You can enter multiple names (separated by a space) to place several instances of the same cell.

Mosaic

Rows and Columns set the number of rows and columns in an array of instances.

Delta X and Delta Y set the spacing between rows and columns in an array of instances.

Magnification enlarges or reduces the size of the cell instance.

Rotate turns the instance 90 degrees counterclockwise.

Sideways mirrors the instance along the X axis.

Upside Down mirrors the instance along the Y axis.

If the master cell is a parameterized cell, fields for one or more parameters appear at the bottom of the form after you type the cell name and press Tab. You can change the layout of the cell instance by changing values for the parameters.



Placing a Cell Instance

To place a cell inside the current cellview,

  1. Choose Create - Instance.

    The Create Instance form appears.

  2. Fill in the Library, Cell, and View fields.

  3. Move the cursor into the cellview.

    An outline of the cell you want to place follows the cursor.

  4. Click where you want to place the instance.



Naming Instances

The layout editor automatically assigns names to instances, starting with I1 (Instance 1) and continuing with I2, I3, and so forth. If the instances are mosaics, the default names are M1, M2, and so forth.



Overriding Instance Names

To override the automatic naming of instances,

  1. Open the Create Instance form.

  2. Type one or more instance names into the Names field.

    Leave a space between each name.

  3. In the cellview, click to place each instance.

    The first name in the form is assigned to the first instance you place. The next name is assigned to the next instance you place, and so forth.

    Each time you place an instance, its name disappears from the Names list.

You can use the Display Options form to display instance names in the cellview.



Rotating and Mirroring Instances

To rotate instances as you place them,

      Click right.

Each time you click right, the instance or array rotates 90 degrees counterclockwise.

To mirror the instance,

      Press Shift and click right.

At the first click, the instance mirrors along the X axis.

At the second click, the instance mirrors along the Y axis.

To use the Create Instance form to rotate or mirror instances,

      Click Rotate, Sideways, or Upside Down.


Setting Magnification of Instances

To enlarge or reduce an instance as you place it,

      In the Create Instance form, type a value in the Magnification field.

The value is the factor by which the instance is enlarged or reduced. For example, 2 doubles the size of the instance, while 0.5 shrinks it to half its original size.



Placing an Array of Instances

You can use the Create Instance command to place many instances in an array (sometimes called a mosaic). The array is considered a single object in the database. It is assigned a single instance name, which is, by default, M1, M2, and so forth.

To place an array,

  1. Open the Create Instance form.

  2. In the Rows and Columns fields, type the number of rows and columns you want in the array.

  3. To change the spacing between the rows or columns, type values for Delta X or Delta Y.

    By default, the fields are set to the width and length of the original cell, so that the edges of each instance touch but do not overlap.

  1. Click in the cellview to place the array.




Creating Pins

The Create Pin command lets you create pins manually or place symbolic pins to connect this cellview to another cell in your design hierarchy.

There are two kinds of pins:

You can place a pin automatically or create a pin manually.

To create a pin manually,

  1. Choose Create - Pin.

  2. The Create Shape Pin form or the Create Symbolic Pin form opens. If the form that opens is not the one you want, click on shape pin or sym pin.

    You can specify which form will open by setting the environment variable pinsAreSymbolic. When set to t, the Create Symbolic Pin form opens; when nil, the Create Shape Pin form opens.

  3. In the Terminal Names field, type the terminal name (the name of the net to which this pin connects).

  4. Click on an I/O Type button to indicate the direction of the signal into or out of the pin.

  5. Do one of the following:



About the Create Shape Pin Form

To open the Create Shape Pin form,

      Do one of the following:

If the Create Symbolic Pin form appears, click on Mode - shape pin.



Create Shape Pin Form

Terminal Names assigns a name to this pin. Terminal names are used to identify the net to which this pin connects. You can create multiple pins by typing the terminal name for each pin and separating the names with spaces. If Keep First Name is off, one name is removed every time a pin is placed.

Keep First Name, when on, does not remove the first name in the Terminal Names field.

X Pitch sets the horizontal distance, in user units, between the center points of the pins. This field is editable when the terminal name represents a bus. For example, data <0:7>.

Y Pitch sets the vertical distance, in user units, between the center points of the pins. This field is editable when the terminal name represents a bus.

Mode specifies the shape of a manually created pin, turns on the automatic pin placement mode, or opens the Create Symbolic Pin form.

rectangle lets you create a rectangular pin.

dot lets you create a dot pin. You drag a rectangle to define the extent of the dot. Click twice on the same point for a zero-area dot pin.

polygon lets you create a polygon pin.

circle lets you create a circular pin.

auto pin automatically places a rectangular pin at the ends of a path.

sym pin closes this form and opens the Create Symbolic Pin form, which lets you create symbolic pins.

Display Pin Name attaches a label, showing the terminal name, to the pin.

Display Pin Name Option opens the Pin Name Display form, which lets you set the font, height, justification, and orientation of the pin name.

I/O Type assigns a property used by routers to identify the direction of the signal into or out of this cellview. The signal can be input, output, inputOutput (bidirectional), switch (carries data either in or out, but not simultaneously), or jumper (passes data through this cellview).

Snap Mode limits how the cursor snaps when you create a polygon pin.

anyAngle creates lines at any angle.

diagonal creates lines parallel to the X or Y axis or at a 45-degree angle to the axes.

orthogonal creates lines parallel to the X or Y axis.

L90XFirst creates orthogonal two-segment lines and creates the first line in the X direction.

L90YFirst creates orthogonal two-segment lines and creates the first line in the Y direction.

Access Direction assigns a property used to identify the part of the pin to which routers can connect routing.

As ROD Object creates the pin as a ROD object.

ROD Name lets you assign a name to the new shape pin in the current layout cellview if As ROD Object is on. The name must be unique in the cellview. If you do not edit this field, the system assigns a unique name consisting of the prefix rect, dot, or polygon, depending on the type of shape pin you are creating. The prefix is followed by a number. For example, the first ROD rectangle pin would be named rect0, the second, rect1, and so on.



About the Create Symbolic Pin Form

To open the Create Symbolic Pin form,

      Do one of the following:

If the Create Shape Pin form appears, click on Mode - sym pin.

Terminal Names assigns a name to this pin. Used by the layout editor, Layout Versus Schematic (LVS) program, and routers to identify the net to which this pin connects. You can create multiple pins by typing the terminal name for each pin and separating the names with spaces. If Keep First Name is not on, one name is removed every time a pin is placed.

Keep First Name does not remove the first name in the Terminal Names field.

X Pitch sets the horizontal distance, in user units, between the center points of the pins. This field is editable when the terminal name represents a bus. For example, data <0:7>.

Y Pitch sets the vertical distance, in user units, between the center points of the pins. This field is editable when the terminal name represents a bus.

Mode specifies whether you want manual or automatic pin placement mode or lets you open the Create Shape Pin form.

sym pin lets you change Pin Type, Pin Width, and Access Direction and manually place the pin.

auto pin lets you automatically place the pin on a path.

shape pin closes this form and opens the Create Shape Pin form.

Display Pin Name attaches a label to the pin, showing the terminal name.

Display Pin Name Option opens the Pin Name Display form, which lets you set the font, height, justification, and orientation of the pin name.

I/O Type assigns a property used by routers to identify the direction of the signal into or out of this cellview. The signal can be input, output, inputOutput (bidirectional), switch (carries data either in or out, but not simultaneously), or jumper (passes data through this cellview).

Pin Type sets the type for the pin.

Pin Width sets the width of the pin.

Pin Length sets the length of the pin.

Access Direction assigns a property used to identify the part of the pin to which routers can connect routing.



Creating Pins as ROD Objects

When you create a shape pin, you have the option of designating it as a relative object design (ROD) object. The ROD object contains information about the pin, including its name and database ID.

To create a ROD object, turn on As ROD Object in the Create Shape Pin form. The ROD Name field becomes editable, and you can either use the default database name or type another name. ROD names can have spaces in them. For example, rect 1a is a valid ROD name.

Only one ROD object can be created at a time. Even though you can type several pin names in the Terminal Names field, only one name can be typed in the ROD Name field. This means that after each pin is created, you must type in the next name.

Once the pins are created, you can edit them by typing ROD function commands in the CIW. These commands let you

See the Virtuoso Relative Object Design User Guide for information about ROD objects.

Using the rodAutoName Environment Variable

You can use the environment variable rodAutoName to set system default values in the Create Pin, Create Rectangle, and Create Polygon forms to

The following example sets the Create Rectangle, Create Pin, and Create Polygon forms to create shapes as ROD objects. In the Command Interpreter Window (CIW), type

envSetVal("layout" "rodAutoName" 'string "rectangle pin polygon")

To turn off As ROD Object in one or all of the forms listed in the rodAutoName variable, do one of the following:

For example, if you turn off As ROD Object in the Create Polygon form, the following is true for rodAutoName:

envGetVal("layout" "rodAutoName")
"rectangle pin"

You can also set the rodAutoName variable in your .cdsenv file, so the layout editor defaults to the options you want at startup. The syntax to use in your .cdsenv file is

layout rodAutoName string "rectangle pin polygon"


Placing a Pin on a Path Automatically

The layout editor can create a pin at the end of a path automatically. This feature works only on path ends parallel to the X or Y axis.

  1. In the Create Shape Pin form or the Create Symbolic Pin form, set Mode to auto pin.

  2. Click near the path end.

    The layout editor places a square pin at the end of the path nearest to the point you clicked. The pin width matches the width of the path and is placed on the same layer as the path.

When you place an auto pin, the layout editor automatically sets the access direction, no matter what setting appears in the form.



Creating Multiple Pins

Each pin you create needs a terminal name (the name of the net to which the pin connects). You can create several pins quickly by typing several terminal names.

  1. In the Create Shape Pin form or the Create Symbolic Pin form, type the terminal name for each pin you want to create, leaving a space between each name.

    The terminal name does not have to be unique. In the above example, vdd is used twice, to create two pins that connect to the vdd net.

  2. If you want to create a label of the terminal name, set Display Pin Name on.

  3. In the layout window, click to create or place the first pin.

    The first name in the Terminal Names field is assigned to this pin.

  4. If Display Pin Name is on, click to place the pin name.

  5. Continue creating or placing pins.

    Each pin is assigned the next name in the form.

You can apply net expression properties to pins.



Placing Pin Arrays

A pin array is one line of pins with a single origin. You might create such an array if you have many nets bundled together into a bus. The pins in the array are placed for every bit of the bus and are spaced according to the XPitch and YPitch coordinates.

To place a pin array,

  1. In either the Create Shape Pin form or the Create Symbolic Pin form, type the following in the Terminal Name field:

    baseName<x:x>

    where baseName = M and x:x = 0:2

For bus naming information, see the naming conventions section in Virtuoso Schematic Composer User Guide.

  1. In the XPitch and YPitch fields, type the pin location coordinates.

  1. Move the cursor into the cellview window and place the first pin where you want to start the array. The rest of the pins are automatically placed at the designated X and Y locations for every bit of the bus. They are measured from the center point of the previously placed pin.

You can apply net expression properties to pins in a pin array.

Examples of Pin Arrays with Different X and Y Pitch



Displaying Pin Names

To display the pin name,

  1. In the Create Shape Pin form or the Create Symbolic Pin form, set Display Pin Name on.

    Note:  Creating a pin with a label turns on the display of all pin labels.

  2. In the cellview window, click to create the pin.

    After you create the pin, you see an outline of the pin name.

  1. Double-click to place the pin name.

  2. Click on Display Pin Name Option and use the Pin Name Display form if you want to change the font characteristics.

Note:  If Pin Names in the Display Options form is not set on, none of the pin labels in the cellview are visible. To display all pin names at any time, set Pin Names on in the Display Options form.



Connecting Hierarchy with Pins

To indicate where and how the layout in a cell connects to another cell within a design hierarchy, you create a pin to do the following:




Pin Name Characteristics



About the Pin Name Display Form

The Pin Name Display form appears after you click Display Pin Name Options in the Create Shape Pin form or the Create Symbolic Pin form. The Display Pin Name Options command lets you set how pin names appear. The Layout Versus Schematic (LVS) program uses this name to identify objects on a net when comparing nets in a schematic against a layout.

Height sets the height of the name in user units (usually microns).

Font sets the text style of the name.

Text Options

Drafting prevents the label from being rotated more than 90 degrees.

Overbar determines how text strings containing underscore characters are displayed. See "Using the Overbar Option".

Layer sets the layer for the pin name.

Pin Layer puts the pin name on the same layer as the pin being created.

Justification sets the location of the name origin. The origin appears as a small square on the name when you place or select it.

Rotate turns the name 90 degrees counterclockwise.

Sideways mirrors the name along the X axis.

Note:  Drafting must be off for this button to work.

Upside Down mirrors the name along the Y axis.

Note:  Drafting must be off for this button to work.



Changing Pin Name Characteristics

To specify pin name characteristics,

  1. In the Create Shape Pin form or the Create Symbolic Pin form, set Display Pin Name on.

  2. Click Display Pin Name Options.

  3. Fill in the Pin Name Display form.

  4. In the cellview window, click to create the pin.

    After you create the pin, you see an outline of the pin name.

  1. Double-click to place the pin name.



Setting the Pin Name Layer

To set the pin name layer,

  1. In the Create Shape Pin form or the Create Symbolic Pin form, set Display Pin Name on.

  2. Click Display Pin Name Options.

  3. In the Pin Name Display form, do one of the following:

    • To choose a layer for the pin name, turn on the Layer button and choose a layer from the cyclic field.

    • To place the pin name on the same layer as the pin being created, set Pin Layer on.

  4. Click OK.




Creating Pins from Labels

The Create Pins From Labels command lets you create pins from text labels in your layout cellview. This command creates pins with terminal names matching labels on a specified text layer with pin dimensions that you specify, centered on the origin of your text label.

Pin names will differ from text labels if the text label contains a colon (:). When this occurs, the colon and trailing text are not part of the pin name. For example, given the text label VDD:P,28, the resulting pin name is simply VDD.

If a pin already exists for a text label you have selected, a new label will not be created for that text label. The pin and label are not attached to each other. If you move the pin, the label will not follow. To attach the label to the pin, use the Edit - Other - Attach/Detach command.



About the Create Pins From Labels Form

Creation Options control the scope of pin generation and which labels the system uses to create pins.

Labels Within:

Cellview creates pins only at the top-level cellview.

Selected Instances creates pins within the currently selected instances.

Labels:

All creates a pin for every label found in the current cellview or the selected instance.

Selected creates a pin for each label in the selected set.

Pin Mode:

Shape pin creates a pin shape pin

Sym pin creates a symbolic pin.

Labels Found shows the layers of the selected text labels. One layer appears for each layer of text labels selected. This field is not editable.

Pin Layer displays the available layers for pins to be created on. Choose the pin layer from the list of layers.

Width sets the width of the pins.

Length sets the length of the pins.

Ignore does not create pins for that layer.



Creating Pins From Labels

To create a pin from a label,

  1. Select the text labels you want the pins created for.

  1. Choose Create - Pins From Labels.

    The Create Pins From Labels form appears.

    One row of fields appears for each layer of labels you have selected.

  2. In the Create Pins From Labels form, turn on Labels Within: Cellview and Labels: Selected.

  1. In the Pin Layer cyclic field, choose the entry layers you want your pins created on. If you selected labels on more than one layer, choose the appropriate pin layer for each label layer from the list of layers.

  2. Type the width and length of your pin in the Width and Length fields.

  1. Click OK.

    The pins are placed in the center of the labels.




Creating Contacts

The Create Contact command lets you connect objects on two different layers within this cellview.



About the Create Contact Form

Auto Contact automatically places a contact on the intersection of two paths.

Contact Type selects the contact from the technology file and controls the layers on which the contact is entered.

Justification sets the origin of a contact array.

Width and Length set the width and length of the contact or via cut, in user units (typically microns).

Rows and Columns set the number of rows or the number of columns of contact cuts in a contact array. The default values for Rows and Columns are set in the technology file.

Delta X sets the horizontal distance, in user units, between the center points of the contacts when Rows is set to greater than 1.

Delta Y sets the vertical distance, in user units, between the center points of the contacts when Columns is set to greater than 1.

Rotate turns the contact 90 degrees counterclockwise. You can also click right to rotate the contact.

Sideways mirrors the contact along the X axis.

Upside Down mirrors the contact along the Y axis. You can also press Shift and click right to mirror the contact.



About the Create Contact Form for cdsVia:

Auto Contact automatically places a contact on the intersection of two paths.

Contact Type selects the contact from the technology file and controls the layers on which the contact is entered.

Justification sets the origin of a contact array.

Width and Length set the width and length of the contact or via cut, in user units (typically microns).

Rows and Columns set the number of rows or the number of columns of contact cuts in a contact array. The default values for Rows and Columns are set in the technology file.

Cut Spacing X sets the distance between the horizontal edge to edge cuts in a contact.

Cut Spacing Y sets the distance between the vertical edge to edge cuts in a contact.

Layer 1 Enclosure sets the vertical distance from the cut edge to the enclosure edge for the contact on the layer designated layer 1 (bottom routing layer).

Layer 2 Enclosure sets the vertical distance from the cut edge to the enclosure edge for the contact on the layer designated layer 2 (top routing layer of a two layer via).

Layer 1 Direction sets the via layer direction for the contact on the layer designated layer 1 (bottom routing layer).

Layer 2 Direction sets the via layer direction for the contact on the layer designated layer 2 (top routing layer of a two layer via).

stacked Vias specifies whether vias are stackable or not.

Rotate turns the contact 90 degrees counterclockwise. You can also click right to rotate the contact.

Sideways mirrors the contact along the X axis.

Upside Down mirrors the contact along the Y axis. You can also press Shift and click right to mirror the contact.



Placing a Contact

Contacts are special cells identified in your technology file that connect two layers inside a cellview.

To place a contact,

  1. Choose Create - Contact.

    The Create Contact form appears.

  2. In the Contact Type cyclic field, choose the contact you want.

  1. Click to place the contact.

You can create your own contacts and have them appear in the Contact Type cyclic field by adding them to the technology file. You must use either the syEnhContact or syContact device class when defining and declaring your custom contacts. The class and formal parameters must be the same name as that used for creating a symContactDevice device class. Parameters can be added, but the names of existing parameters must not be changed. Use the following syntax to define your custom contact:

your_install_dir/tools/dfII/samples/techfile/syEnhContact.tf

Contacts created in either syEnhContact or syContact device classes also appear in the Device Class and Device Type fields in the Create Device form and in the Change To Layer field of the Create Path form.

For information about how to edit the technology file and add your customized contacts, read about defining devices in the Technology File and Display Resource File User Guide.



Placing an Array of Contacts

An array of contacts is a group of contacts with a single origin. You might create such an array to connect two wide paths or to create part of a large transistor.

To place an array of contacts,

  1. Type the number of rows and columns in the Create Contact form.

  2. Type in new values for Delta X and Delta Y if you want to change the spacing between the center of each contact cut.

  1. Choose a new Justification setting to change the array origin.

  2. Click where you want to place the contact array.



Automatically Placing a Contact on Two Paths

You can automatically place a contact at the intersection of two paths. Each path segment must be horizontal or vertical. The segments may be same direction or orthogonal. When you place contacts with Auto Contact on, the contact origin snaps to the center of the overlap of the paths no matter what the Snap Spacing settings are in the Display Options form.

  1. In the Create Contact form, set Auto Contact on.

    The form changes so that only the Auto Contact field appears.

  1. Click on two intersecting path segments.

If the contact you place is defined in your technology file for the two intersecting path layers, an appropriate contact is placed on the intersection. If the contact is not defined for the two intersecting path layers, the system gives a warning beep, which indicates the contact was not placed, and you must do either of the following:

Note:  You can also use the Create Path command to place contacts between path segments on different layers by path stitching.




Creating Devices

The Create Device command lets you place a symbolic device. A symbolic device is an instance of a parameterized cell that has been defined in the technology file.



About the Create Device Form

Device Class sets the overall device group. The classes that appear in this field are defined in the technology file.

Device Type sets the specific device type. The types that appear in this field are defined for the selected device class in the technology file. These are usually the contact or pin names.

Names sets the instance name assigned to this device. You can enter any name here or let the layout editor automatically assign instance names that begin with the letter I, followed by a number. You can enter multiple names (separated by a space) to place several devices of the same cell.

Rows and Columns set the number of rows and columns in an array of devices.

Delta X and Delta Y set the spacing between rows and columns in an array of devices.

Magnif(ication) enlarges or reduces the size of the device.

Rotate turns the device 90 degrees counterclockwise.

Sideways mirrors the device along the X axis.

Upside Down mirrors the device along the Y axis.

Parameters If the master cell is a parameterized cell, displays fields for one or more parameters at the bottom of the form after you select the device class. You can change the layout of the device by changing values for the parameters.



Placing a Device

To place a device inside the current cellview,

  1. Choose Create - Device.

    The Create Device form appears.

  2. In the Device Class cyclic field, choose the device you want.

  3. In the Device Type cyclic field, choose the type you want.

  4. Move the cursor into the cellview.

    An outline of the device you want to place follows the cursor.

  5. Click where you want to place the device.



Naming Device Instances

The layout editor automatically assigns names to device instances, starting with I1 (Instance 1) and continuing with I2, I3, and so forth.



Overriding Device Names

To override the automatic naming of devices,

  1. Open the Create Device form.

  2. Type one or more instance names into the Names field.

    Leave a space between each name.

  3. In the cellview, click to place each device.

    The first name in the form is assigned to the first instance you place. The next name is assigned to the next instance you place, and so forth.

    Each time you place an instance, its name disappears from the Names list.

You can use the Display Options form to display instance names in the cellview.



Rotating or Mirroring Devices

To rotate or mirror devices,

      Click right.

Each time you click right, the device or array rotates 90 degrees.

To mirror the instance,

      Press Shift and click right.

At the first click, the instance mirrors along the X axis.

At the second click, the instance mirrors along the Y axis.

To use the Create Device form to rotate or mirror instances,

      Click Rotate, Sideways, or Upside Down.


Setting Magnification of Devices

To enlarge or reduce a device as you place it,

  1. Open the Create Device form.

  2. Type a value in the Magnification field.

The value is the factor by which the device is enlarged or reduced. For example, 2 doubles the size of the device, while 0.5 shrinks it to half its original size.



Placing an Array of Devices

You can use the Create Device command to place many devices in an array (sometimes called a mosaic). The array is considered a single object in the database. It is assigned a single device name.

  1. Open the Create Device form.

  2. In the Rows and Columns fields, type the number of rows and columns you want in the array.

  3. Type values for Delta X or Delta Y to change the spacing between the rows or columns.

    By default, the fields are set to the width and length of the original device, so that the edges of each device touch but do not overlap.

  1. Click in the cellview to place the array.




Creating Conics

You use the Create Conics command to create different types of round objects.



Creating Circles

To create a circle,

  1. Click on the entry layer you want in the LSW.

  2. Choose Create - Conics - Circle.

  3. Click where you want the center of the circle.

  4. Click where you want the edge of the circle.



Creating Donuts

To create a donut,

  1. Click on the entry layer you want in the LSW.

  2. Choose Create - Conics - Donut.

  3. Click where you want the center of the donut.

  4. Click where you want the inner edge of the donut.

  5. Click where you want the outer edge of the donut.



Creating Ellipses

You create an ellipse by creating a rectangle that surrounds the ellipse.

To create an ellipse,

  1. In the LSW, click on the entry layer you want.

  2. Choose Create - Conics - Ellipse.

  3. Click where you want the first corner of the rectangle.

  4. Click where you want the opposite corner of the rectangle.



Converting Conics to Polygons

Circles, donuts, and ellipses are stored in the database as true conics with centerpoints and radii. You might need to convert conics to polygons before streaming out your database for chip production.

To convert a conic to a polygon,

  1. Choose Edit - Other - Convert To Polygon.

  2. Click on the conic you want to convert.

    The conic is redrawn as a polygon, using many straight-line segments to create each curve.

  3. Continue clicking on each conic you want to convert.

  4. Press Escape to stop the command.

Note:  You can change the number of polygon segments used to create the converted conics by setting the Conic Sides field in the Layout Editor Options form. The default number of segments is 20.



Setting Conic Sides

You can set the number of segments used when recreating conics when you convert them to polygons. The minimum number of conic sides is 3, and the maximum number of conic sides is 2,047.

To set the number of conic sides,

  1. Choose Options - Layout Editor [Shift-e].

    The Layout Editor Options form appears.

  2. In the Conic Sides field, type a value.

  1. Click OK.




Changing Objects on a Layer

The Layer Generation command lets you perform Boolean edits on layers, including resizing and merging objects on a layer. Layer Generation edits copies of the objects; the original objects are unchanged.



About the Layer Generation Form

To open the Layer Generation form,

      Choose Create - Layer Generation.

Input Layers (the first and third fields) sets the layer or layers you want to modify with Layer Generation.

Boolean Operators (second field) combines the selected objects on the input layers.

GROW BY redraws the Layer Generation form so you can enter a resizing value. Enter the number of user units (resizing value) by which to enlarge selected objects on the input layer in the field to the right.

Output Layer (fourth field) sets the layer on which the new shapes will appear.



Making Changes to Objects on Layers

To enlarge copies of selected objects,

  1. Select the objects you want to resize.

  2. Choose Create - Layer Generation.

  3. Fill out the Layer Generation form as shown below.

  4. Click OK.

    Copies of the selected objects are enlarged.



How Sizing Converts Objects to Polygons

When you resize an object such as a path by using Size, the object is converted to a polygon. When you use Layer Generation, the original path remains and the new object on the new layer is converted to a rectangle or a polygon.

For example, if you enlarge a path with Size, the resulting object is a polygon.



Making Boolean Edits by Layer

You can perform Boolean logical operations on objects on one or two layers. You edit copies of the objects, so the originals are unchanged.

  1. Select the objects you want to edit.

  2. Choose Create - Layer Generation.

    The Layer Generation form appears.

  3. Choose the layers you want to edit and the Boolean operator you want to use.

  4. Click OK.

    The following figure shows the results of different Boolean operations.




About the Tap Form

TapTypes the types of information you can tap.

Layer sets the entry layer.

You can have the layer tap command behave in one of two ways by setting the environment variable layerTapCycle to either t or nil.

Net captures net names from rectangles, polygons, and paths. You can capture the net names to automatically insert the net names in the Propagate Nets form when applying connectivity to a via,

Attributes captures attributes from paths and microwave objects.

Path attributes you capture the beginning and ending extension in user units, the path end type, and the path width

Trls, bends and tapers attributes you capture are the bend factor (maximum width before they are chamfered), taper style (linear or exponential), number of points to taper in user units, the bend style (bend chamfer or radial), the width of a chamfered bend in a transmission line as a multiple of its standard width in user units, the number of segments in a radial bend in a transmission line as a function of the number of segments in a 180-degree radial bend, the radius of a radial bend in a transmission line as a multiple of the transmission-line width in user units, the width of the first end of a transmission line bend in user units, the width of the second end of a transmission line bend, and the width of the second end of a transmission line bend in user units.




Using the Tap Command

The Tap command supports the capturing of information; layer, net name, and object attributes. Rectangles, polygons, and paths can be tapped. Vias and routes are not accessible to the Tap command.

To use the Tap command, follow these steps.

  1. Choose Create - Tap.

    The Tap form appears. (If not, press F3 to display the form)

  2. Select the Tap Type.

    Tap Types are the types of information you want to obtain from an existing path and apply to subsequent new paths.

  3. Click on a path which contains connectivity you want to apply to the path you are creating.

  4. Choose Create - Path.

    The Create - Path form is populated with the information obtained from the original object and applied to the path you are creating.


Return to top of page

View Library View Table Of Contents View Previous Chapter in Book View Next Chapter in Book Open PDF to print book Search Cadence Library Email Comments Help Using Documentation Shut Down Cadence Documentation Server


For support, see http://www.cadence.com/support or try Cadence's SourceLink service.

Copyright © 2003, Cadence Design Systems, Inc.
All rights reserved.
Legal notices and trademark attributions