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

Running Step Pins Form

Use the Running step Pins form to derive pins from the text labels in the layout view and place the locations at the text origins.

This form contains the following tabs.

Tab Description

Map Tab

Specifies the text labels to be used for creating starting pin shapes for each of the nets to be extracted. You can also specify the pins that are power, ground, clock, analog, or output pins.

Text Tab

Allows you to change the name of the pins created in the Pins view from the original value in the layout. For example, the expression “\\.extra.*” would create a pin of VDD from a text label of VDD.extra1. by specifying the appropriate rule on the Text tab.

Boundary Tab

Controls the calculation of the place-and-route (PR) boundary, which defines the size of a single cell or block. In addition to specifying whether or not the PR boundary is to be created, you can specify the layers to be used for calculating the PR boundary and the details for adjusting or fixing the size of the calculated boundary.

Blocks Tab

Allows you to use the options on the tab with any layout view that has existing routing. Typically, these will be routed blocks imported from DEF.

Map Tab

The following table describes the fields available on the Map tab of the Running step Pins form:

Field Description

Map text labels to pins

Specifies the text labels in the layout view that are to be mapped to the pins on nets in the pins view. This field is case-sensitive.

The syntax is as follows:

(textLPP1 geomLPP1 geomLPP2)
(textLPP2 geomLPP3 geomLPP4)

where,

  • The syntax of textLPP is either (textLayer textPurpose) or textLayer.
  • The syntax of geomLPP is either (geomLayer geomPurpose) or geomLayer.

If you specify only a layer name instead of a layer-purpose pair, Abstract Generator considers all the purposes on that layer excluding the ones specified in the Ignored Purpose(s) field on the General tab (File – General Options).

Power pin names, Ground pin names, Clock pin names,

Analog pin names

Specifies the pin names in the Power pin names, Ground pin names, Clock pin names, Analog pin names, and Output pin names fields. Abstract Generator identifies the respective pin names based on the label strings in the abstract.

Exclude existing terminals

Specifies a list of existing terminals that you want Abstract Generator to ignore. You can specify the terminal names in the form of regular expressions and separate the terminal names in the list by using blank spaces. To ignore all the terminal names, type .*. By default, this field is empty.

Abstract Generator removes the specified terminals. In addition, Abstract Generator creates the deleted terminals afresh from the equivalent text labels existing in the layout. Abstract Generator issues the warning message ABS-12002 if a deleted terminal is not created from a text label existing in the layout. The new terminal created by Abstract Generator does not inherit any attributes or properties from the equivalent deleted terminal.

Alternatively, you can use the ExcludeExistingTerminals option to ignore the terminals.

absSetBinOption("Core" "ExcludeExistingTerminals" "Y")

Replace Y with the terminal names you want to ignore.

Exclude existing pins on layers

Specifies a list of layers on which you want Abstract Generator to ignore the existing pins. You can specify the layer names as a list by separating the individual layer names using blank spaces.

Abstract Generator will remove all the pins on the specified layers. If Abstract Generator comes across terminals that do not have any pins, it will issue the warning message ABS-12027 and remove those terminals. Next, Abstract Generator will recreate the deleted pins and any of the deleted terminals afresh from the equivalent text labels existing in the layout.

The new pins (and terminals) created by Abstract Generator will not inherit any attributes or properties from the equivalent deleted pins.

By default, the Exclude existing pins on layers field is blank.

Specify the top metal layer for cover blockage

Lets you create cover blockages. The cover blockages that are annotated to the layout view are in the form of properties or extensions, and they are not visible as normal blockages in the layout view.

See Layout Dual View Support.

Text Tab

The following table describes the fields available on the Text tab of the Running step Pins form.

Field Description

Label search depth

Controls how far down the design hierarchy does Abstract Generator search for text labels during text-to-pin mapping. The default value is 0. This means that Abstract Generator only looks at text labels in the top level of the hierarchy and so only those labels could be used to create starting pin shapes for the extractor.

Sometimes, the layout can be created with labels deeper in the hierarchy. If this is the case, you can change this setting accordingly. It is, however, recommended that you do not change this value unless absolutely necessary. There are often many labels at lower hierarchy levels that are not intended to become pins in the top level of the abstract.

Geometry search depth

Controls how far down the design hierarchy does Abstract Generator search for metal underneath a text label. The default value is 20.

However, if you know that the metal shapes that you want to map to are located at the top of the hierarchy, you can set the option appropriately. This should speed up processing time in the Pins step because only top level shapes will be stored in the geometry cache.

Text Manipulation

This section ensures that the pin names created during the Pins step match the logical pin names. Text labels often include special text at the end of the label that is not required for pin naming. The function uses regular expressions to locate unnecessary text in labels and either removes it completely or replaces it with the text you require.

Remove Text

Lets you specify a regular expression representing the pin label text that you are searching.

  • \\.extra.*

Specifies that “.extra.” followed by any other character(s) (represented by *) is to be removed. For example, VDD.extra1, VDD.extra2... VDD.extra20, and so on are all converted to VDD if the Replace With field is left blank.

  • :.

