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

Running Step Extract Form

Use the Running step Extract form to extract geometries on signal or power nets or to calculate process antenna information.

This form contains the following tabs.

Tab Description

Signal Tab

Allows you to view and modify the options for extracting signal nets. You can specify the layers through which you want Abstract Generator to extract, the layers on which pins are to be created, the limits of extraction, and the way in which must-join relationships are to be handled.

Power Tab

Allows you to view and modify the options for extracting power nets. You can specify the layers through which you want Abstract Generator to extract, the layers on which pins are to be created, and the limits of extraction.

Antenna Tab

Allows you create process antenna information for custom blocks and standard cells

General Tab

Allows you to use the existing connectivity information in your design to create nets, to specify the connectivity between layers, and to have a control over final pin geometry.

Signal Tab

The following table describes the fields available on the Signal tab of the Running Step Extract form.

Field Description

Extract signal nets

Runs connectivity extraction for signal nets. Therefore, when this option is turned on, Abstract Generator extracts all the pin shapes created during the Pins step. When the option is turned off, Abstract Generator copies the pin geometry generated in the Pins step but the pin shapes now have purpose net rather than purpose pin. This is the default while processing blocks.

Selecting the Extract signal nets option activates the Layer Assignment for Signal Extraction table on the Signal tab. In this table, you specify the layers through which you want Abstract Generator to extract.

If a pin-short is detected, Abstract Generator displays an error message detailing the cause of the problem. The error might occur as a result of either a bad layer, bad extraction option settings, or perhaps a short between “false” boundary purpose shapes and other real shapes.

Layer Assignment for Signal Extraction

This section lets you specify the geometry specification details in the respective layer assignment table. For example, you can restrict metal1 to be just metal1 purpose pin or you can specify metal1 to be equal to shapes only where metal1 purpose pin and metal1 purpose net overlap.

Layer

Lets you select from a list of all the layers specified in the technology file through which you want to extract signal or power nets or antenna data. Each row in this column provides a drop-down list of the layers in the technology file.

You can use this column to limit the extraction to shapes on a subset of all the layers. For example, if you want to prevent Abstract Generator from extracting through via layers, you can delete those layers from this list.

You can create pins corresponding to the layers specified in the Layers column.

Geometry Specification

Allows you to enter a layer-geometry specification for each layer included in the Layer column of the table that you want to use for extraction. For example, if you want to extract through diffusion layers you will usually want to pre-process the diffusion geometry by subtracting the polysilicon layer geometry first. You can achieve this by specifying the following geometry specification for the diffusion layer:

diff andnot polysilicon

The first entry in the expression is the layer name. The second entry is a more complex expression combining as many layer names and layer operators as required.

If you specify only a layer name instead of a layer-purpose pair in the Geometry Specification column, Abstract Generator considers all the purposes on that layer except the Ignored Purpose(s).

Use the G-Spec Builder Form to help you with the geometry specification. To access this form, place the cursor in the Geometry Specification field for the required layer and click the Edit button.

You can also use this column to specify more than just the list of layers to be extracted. Rather than listing just the layer name for each layer, you can enter an expression that is used to specify how the input geometry for the extraction of that layer is derived.

If you attempt to define two geometry specifications for the same layer, an error will be issued.

Connectivity

Lets you can specify the type of connectivity setting, Strong or Weak, for a particular layer. The connectivity setting is valid for a layer only if a geometry specification is provided for that layer.

When extracting signal nets, you can set certain layers as “weak” layers and instruct the extractor to extract through these as well. The shapes extracted from weak layers will be stored in the LEF file as weakly-connected.

The router handles strongly and weakly connected pins differently. Where a LEF PIN has two strongly-connected shapes, the router can connect to one of the shapes to form the connection to that pin, then continue routing from the other shape on the same pin without adversely affecting performance.

However, when the shapes are weakly-connected, it adversely affects the delay of the net. Weakly-connected shapes are written out to the LEF file in separate PORTS of the same LEF PIN. When a router encounters two weakly-connected shapes within a LEF PIN, it does not feedthrough from one shape onto the other; it routes to only one of the shapes. You would typically state that a layer has weak connectivity if it has high resistivity, as is the case with polysilicon layers.

