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

5


Creating Symbols

You can quickly create a new symbol by importing (copying) an existing symbol into the symbol editor window and then modifying the imported symbol. If you cannot use an existing symbol—for example, if your schematic requires an electrical or logical function that does not have a corresponding symbol in a Cadence® design library—you either need to create your own symbol using the symbol editor or generate one.

This chapter describes the following topics:

Setting Grid Options

Before you create a symbol, you might want to set the grids in the symbol window to assist you in drawing. If you want to create shapes that are smaller than what the current snap spacing allows, choose a smaller snap spacing.

To set grid options,

  1. From the view, choose Options – Display.
    The Display Options form appears.
  2. Set the grid controls according to your specifications.
  3. Click OK.

Importing Symbols

You can import (copy) an existing symbol into the symbol window. You can then modify the imported symbol and create a new symbol cellview.

To import an existing symbol,

  1. From the symbol window, choose Create – Import Symbol.
    The Import Symbol form appears.
  2. Specify the symbol (in the Library Name, Cell Name, and View Name fields) you want to copy into the symbol design window.
  3. Move the pointer into your design and click to place the symbol.
    You can now edit the symbol to create a new symbol.

Creating New Symbols

On occasion, your design might require an electrical function that does not have a corresponding symbol in an existing library. In such situations, you need to create your own symbol. This section describes how to create your own symbol using the symbol editor.

You create a symbol by assembling elements in your design such as

For information on the Create toolbar, used as a shortcut to create lines, pins, notes, and so on, see Quick Reference - Toolbars.

Drawing Lines

To draw lines for a symbol,

  1. From the symbol window, choose Create – Shape – Line (or select Create Line from the Create toolbar).
    The Add Symbol Shape form is displayed. If the form does not appear, press F3.
  2. Select line.
  3. Set the options to your specifications.
  4. Move the pointer into your design window.
    The following example shows a line being added to a triangle shape.

Drawing Rectangles

To draw a rectangle,

  1. From the symbol window, choose Create – Shape – Rectangle (or select Create Rectangle from the Create toolbar).
    The Add Symbol Shape form is displayed. If the form does not appear, press F3.
  2. Select rectangle.
  3. Set the options to your specifications.
  4. Move the pointer into your design window and click to enter the first corner of the rectangle.
  5. Click the opposite corner.

Drawing Polygons

To draw a polygon,

  1. From the symbol window, choose Create – Shape – Polygon (or select Create Polygon from the Create toolbar).
    The Add Symbol Shape form is displayed. If the form does not appear, press F3.
  2. Select Polygon.
  3. Set the options to your specifications.
  4. Move the pointer into your design window and draw the segments that form a polygon symbol by clicking on each point.

Drawing Circles

To draw a circle,

  1. From the symbol window, choose Create – Shape – Circle (or select Create Circle from the Create toolbar).
    The Add Symbol Shape form is displayed. If the form does not appear, press F3.
  2. Select circle.
  3. Set the options to your specifications.
  4. Move the pointer into your design window, and click to specify the center of the circle.
  5. Move the cursor away from the center point, and click to specify the distance of the radius and complete the circle.

Drawing Ellipses

To draw an ellipse,

  1. From the symbol window, choose Create – Shape – Ellipse (or select Create Ellipse from the Create toolbar).
    The Add Symbol Shape form is displayed. If the form does not appear, press F3.
  2. Select ellipse.
  3. Set the options to your specifications.
  4. Move the pointer into your design window and click one point to begin creation of the ellipse.
  5. Click the second point to complete the ellipse.

Drawing Arcs

To draw an arc,

  1. From the symbol window, choose Create – Shape – Arc (or select Create Arc from the Create toolbar).
    The Add Symbol Shape form is displayed. If the form does not appear, press F3.
  2. Select arc.
  3. Move the pointer into your design window and specify three points to create an arc.

Adding Pins as Graphic Images

By default, the symbol pin that you create using the Create – Pin command in the symbol editor is a graphic image of a symbol master.

