Product Documentation
Virtuoso Space-based Router Command Reference
Product Version IC23.1, September 2023

extract_net_connectivity

extract_net_connectivity
{-all 
| -set d_setObj 
| -window_id i_windowID 
| -cells {s_libCellView…}} 
[ -apply_pin_style_to_top_cell [ true | false ] ] 
[ -clock_names {s_netName…}] 
[ -extract_poly [ true | false ] ] 
[ -flatten_all_lpps [ true | false ] ] 
[ -flatten_blockages [ true | false ] ] 
[ -flatten_to_depth {1|2}] 
[ -ground_names {s_netName…}] 
[ -ignore_cells {s_libCellView…}] 
[ -layer_precedence {s_layerName…}] 
[ -net_name_file s_lnnFileName ] 
[ -net_name_prefix s_prefix]] 
[ -net_name_property s_property] 
[ -pin_style {labeled_shapes | connected_shapes | whole_net 
| whole_net_all_layers}] 
[ -power_names {s_netName…}] 
[ -resolve_shorts [ true | false ] ]
[ -routify [ true | false ] ] 
[ -save ] 
[ -save_lib s_libName ] 
[ -save_view s_viewName | -view s_viewName ] 
[ -stop_level i_level] 
[ -text_layer {shape_layer | s_layerName}] 
[ -text_purpose s_lpp] 
[ -use_layout_text [ true | false ] ] 
[ -verbose ] 

Description

Extracts connectivity from a layout without connectivity or with partial connectivity, such as data imported from GDSII Stream format. Adding connectivity to the data will allow it to be routed and/or optimized.

Operates on objects with the following characteristics:

These objects are referred to as interconnect objects. In addition, the extractor can use text objects (-use_layout_text true), which must have purpose text.

Any interconnect object that is not part of a net is assigned to a net by the extractor by recursively identifying any other objects that are physically connected to that object. If any object in this connected set is already part of a net, then all unassigned objects in the set are assigned to that net. If none of the objects in the connected set is already assigned to a net, then a new net will be created.

Nets created by the extractor can be assigned a name by the extractor from one of the following sources:

Arguments

-all

Extracts all of the nets in the cellview.

-apply_pin_style_to_top_cell [ true | false ]

  

Specifies whether the -pin_style setting should be applied to the top cell.

For example, if you are routing the top cell and you want all of the relevant shapes at level one of its hierarchy to be possible routing targets, specify -pin_style whole_net. In addition, if you do not want all of the top cell shapes to be made into pin shapes, specify -apply_pin_style_to_top_cell false.

Default: true

-cells {s_libCellView…}

  

Performs extraction on cells in the given list. Cells are specified with the format lib/cell/view. Wildcards are accepted. Cells can be excluded using -ignore_cells. You do not need to load a top cell to use this argument.