Create Pins

Lets you select the layer on which you want pins to be created as a subset of the layers used in the extraction. This helps to determine the shapes found by the extractor that are converted into pins. By default, this option is active when a new layer is added to the table.

Add

Adds a new layer row to the table.

Edit

Opens the G-Spec Builder Form for the selected layer.

Delete

Deletes the selected layer rows. Check the box to the left of a row to mark it for deletion.

Extract Limitations

This section lets you speed up the extraction process by limiting how far from the starting shape and how far down the hierarchy should Abstract Generator search for pins.

Maximum depth

Lets you specify how far down the instance hierarchy should Abstract Generator search for shapes for extraction. The default value for this field is 32, which is the maximum depth of hierarchy levels in the database.

Limiting the hierarchy search depth is useful if you know the likely location of the shapes to be extracted. For example, if you know that all the geometry that needs to be converted into pins is at the top level (in a block most likely), you can set the value of the Maximum depth field to 0. This value will tell Abstract Generator to look for shapes only at the top level of the hierarchy and not search further, in turn, enhancing the speed of the Extract step. This might be the case with signal pin geometry that might exist on different levels of the design hierarchy, but is useful for connecting to only at the top level where it would typically be at its widest.

You may want to restrict the level depth to extract through to prevent pins from being created on lower levels of the instance hierarchy. However, if you specify a lower value for the Maximum depth field and have also selected to perform antenna extraction, extraction will be performed twice, first for signal nets and then for antenna data.

See Specifying Layers and Geometries for Extraction.

Maximum distance

Allows you to restrict the shapes considered by the extractor to those that intersect a bounding box around each starting pin shape. The extractor will only extract shapes that intersect the bounding box. The size of this bounding box is specified in microns in the Maximum distance field.

This specification can help to reduce the extraction time for large blocks, where you want to restrict the pin geometry to be near the block boundary. For example, when extracting signal or power nets in a large block, you would supply a maximum extract distance to prevent extracting the entire signal/ground net or power/ground net within the block.

Minimum width

Specifies the minimum width of the shapes to be extracted. The extractor extracts only shapes that are greater than or equal to the width you specify.

The minimum width value is applied to all layers except cut layers. The minimum width criteria is not applied to cut layers because the extractor would always stop at the narrow cut shapes. The benefit of using this option is that it can significantly reduce the time taken to extract useful geometry from large nets that have a number of routing widths.

For example, if you are interested in extracting ring pin geometry from a block that has internal power rings, you can specify the minimum width for extracting power nets to be equal to the width of the ring pins. The extractor would then only extract the ring pin geometry.

Create Must Join Pins

This section controls what happens when the extractor finds two disjoint groups of shapes extracted for the same net. In the Pins step, where the same text appears in more than one label, multiple pins are created for the same net. These pins are the starting points for the connectivity extractor. For example, if a cell has a net named A, the layout designer might label the net A at two different locations in the cell. Abstract Generator will create two starting pins for net A and the extractor will extract from both of these starting pins.

The extractor might find that the geometries are connected inside the cell. Sometimes, in such cases, the geometries extracted from the two starting pin shapes remain disjoint. This might happen due to one of the following reasons:

  • The pins are connected inside the cell but the extraction performed by Abstract Generator has not found that connectivity. This can happen when you limit the extractor to certain layers or when you specify a Maximum distance for extraction or limit the hierarchy search to a Maximum depth.
  • The pins are disjoint inside the cell, and the layout designer intended that the router should connect to both pins in order to correctly connect net A. In LEF, this set of pins are termed as “must-join”.s

If the LEF54_MUSTCONNECTPORTS property is set on any terminal in the layout, it will be reflected in the abstract view.

Always

Allows the Abstract Generator to establish a must-join relationship between all disjoint groups of geometries extracted from separate starting pins on the same net. A must-join relationship is represented in LEF as must-join terminals. Abstract Generator creates must-join terminals with the same name as the original terminal, but also includes the suffix _mjxxx where xxx is the number of the must-join group used internally to identify all the shapes in the same group. For example, in the scenario described above, Abstract Generator would create a must-join terminal called A_mj1.