To add a symbol pin,

  1. From the symbol window, choose Create – Pin.
    The Create Pin – Symbol form appears.
  2. In the Pin Names field, type the pin names.
    Use a space to separate each name.
  3. In the Direction cyclic field, choose the pin direction.
  4. In the Type cyclic field, choose the pin type.
  5. Specify the Label Offset value (in user units) and the Label Location.
  6. Optionally, click the Show Sensitivity >> button at the bottom of the form to expand the form to reveal three additional field options: Attach Sensitivity, Sensitive To Power Terminal, and Sensitive To Ground Terminal.
    For more information on sensitivity options see Create Pin – Symbol.
  7. Move the pointer into the cellview and click to place the first pin.
    The following example shows how an input pin with a pin name of A appears after you click your mouse in the design.
  8. Change the Direction cyclic field, if necessary, before placing a subsequent pin.
  9. Move the pointer into the design window and click to place pin Y.
    The following example assumes you changed the pin direction.

Adding Pins as Instances

When you add symbol pins as instances, any changes you make to the graphics of the symbol pin master are reflected in all the pin instances that were previously added from the symbol pin master.

To turn on the option for adding symbol pins as instances,

  1. From the view, choose Options – Editor.
    The Editor Options form appears.
  2. In the Commands tab, turn on the Add Symbol Pins as Instances option.
  3. Click OK.
  4. Refer to Adding Pins as Graphic Images to create a symbol pin.

Creating Custom Pins as Graphic Images

You can use the Create – Custom Pin command to create your own graphic images (polygons) for the pins you want to place in your design.

To create and place a new custom pin,

  1. From the symbol window, choose Create – Custom Pin.
    The Add Custom Pin form appears.
  2. In the Pin Names field, type the name of the custom pin.
  3. In the Direction cyclic field, choose the pin direction.
  4. In your design window, click the first point and each subsequent point of the polygon shape that you want to create.
  5. Double-click the last point to close the polygon.
    The pin color is filled in and you are prompted to use the Edit Object Properties form to display the pin name. By default, the pin names are not visible.
  6. Press the Esc key.

Making the Custom Pin Name Visible

To make the custom pin name visible or to edit other custom pin properties,

  1. From the symbol window, choose Edit – Properties – Objects.
    The Edit Object Properties form appears.
  2. In the design window, click the custom pin.
    The Value field displays the name you gave to your custom pin.
  3. Set the Display cyclic field to value.
  4. Click OK.

Adding a Selection Box

A symbol selection box defines the area of the symbol that you can use when selecting an instance of that symbol from the schematic window (it is also used in pre-selection).

To create a selection box,

  1. From the symbol window, choose Create – Selection Box.
    The Add Selection Box form appears.
  2. Draw a selection box manually, or click Automatic.
    • To draw the selection box manually, click the first corner of the rectangle, then move the cursor to the opposite corner and click.
    • To draw the box automatically, click Automatic. The software generates a selection box that encloses all symbol pins and symbol shapes.
      You can use the Stretch command to adjust the box shape.

Adding Labels

Symbol labels display assorted textual information. You can add one of three types of labels to your symbol:

  1. Normal labels, which have fixed text
    This type of label is used to identify the device and pins.
  2. NLP labels, which have expressions that the Virtuoso® Schematic Editor evaluates to determine the value
    When you place an instance in your schematic, the system evaluates the NLP expression and displays the resulting value. For example, the system displays the NLP label [@instanceName] in the symbol window but displays a value—for example, I3—in the schematic window.
  3. IL labels, which have expressions that are evaluated by the SKILL language to determine the value
    When you place an instance in your schematic, the system evaluates the SKILL expression and displays the resulting value. For example, the system displays the IL label ilInst~>name in the symbol window, but displays a value—for example, I3—in the schematic window.

Adding a Normal Label

To add a normal label,

  1. From the symbol window, choose Create – Label.
    The Add Symbol Label form appears.
  2. In the Label field, type the name of your symbol.
  3. In the Label Choice cyclic field, choose logical label.
  4. In the Label Type field, click normalLabel.
  5. Move the pointer into your design window.
    The normalLabel expression is attached to the pointer.
  6. Click to place the label.
    When you place an instance of the symbol in your design, the schematic editor displays the label text. To force an evaluation of the SKILL expression or function and display the results, use the View – Redraw command.