For example, -cells {stdLib/*/layout} will extract all cells in the stdLib library with layout view.

-clock_names {s_netName…}

Recognizes names in the list as clock nets in the design. If the extractor creates a net with one of these names, the signal type of the net will be set to "clock".

-extract_poly [ true | false ]

  

If true, extracts shapes on the poly layer.

Default: true

-flatten_all_lpps

Applies only when -flatten_to_depth is given. If true, shapes on all layer purposes are copied up the hierarchy during the flattening process. If false, only interconnect objects are copied. In some cases, specifying false can result in reduced memory usage without affecting the extraction or subsequent routing and optimization results (for example, if subcells contain well, implant or non-mask layers that are not related to routing). Default: true

-flatten_blockages [ true | false ]

Applies only when -flatten_to_depth is given. If true, blockage shapes are copied during flattening. If false, blockage shapes are not copied. Default: true

-flatten_to_depth {1|2}

  

Removes hierarchy from the design. If set to 1, layout data from all of the instances are copied into the extracted cell and the instances are removed from the extracted cell. If set to 2, all hierarchy is removed from the immediate subcells (level 1) of the extracted cell. By default, no flattening occurs.

-ground_names {s_netName…}

Recognizes names in the list as ground nets in the design. If the extractor creates a net with one of these names, the signal type of the net will be set to "ground".

-ignore_cells {s_libCellView…}

Ignores layout in the given cells. Cells are specified with the format lib/cell/view. Wildcards are accepted. To include cells, use -cells.

-layer_precedence {s_layerName…}

Specifies an ordered list of layers which must be valid technology layer names. Used with -text_layer to specify the layer search order for any interconnect object whose boundary contains the text object’s origin. The first interconnect shape found will have its net named using the text value. This argument must not be used with -text_layer shape_layer.

-net_name_file s_lnnFileName

Specifies the name of the Mentor Graphics® Calibre® Layout Netlist Names (LNN) file to use for net name mapping.

For more information on using this argument, refer to Using -net_name_property with Calibre Layout Netlist Names Files.

-net_name_prefix s_prefix

Specifies a prefix string for names of nets created by the extractor that are not named with a label from text or property. The extractor will create a unique name for each net by appending a number at the end of the prefix.

For example, if you specify a prefix of "abc", the extractor will assign names such as "abc1" and "abc234". The default prefix string is "extract_n_".

-net_name_property s_property

Names extracted nets using the value of this property attached to at least one of the net shapes.

For more information on using this argument, refer to Using -net_name_property with Calibre Layout Netlist Names Files.

-pin_style s_string

Controls which shapes become pin shapes.

connected_shapes

Marked shapes and those that are recursively connected become pin shapes.

labeled_shapes

Only shapes marked by text or property become pin shapes. This is the default.

whole_net

All of the shapes in the net become pin shapes.

whole_net_all_layers

All of the shapes in the net, regardless of layer, become pin shapes.

-power_names {s_netName…}

Recognizes names in the list as power nets in the design. If the extractor creates a net with one of these names, the signal type of the net will be set to "power".

-resolve_shorts [ true | false ]

If true, merges nets that are shorted.

Default: false

-routify [ true | false ]

When true, organizes the route segments and vias into routes and creates the necessary route objects in preparation for routing.

Default: false

-save

Saves cell views after extraction, overwriting current views. By default, no save occurs, except when -save, -save_lib, -save_view or -view is given.

-save_lib s_libName

Saves the layout with the extracted nets to the given library. By default, no save occurs, except when -save, -save_lib, -save_view or -view is given.

-save_view s_viewName

Saves the layout with the extracted nets to the given view. Has the same function as -view. Both arguments cannot be given in the same command. By default, no save occurs, except when -save, -save_lib, -save_view or -view is given.

-set d_setObj

Extracts only the nets that own shapes in the given set.

-stop_level i_level

Ignores all layout in hierarchy levels below the given level. By default, all levels are extracted.

-text_layer {shape_layer | s_layerName}

Specifies the layers on which the extractor looks for text objects to name nets. Valid only with -use_layout_text true.

shape_layer

The extractor looks on all routing layers for text. For any text object found, the extractor searches the text object’s layer for any interconnect object whose boundary contains the text origin. If such a shape is found, that shape’s net will be named with the text value.

s_layerName

Only the given layer will be searched for text objects. For any text object found, all routing layers are searched for an interconnect object whose boundary contains the text origin. The search order of the layers can be specified using -layer_precedence.

-text_purpose s_lpp

(Applies only when -use_layout_text and/or -text_layer is given) Specifies the name of the layer purpose to use to search for text objects in the layout.

Default: text

-use_layout_text [ true | false ]

Names extracted nets using text objects in the layout.

For a text object to name a net, the following criteria must be satisfied:

  • The text object must be on an appropriate layer, given by -text_layer and be on the text purpose.
  • The text object must lie in or on the boundary of a shape (rectangle, polygon, or wire segment) in the net.

Nets not named with text or properties are named using a prefix and number (see -net_name_prefix).

-verbose [ true | false ]

  

If set to true, outputs information about each extracted cell to the Transcript area.

Default: false

-view s_viewName

Saves layout with extracted nets to the given view. By default, no save occurs, except when -save, -save_lib, -save_view or -view is given.

-window_id i_windowID

Specifies the identifier for the window to work in. If this option is not specified, the view in the active window is used.

Examples

The following command extracts all nets in the active cellview. The subcells of the active cellview are flattened. For nets with terminals in the extracted cells, all of the shapes in the nets will be added to a terminal pin. This allows the router the most freedom for finding connections.

extract_net_connectivity -all -flatten_to_depth 2 -pin_style whole_net

Using -net_name_property with Calibre Layout Netlist Names Files

When GDSII data from Mentor Graphics Calibre is translated to OpenAccess, properties are attached to the layout objects whose value is a net name or number.

For example, the OpenAccess property is named "STREAM PROPERTY #5", where the number 5 depends on which property number was used in Calibre for this purpose. The property value may be a name or number, indicating the net that the object belongs to. If you specify -net_name_property "STREAM PROPERTY #5", the extractor will name nets using the values of those properties.

You can also specify a Calibre Layout Netlist Names (LNN) file, if available, for mappings to more meaningful names. For example, the following represents a typical set of lines in a Calibre LNN file:

% register
1 vdd
2 reset

where % represents a cell name and the next lines show the mapping of a number to a net name.

The following command will name nets by querying the values of "STREAM PROPERTY #5" properties, then mapping those values to the cell name entries in Calibre LNN file registerl.lnn.

extract_net_connectivity -all -net_name_property "STREAM PROPERTY #5" \
-lnn_file registerl.lnn

Using the example entries given previously for the LNN file, for an object in the register cell with a "STREAM PROPERTY #5" property value of 1, the extractor will name its net vdd. An object with a "STREAM PROPERTY #5" property value of 2 will have its net named reset.

Related Topics

Design Configuration Commands


Return to top
 ⠀
X