Only on terminals named

Lets you control when to create LEF must-join relationships between disjoint geometries extracted from separate starting pins on the same net.

You can enter a list of terminal names, each separated by a single space. If the extractor finds a terminal name matching one of the names supplied, and if there are disjoint geometries from different starting pins on that net after extraction, Abstract Generator creates a MUSTJOIN relationship for that terminal. This might be useful when you know the terminals expected to have must-joins. Specify their names in this field, and if the extraction process creates other disjoint groups of geometries, they will not be turned into must-join groups and will instead be treated as strongly connected.

Abstract Generator informs you when it creates must-join terminals as the result of an extraction. It also reports when it detects disjoint geometry groups but the option settings did not allow the creation of the must-join terminal.

If there are must-join terminals already defined in the layout, they will be retained in the final abstract irrespective of whether you use the options in the Create Must Join Pins If Required section or extract signal nets. Abstract Generator would propagate the must-join terminals only if the pin type (input, output, inout) of the must-join pins is the same; otherwise, Abstract Generator will issue an appropriate error message.

Power Tab

The following table describes the fields available on the Power tab of the Running Step Extract form.

Field Description

Extract power nets

Directs Abstract Generator to run connectivity extraction for power nets. Therefore, when this option is turned on, Abstract Generator extracts all the pin shapes created during the Pins step. This option is on by default for standard cells. When the option is turned off, Abstract Generator copies the pin geometry generated in the Pins step but the pin shapes now have purpose net rather than purpose pin. This is the default while processing blocks.

When processing a custom block in which ring style power pins are required, it is necessary to keep the Extract power nets option on. This will ensure that enough power geometry is extracted that can be processed by the ring pin identification algorithm in the Abstract step to identify the shapes to be turned into ring pins.

Selecting the Extract power nets option activates the Layer Assignment for Power Extraction table on the Power tab. In this table, you specify the layers through which you want Abstract Generator to extract.

Cadence recommends that you should not use the Extract power nets option for blocks or IO cells unless you are sure that you need to; for example, use this option only if you want to create ring pins. If you do need to extract power nets, do not create pins on a given layer unless it is necessary. For example, do not create pins on polysilicon, diffusion or contact layers, except where there are dominant cut-layer spacings. You should also turn on the Create ring pins or Create boundary pins options in the Abstract step to ensure that not all of the extracted geometry is turned into pins. If you do not, Abstract Generator must cut around each pin, which would increase the time taken to generate the blockage model.

Layer Assignment for Power Extraction table

Specifies the geometry or shapes that should be present on a particular layer when power net extraction is performed.

The entries in the Layer Assignment for Power Extraction table are used by other functions even when the Extract power nets option is switched off. The situations in which this might happen are discussed below.

  • In the Extract step, if you have a geometry specification with more than two parts, for example as in,
    (metal1 andnot marker)
    Abstract Generator finds shapes that touch or overlap the pin shapes. This can result in the creation of pins that are different from the ones created in the Pins step.
    In the above geometry specification example, it might happen that the design has two nets shorted together on metal1 and the layout has a marker layer that indicates the boundary between the two nets. Therefore, any shape on the metal1 layer and not the marker layer which touches an original pin is turned into a pin.
  • In the Abstract step, Abstract Generator tries to stretch the pins. To do this, it uses the geometry specification entered in the table to ensure that it converts only the shapes that satisfy the specification into pins.

See Relationship between Signal and Antenna Tabs.

Create Must Join Pins If Required

Lets you control what happens when the extractor finds two disjoint groups of shapes extracted for the same net.

Antenna Tab

Field Description

Calculate hierarchical antenna

Calculates antenna values hierarchically by summing the antenna data on standard abstracts. By default, this option is switched off and disabled. It becomes active only when one of the other antenna calculation options is selected.

This option bypasses the check for Gate or Drain regions in the Layer Assignment for Antenna Regions table because these measurements are not required for hierarchical antenna calculations. If this option is selected and there are no abstract instances, Abstract Generator performs a flat antenna calculation instead. If this is the case and the Gate and Drain regions are not specified, Abstract Generator warns you that neither process antenna information has been calculated nor the diffusion and polysilicon geometries have been extracted.