Specifies that “:.” followed by any other character(s) is to be removed. For example, VDD:P and VDD:Fred are both converted to VDD if the Replace With field is left blank.

  • \(([0-9]+)\)and \[([0-9]+)\]

Specifies that the characters ( and [ are to be converted to < and the characters ) and ] are to be converted to >.

The Replace With field displays <\1> in both cases, where \1 indicates that the Replace With text is the first expression matched in parentheses.

Replace With

Contains the replacement text for the Remove Text option. The replacement regular expression text is applied to all matching instances.

Add

Adds a new row to the table.

Remove

Deletes the selected rows from the table.

Preserve text labels

Retains all existing pins in the layout, along with their labels, irrespective of whether the pins were created by Abstract Generator during the Abstract step. This option is selected by default. Alternatively, you can use the PinsTextPreserveLabels option to preserve pins and their labels.

absSetBinOption("Core" "PinsTextPreserveLabels""true")

Ensure that the layer of the text label is included in PinsTextPinMap. See Pin Annotation.

Restrict Pins to PR Boundary

Controls the geometry of N-Well pins created during the abstract generation process. If selected, the size of N-Well pins is restricted to the PR boundary.

See N-Well and P-Well Pins Creation.

Boundary Tab

The following table describes the fields available on the Boundary tab of the Running Step Pins form.

Field Description

Create boundary

Lets You create a PR boundary by choosing one of the values from always, as needed, and off. The new boundary is created as an OA prBoundary object. When checking for the existence of a PR boundary, Abstract Generator looks for a PR boundary object. If the PR boundary object is not found, then Abstract Generator searches for the shapes on layer prBoundary and purpose boundary.

  • always: Specifies that Abstract Generator creates a PR boundary after deleting any already existing PR boundary. Abstract Generator first looks for PR boundary object, deletes it, and then creates the new PR boundary object.
  • as needed: Specifies that Abstract Generator first checks whether a PR boundary exists. It creates a PR boundary only if no PR boundary already exists, for which it searches for PR boundary object in layout. Abstract Generator creates a rectangular PR boundary in the case of both always and as needed options. To obtain a rectilinear PR boundary, you can use the PinsCreatePolyPRB option. See Abstract Generator SKILL Functions.
  • off: Specifies that Abstract Generator never creates a PR boundary, though it checks whether or not a PR boundary exists and reports an error if there is no PR boundary in the layout unless the Fix Boundary To options are specified.

Using geometry on layers

Lets you specify the layers to be used to calculate the PR boundary. The boundary is drawn so that it encloses all the geometry found on these layers.

For example, metal1 (metal2 drawing)

This specifies all geometry on metal1 all purposes except the ignored purposes and on metal2 purpose drawing to be considered for PR boundary calculation.

Adjust Boundary By

Lets you increase or decrease the size of an existing or calculated PR boundary on one or more sides. To do this, specify the distance to be added to each boundary edge.

For example, if you specify a positive number for the Left edge, the left boundary will be moved further to the left by that amount, that is, the lower left coordinate of the boundary will be decreased.

Fix Boundary To

Lets you fix individual cell boundary edges to an absolute value. These values are applied to existing and calculated PR boundaries.

For example, you have two cells in a bin one of which already has a boundary and the other does not. If you set the Create boundary option to as needed and specify -15 in the Bottom field of the Fix Boundary To section, Abstract Generator will automatically calculate the boundary for the other cell and set the lower edge of both cells to -15 μ.

Blocks Tab

The following table describes the fields available on the Blocks tab of the Running Step Pins form.

Field Description

Preserve local blockages in routed blocks

Controls how Abstract Generator processes local blockages defined in the BLOCKAGE section in DEF 5.8. Local blockages do not have the +PUSHDOWN, +FILL, or +SLOT modifiers.

  • When unchecked, Abstract Generator removes any local blockages and proceeds as if they had never been specified in the DEF file.
  • When checked, Abstract Generator preserves the local blockages along with their attributes for all the layers. The blockages along with their attributes are preserved from level 0 to level 32. The preserved layout blockages exists in the abstract view along with the other blockages generated in the abstract step.
    The layout blockages are not merged with the blockages generated in the abstract step and are separately maintained. This is done to enhance the performance.

Create power pins from routing

Controls whether pins are created from the routing defined in the SPECIALNETS section of the DEF file.

When unchecked, Abstract Generator creates pins only from the pin geometry defined in the PINS section of the DEF file. If there is no pin geometry, the routing is turned into pins instead.

Using geometry on layers

Creates pins from the routing defined in the SPECIALNETS section for the layers specified in the Using geometry on layers field when Create power pins from routing is checked. It does this even if there are pins already defined in the PINS section.

When creating pins, Abstract Generator ignores FILLWIRE and SHIELD net segments. It also creates pins in instances that are logically connected to the top-level nets.

Related Topics

Specifying Pin Mappings for Abstract Generation

Customizing Text Labels for Abstract Generation

Setting PR Boundary Creation Options in Standalone Abstract Generation

Customizing Abstracts of Routed Blocks in Standalone Abstract Generator


Return to top
 ⠀
X