Adding an NLP Label

To add an NLP label,

  1. From the symbol window, choose Create – Label.
    The Add Symbol Label form appears.
  2. In the Label field, do one of the following:
    • Accept the default, [@instanceName]
    • Enter your own expression.
  3. In the Label Type field, click NLPLabel.
    The label choice affects the color of the label.
  4. Move the pointer into your design window.
    The NLPLabel expression is attached to the pointer.
  5. Click to place the label next to the symbol.
    When you place an instance of a symbol in a schematic cellview, the schematic editor interprets the [@instanceName] label and displays the current value of the property. To force an evaluation of the SKILL expression or function and display the results, use the View – Redraw command.
    The schematic editor evaluates NLP labels using netlisting rules.

Example – Syntax for an NLP Label Expression Containing One Property

[@propertyName : displayFormat1 [: displayFormat2 ] ]

In the example, displayFormat1 is used when a specified property exists, and displayFormat2 (optional) is used when a specified property cannot be located.

If displayFormat2 is not defined and the property does not exist, the NLP label is not displayed.

The rules table below and the examples that follow the table show how NLP label expressions are interpreted.

Syntax Expression Definition

[ ]

Delimits the property substitution expression. Text outside square brackets remains unevaluated.

@

Specifies the beginning of a property substitution expression, as [@instanceName].

propertyName

Specifies the property name.

:

Separates the property name from the display format string. For example, in [@w:w=%], the colon separates the property name (w) from the expression (w=%).

%

A placeholder in the format string for the current value of propertyName.

\ plus a reserved character

Lets you include one of the above reserved characters as a text character in your label.

\n

Generates a carriage return.

\t

Generates a tab.

\nnn

Substitutes an ASCII character defined by octal nnn.

Examples – Evaluating NLP Label Expressions

If the current value of a named property is defined, the schematic editor substitutes the defined value for the percent character (%) in the NLPLabel expression when you place the instance in the design.

If the schematic editor does not find a value for a property when you place an instance of a symbol, displayFormat2 is used instead.

A label expression represents the current value of a property.

Adding an IL Label

To display the value of an instance property, you can add an IL label using a Cadence® SKILL language expression that can be evaluated by the SKILL language.

To add an IL label,

  1. From the symbol window, choose Create – Label.
    The default [@instanceName] label is attached to the cursor.
    The Add Symbol Label form appears.
  2. In the Label field, type a SKILL expression or function, with the form
    ilInst~>master~>libName
    ilInst is a SKILL variable used to provide self-reference to an instance during graphic display of the cellview containing the instance. Note also the SKILL variable ilInstPath, which works like ilInst, but is evaluated for the instances at all display levels. You should use ilInstPath, rather than ilInst, when instantiating schematics in schematics.
  3. Set the Label Choice cyclic field to instance label.
  4. In the Label Type field, click ILLabel.
  5. Move the pointer into your cellview and click to place the IL label.
    • Example 1 – SKILL code

    ilInst~>cellView~>fileTimeStamp
    The SKILL code displays a time stamp; for example,
    Jun 5 15:07:33 2000

Store Default of CDF Parameter

When Store Default is "Yes" for a CDF parameter of a cell, the parameter value is stored on instance of the cell when instance is created. Therefore, in this case the CDF parameter does have a default value but stored on instance. When Store Default is "No" for a CDF parameter of a cell, the parameter value is stored in Cell CDF, and not on instances of the cell in higher level schematics.

However, irrespective of the Store Default setting, if you modify paramater value on an instance, the parameter value is then stored on instance, even if the modified value is the default value.

Effect of Netlisting Mode on netSets

When the CDS_Netlisting_Mode is Analog, the property lookup includes lookup in database(OA) and CDF. For netSet properties set via CDF, the CDF property settings are used rather than those in the database.

Even if the CDF use callback’s expression evaluates to nil to specify that the parameter for a netSet is not available for display, the schematic editor  intentionally ignores this setting and uses the CDF property setting specified.

IL v. NLP labels