Calculation

The following equation is the MaxAreaCar, MaxSideAreaCar and MaxCutCar hierarchical antenna calculation for the abstract instance terminal on a particular net. This is maximized with the MaxCar’s for the other gate nodes to get the overall max.

M_i CAR = M_i PAR + max{ M_i-1 CAR, (M_i MAX_CAR(H) - M_i PAR(H)) }

where,

  • M_i is the fabricated metal layer.
  • M_i PAR is the partial metal area divided by the gate area under the metal layer.
  • M_i-1 CAR is the cumulative area ratio calculated for the layer below.
  • M_i MAX_CAR(H) is the pcsAntennaMaxAreaCAR information from the instance terminal.
  • M_i PAR(H) is pcsAntennaPartialMetalArea or pcsAntennaGateArea from the instance terminal.

If pcsAntennaMaxAreaCAR is not specified, the calculation takes a simpler form as in:

M_i CAR = M_i PAR + M_i-1 CAR

See Keywords Used in Antenna Calculation

Calculate input pin antenna

Calculates either the ANTENNASIZE LEF (if you are using LEF 5.3) or the ANTENNAGATEAREA attribute (if you are using LEF 5.4 or above) for input pins. By default, this option is switched off for standard cells and custom blocks.

The following example illustrates how the antenna values are calculated for inout pins.

Example

Consider the following standard cell output that has internal feedback to the gate inp1 and two pins (P) in the abstract P1 (on METAL1) and P2 (on METAL2).

ANTENNAGATEAREA METAL1 = Area of inp1 gate
ANTENNAGATEAREA METAL2 = Area of inp1 gate

ANTENNADRAINAREA METAL2 = Area of out1 drain

ANTENNAPARTIALMETALAREA METAL1 = Area of METAL1 segment (1) - area of pin P1
ANTENNAPARTIALMETALAREA METAL2
= Area of METAL2 segment (2) - area of pin P2

ANTENNAPARTIALMETALSIDEAREA METAL1 = Perimeter of (segment (1) - P1) + METAL1 thickness
ANTENNAPARTIALMETALSIDEAREA METAL2 = Perimeter of (segment (2) - P2) + METAL2 thickness

See Keywords Used in Antenna Calculation.

Calculate output pin antenna

Calculates either the ANTENNASIZE LEF (if you are using LEF 5.3) or the ANTENNAGATEAREA and ANTENNADIFFAREA attributes (if you are using LEF 5.4 or above) for output pins and tristate pins. By default, this option is switched off for standard cells and custom blocks.

Calculate inout pin antenna

Calculates either the ANTENNASIZE LEF (if you are using LEF 5.3) or the ANTENNAGATEAREA and ANTENNADIFFAREA attributes (if you are using LEF 5.4 or above) for IO pins and tristate pins. By default, this option is switched off for standard cells and custom blocks.

Calculate antenna metal area

Calculates the area of metal that would be connected to the pin when that layer is fabricated. This option is designed to be used with blocks. The result is expressed in square microns. By default, this option is switched off and disabled. It becomes active only when the non-side area ratio is specified in the technology file.

The calculated antenna metal area is added by the router to the routing metal at the next level up in order to compute whether or not there is an antenna violation on that pin or on any other pin on the same net. Use the ExtractAntennaIncludePolyCAR option to include poly shape area when calculating the antenna metal area. When set to true, poly shapes are considered as metal shapes and are therefore included in the calculation of ANTENNAPARTIALMETALAREA.

Consider the following example that describes the calculation of ANTENNAPARTIALMETALAREA.

Example

For each metal layer, you must calculate the area of metal attached to the pin that will be connected when that layer is fabricated, that is, the metal on the same external pin side of some higher level piece of metal. You need to calculate the metal area only for those layers where there is pin geometry and any higher layers used internally on the connection to the gate.

From the above figure,

ANTENNAGATEAREA METAL1 = Area of gate (input1)
ANTENNAGATEAREA METAL2 = Area of gate (input1) + area of gate (input2) + area of gate (input3)

