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

geom_and_not

geom_and_not 
{{-lpp1 {s_layerlpp } 
  [ -lpp1_levels {i_startLevel [i_endLevel]} ] 
  [ -set1 d_setObj ] 
  [ -lpp1_net_names {s_netName…} | -lpp1_net_set d_setObj ]} 
| -input1_scratch_layer i_scratchID} 
{{-lpp2 {s_layerlpp } 
  [ -lpp2_levels {i_startLevel [i_endLevel]} ] 
  [ -set2 d_setObj ] 
  [ -lpp2_net_names {s_netName…} | -lpp12_net_set d_setObj ]} 
| -input2_scratch_layer i_scratchID} 
{{-output_lpp s_lpp [ -output_net_name s_netName ][ -output_set d_setObj ]} 
| -output_scratch_layer i_scratchID} 
[ -no_sync ] 
[ -polygons ] 
[ -region {f_xlo f_ylo f_xhi f_yhi} ] 
[ -route_topology {core_ring | block_ring | stripe | cell_row_strap} ] 
[ -size1 f_userunit ] 
[ -size2 f_userunit ] 
[ -trim_corners ] 

Description

Generates new shapes where shapes from one input group do not overlap shapes from another input group. Input groups can be a scratch layer, or one or more layer purposes, optionally limited to specific levels for nets in a set or a list, or shapes in a set. You can optionally use sized shapes from one or both of the input groups. The generated shapes are added to a scratch layer, or to a layer purpose and, optionally, a specific net. You can choose to operate on a specific region or the entire design.

The GUI equivalent for this command is Create—Derived Layers.

Arguments

-input1_scratch_layer i_scratchID

  

Uses a scratch layer from a previous Boolean operation for lpp1 shapes.

-input2_scratch_layer i_scratchID

  

Uses a scratch layer from a previous Boolean operation for lpp2 shapes.

-lpp1 {s_layerlpp }

Specifies the first LPPs. For details on the LPP notation, refer to Specifying Input Layer Purposes.

-lpp1_levels {i_startLevel [i_endLevel]}

Limits lpp1 shapes to those on the specified levels. If start and end levels are given, all levels in between are included. The top level is 0.
Default: all levels

-lpp1_net_names {s_netName…}

  

Limits lpp1 shapes to the named nets.

-lpp1_net_set d_setObj

Limits lpp1 shapes to the nets in the set.

-lpp2 {s_layerlpp }

Specifies the second LPPs. For details on the LPP notation, refer to Specifying Input Layer Purposes.

-lpp2_levels {i_startLevel [i_endLevel]}

Limits lpp2 shapes to those on the specified levels. If start and end levels are given, all levels in between are included. The top level is 0.
Default: all levels

-lpp2_net_names {s_netName…}

  

Limits lpp2 shapes to the named nets.

-lpp2_net_set d_setObj

Limits lpp2 shapes to the nets in the set.

-no_sync

By default, the OpenAccess database is immediately updated with the results of this operation. If this argument is given, the results will not be saved until the database is saved (write_db).

-output_lpp s_lpp

Specifies the output LPP for the generated shapes.

-output_net_name s_netName

  

Adds shapes to the named net. When this argument is given, the -no_sync argument is ignored. Shapes that are created by this command will be saved with the named net when the database is saved.

-output_scratch_layer i_scratchID

  

Adds generated shapes to a scratch layer identified by the positive integer. This scratch layer can be used as an input layer in subsequent Boolean operations using the -input1_scratch_layer or -input2_scratch_layer arguments for the current design. Scratch layers cannot be displayed but can be removed using geom_remove_scratch_layers.

-output_set d_setObj

Adds generated shapes to the given set.

-polygons

Generates output shapes as polygons, rather than individual rectangles. By default, individual rectangles are generated.

-region {f_xlo f_ylo f_xhi f_yhi}

Specifies the area of the operation given the lower-left coordinate and the upper-right coordinate.

-route_topology s_topologyName

  

(Applies only if -output_net_name is given with the name of an existing power or ground net) Sets the routeTopology property for the output shapes as follows:

  

block_ring

BlockRingRouteTopology

cell_row_strap

StandardCellWireRouteTopology

  

core_ring

RingRouteTopology

  

stripe

StripeRouteTopology (this is the default)

-set1 d_setObj

Limits lpp1 shapes to shapes in the set.

-set2 d_setObj

Limits lpp2 shapes to shapes in the set.

-size1 f_userunit

Specifies the non-negative sizing amount in user units for shapes on the first layer purpose. By default, no sizing is done.

-size2 f_userunit

Specifies the non-negative sizing amount in user units for shapes on the second layer purpose. By default, no sizing is done.

-trim_corners

Specifies that corners be trimmed when shapes are resized. By default, corners are preserved when resized.

Value Returned

i_count

Is the total number of shapes created.

Examples

The following example generates new shapes on the met5:wire:detail layer purpose that exist on met2 and do not overlap shapes on met1 wire:detail layer purposes.

geom_and_not -lpp1 { met2:wire:detail } -lpp2 { met1:wire:detail } -region { 2486.75 2850.75 2635.22 2946.52 } -output_lpp { met5:wire:detail }

Related Topics

Create Commands

geom_and

geom_extent

geom_not

geom_or

geom_size

geom_xor


Return to top
 ⠀
X