NLP labels are used to lookup properties using database properties (note that sometimes database lookup does include CDF lookup, for more information see Effect of Netlisting Mode On Labels). IL labels are used to lookup properties using CDF properties. For example, "cdsParam(1)" ILLabel will display the value of first CDF parameter setup in Interpreted labels section of CDF.

Effect of Netlisting Mode On Labels

The effect of netlisting mode on labels is as follows:

When CDS_Netlisting_Mode is “Analog”

Property lookup includes lookup in database(OA) as well as in CDF. Therefore, if your NLPLabel/ILLabel refers to a CDF parameter, it is displayed on the instance whether it has a default value or an overriding value on the instance.

When CDS_Netlisting_Mode is “Digital”

Property lookup does not include lookup in CDF. Therefore, if your NLPLabel/ILLabel refers to a CDF parameter, and the value of the CDF parameter is not stored on an instance, the labels are not displayed on the instance.

In your CIW you can change the netlist mode:

setShellEnvVar("CDS_Netlisting_Mode=Digital")
cdsSetNetlistMode()

or

setShellEnvVar("CDS_Netlisting_Mode=Analog")
cdsSetNetlistMode()

NLPLabels that Display Non-default Value of CDF Parameters

NLPLabels use only database properties for lookup, however, when netlisting mode is "Analog", database lookup includes CDF lookup, and hence NLPLabel can display the value of CDF parameters. But when netlisting mode is "Digital", any NLPLabels referring to CDF parameters will not display CDF parameter value. However, when a CDF parameter value is modified on an instance, the modified value is stored on the instance where NLPLabel lookup can find it. Similarly, if a CDF parameter has Store Default value as "YES", the parameters are always stored on the instance where NLPLabel lookup can find it.

So you can create an NLPLabel which refers to a CDF parameter, such that when netlisting mode is digital, the label will display only non-default values of the parameter on instances.

To set this:

  1. From the CIW, select Tools – CDF – Edit to display the Edit Component CDF form.
    For more information on this form see the CDF Commands chapter in the Component Description Format User Guide.
  2. Enter the Library Name.
  3. Enter the Cell Name.
  4. Set CDF Layer to Base.
  5. In the Component Parameters section of the form scroll to the parameter of interest.
  6. Once selected, set Store Default to no.
  7. Click Apply.
  8. Repeat steps 6-8 for all parameters that have defaults that you do not want displayed on the schematic.
    You may also have to delete the local properties on the instance:
  9. Select the instance in your schematic.
  10. In the CIW enter geQuerySelSet()
  11. Delete the local properties on your instance.
    Additionally you will need to correctly set up your NLPlabels on your symbols. For example, the label pl:[@pl:%:], should be set to [@pl:pl=%].
  12. Set CDS_Netlisting_Mode to "Digital" as explained above.
    Notice that NLPLabels on instances that have default values of CDF parameters disappear. If you modify CDF parameters on an instance now, the labels appear on that instance displaying the value of the parameter.

Adding Note Text and Note Shapes

You add note text and note shapes in the symbol window in the same way you add notes in the schematic window. Refer to Adding Note Text.

Adding a Net Expression Label

Select Create – Net Expression to add a net expression label in the symbol window in the same way you add a net expression label in the schematic window. Refer to Adding Net Expression Labels to Create an Inherited Connection.

Setting the Symbol Origin

The origin of a symbol is the (0,0) location within a symbol. When you place instances in a schematic, the symbol origin affects the position of the symbol graphics and pins relative to the instance placement point.

Changing the origin of a symbol moves instance pins within all schematics that use that symbol. This might affect the connectivity of the schematic because schematic wires do not automatically move to the new pin locations.

To set the origin of a symbol,

  1. From the symbol window, choose Edit – Origin.
  2. Point to a location for the new origin of the symbol.
    Pointing to the middle of the symbol moves the symbol graphic, repositioning the X=0, Y=0 origin point of the symbol to the new location.
    When you use this command, it might be helpful to turn on the display of the following:
  3. Choose View – Fit to view the enlarged symbol, if necessary.

Creating Symbol Cellviews Using Generators

A symbol cellview is an alternative view of the schematic cellview.


Return to top
 ⠀
X