ANTENNAPARTIALMETALAREA METAL1 = Area of METAL1 segment (1) - area of Block pin P
ANTENNAPARTIALMETALAREA METAL2
= Area of METAL2 segment (2) + area of METAL2 segment (4)

ANTENNAPARTIALMETALSIDEAREA METAL1 = Perimeter of (METAL1 segment (1) - Block pin P) x METAL1 thickness
ANTENNAPARTIALMETALSIDEAREA METAL2 = (perimeter of METAL2 segment (2) + perimeter of METAL2 segment (4)) x METAL2 thickness

See Keywords Used in Antenna Calculation

To enable Abstract Generator to consider only those paths that contain pins and not all the shapes and paths that are part of terminal, you can use the ExtractAntennaPinPathsOnly { true | false } SKILL option.

Consider two pins, M11 and M13, on METAL1 layer. If ExtractAntennaPinPathsOnly is set to true and ExtractSig is set to false, Abstract Generator considers only those paths that contain pins.

For example, gateArea M1 and M2 = Min(G1,G3)

Otherwise, Abstract Generator considers all the paths, that is,

gateArea M1 and M2 = Min(G1,G2,G3)

Calculate antenna metal side area

Calculates the side area of the metal (perimeter x thickness) that would be connected to the pins when that layer is fabricated. By default, this option is switched off and disabled. It becomes active only when the side area ratio is specified in the technology file.

Layer Assignment for Antenna Regions

This section lets you assign layers to antenna regions for identifying the gate and drain regions and to enable antenna calculation. This field is enabled when at least one of the calculate antenna options is active.

If the information in the technology file is set up correctly (layers need to be defined in the functions section of the LayerRules section), Abstract Generator automatically adds the entries to the table.

In LEF, polysilicon and diffusion layers are defined as masterslice layers and both are converted to poly layers after the LEF data is imported to a technology file. Distinction between these layers is required for antenna calculation. So, Abstract Generator searches for the layer names oxide, diff, ndiff, diffn, pdif, pdiff, and diffp corresponding to the layer type poly, marks those layers as diffusion layers in the technology file, and removes them from the poly layer list. It then uses this information to automatically populate the Gate and Drain regions in the Layer Assignment for Antenna Regions table.

Layer

Lets you select the polysilicon and diffusion layers specified in the technology file.

Geometry Specification

Lets you enter a layer-geometry specification defining the gate or drain geometry regions. For example,

  • (polysilicon and (pdiff or ndiff) defines a gate region
  • (pdiff (pdiff andnot polysilicon) defines a drain region

Use the Specifying General Options in G-Spec Builder Form to help you with the geometry specification. To access this form, place the cursor in the Geometry Specification field for the required layer and click the Edit button.

You can define only one geometry specification for each layer.

Region

Specifies whether the layer is a Gate or Drain region.

  • Gate: When calculating the size of a MOS transistor gate by using the option Calculate input pin antenna, Abstract Generator must measure the area of the region where polysilicon overlaps diffusion rather than the area of the polysilicon wire itself. Consequently, a geometric operation (AND) must be carried out to find the gate geometry. Selecting Gate as the region and entering the following in the Geometry Specification field specifies this operation:
    (poly (poly and (ndiff or pdiff))
  • Drain: When using either the Calculate output pin antenna or Calculate inout pin antenna option, Abstract Generator cannot consider only the area of the drawn diffusion; it needs to remove the drain area from the area of the diffusion. The following geometry specification calculates the n-diffusion drain by subtracting the polysilicon from the n-diffusion geometry:
    (diffn (diffn andnot poly))
    The same principle applies when calculating p-diffusion.
    (diffp (diffp andnot poly))

Oxide

Lets you apply a unique oxide type for up to 32 diffusion layers. This option offers 32 oxide types (the maximum number handled by LEF): Oxide1 … Oxide32.

If you list more than four diffusion layers, layers with the same Oxide type are treated in the same way. You can also select Oxide1 for all the listed diffusion layers, in effect replicating the LEF 5.7 or above antenna style model.

If the Oxide1 keyword is associated with a particular diffusion layer, it means that the gate area over this diffusion area and the ANTENNAMAXAREACARs associated with this gate area use the Oxide1 antenna ratios to determine antenna violations in Innovus.

An example of LEF 5.5 could contain:

The Oxide option is disabled if you select Gate as the Region type for a particular layer. Similarly, if you select an Oxide type for a layer, the Region type is changed to Drain.

The default value “ ”corresponds to Oxide1.

Use different layer assignments for antenna calculations only

Lets you set layer assignments for antenna extraction different from those set for signal net extraction set on the Relationship between Signal and Antenna Tabs. Selecting this option activates the Layer Assignment for Antenna Extraction table and consequently over-rides any Layer Assignment for Signal Extraction option settings. A “behind-the-scenes” antenna extraction calculation can then be performed.

If you are performing “behind-the-scenes” antenna calculations and using replay scripts, you must change the extractLayersSig option in the script to antennaLayers for it to run successfully.

Selecting this option can be useful, for example, in such cases where you want to create pins from shapes which are touching the initial pin on the same layer and, if you had to specify the via layers to extract through, the Extract step may create pin shapes on other metal layers which you do not require. This, in turn, could cause electro-migration issues. By default, this option is disabled and off. It is activated if one or more calculate antenna options are selected. See Relationship between Signal and Antenna Tabs.

Layer Assignment for Antenna Extraction

This section is active when the Use different layer assignments for antenna calculations only option is selected.

Layer

Lets you specify the layer for which you want to extract antenna data.

Geometry Specification

Lets you enter a for each layer through which you want to extract antenna data.

Signal nets to be excluded from antenna calculation

Allows you to specify the nets that should not be considered for antenna extraction and therefore, lets you avoid antenna calculations for the specified pins. For example, by specifying the expression as in* for the signal nets to be excluded, you can exclude all nets with names beginning with in from antenna calculation.

This field is enabled only if one of the calculate antenna options is selected.

General Tab

Field Description

Use net information in design

Allows Abstract Generator to skip the extraction based on overlapping shapes and use the existing connectivity information in your design to create nets.

Selecting this option for designs with existing connectivity information results in huge performance gain.

Layer connectivity

Allows you to specify the layer connectivity without having to add via definitions in the technology file. The default value is however based on the connectivity derived from analyzing the vias in the technology file, for example (M1 M2 V12); the poly and diffusion connections, for example (POLY M1 CONT) (DIFF M1 CONT); and local interconnect layers.

The format for entering a value in this field is to list the layers as a number of entries; each entry being either a layer pair or layer triple.

Example 1: (layer1 layer2 layer3) (layer4 layer5 layer6)... (layer7 layer8)...

In the above example, a triple layer entry means that layer1 connects to layer2 through the via layer layer3. A pair means that the first layer, layer7, connects to the second layer, layer8, by overlap (for example, local interconnect to polysilicon). You must specify these layer connections in the Layer Assignment for Signal Extraction table.

Example 2: (Li1 Li2) (PO Li1) (OD Li2)

In the above example, layer connectivity is defined between local interconnect, poly, and oxide layers. Here, Li1 and Li2 are two local interconnect layers, PO is a poly layer, and OD is an oxide layer. Abstract Generator uses this information during extraction to determine where to extract next. Starting from a given shape, the extractor looks at the connectivity defined for the layer on which that shape is present to determine the layers to look for shapes on next.

Bridge vias are also supported during extraction.

Pin Geometry Restriction

This section provides you with finer control over final pin geometry.

Layer

Lets you type in the layer you want to assign for pin geometry. However, this layer must still be present in the technology file. If it is not, an invalid layer warning is displayed.

Geometry Specification

Lets you enter the geometry specification for the regions where pins are either to be restricted to or avoided.

Restriction

Lets you choose whether pins are to be allowed or avoided (Allow or Avoid) in the geometry specified in the Geometry Specification field. The specified geometry specification (G-spec) describes the region where pins are to be allowed or avoided.

Related Topics

Specifying Layers and Geometries for Extraction

Extracting Power Nets in Standalone Abstract Generator

Processing Antenna Information in Standalone Abstract Generator

Specifying Connectivity Information in Designs


Return to top
 ⠀
X