Product Documentation
Virtuoso Layout Suite XL: Connectivity Driven Editing User Guide
Product Version IC23.1, November 2023

Dummy Instance Generation

Dummy instances are created in the layout to counter electrical effects that are observed at small geometries. These instances get their connectivity from the layout net to which they are tied.

All the terminals of a dummy instance, except its bulk terminal, are connected to the tie net. The bulk terminal, wherever present, is connected to the same bulk net as that used by the instance from which the dummy is created.

Depending on the purpose of the net to which a dummy instance is tied, the dummy instances can be categorized as:

Because dummies get their category—active or inactive—depending on the net to which they are connected, it is necessary to specify which nets are power and ground nets before you create dummies.

If you choose to add active dummies to your design, it is advisable to take these dummies to the schematic—also called backannotation—to ensure no mismatches are reported during a layout versus schematic run. Inactive dummies, on the other hand, can be backannotated optionally.

Power and Ground Nets Specification for Dummy Instances

To assign a dummy instance to an appropriate net during generation, you must specify which nets should be used as power and ground nets. You can do this by setting the lxSupplyNetNames and lxGroundNetNames environment variables, respectively.

Alternatively, you can specify the power or ground nets by using one of the following:

The SKILL example below demonstrates the use of regular expression style matching of substrings when specifying the power and ground nets in a design.

You must run the SKILL code below after the design is loaded to initialize the power and ground net environment variables.

procedure( companyPowerNet(net)
    ciIsNet(net "company_power")
)
procedure( companyGroundNet(net)
   ciIsNet(net "company_ground")
)
procedure( companyPowerNetNames(cv)
      let( (res)
          res = ""
          foreach(net cv~>nets
              if( companyPowerNet(net)
                  sprintf(res "%s %s" res net~>name)
              )
)
          res
      )
)
procedure( companyGroundNetNames(cv)
      let( (res)
          res = ""
          foreach(net cv~>nets
              if( companyGroundNet(net)
                  sprintf(res "%s %s" res net~>name)
              )
          )
          res
     )
)
procedure( initPowerAndGroundNetNames(cv)
      ciRegisterNet( "company_ground" nil 
                     ?regexNetNames '("vss" "VSS" "gnd" "GND" "ground" "GROUND" ) )
      ciRegisterNet( "company_power" nil 
                     ?regexNetNames '("vdd" "VDD!" "vcc!" "VCC!") )
envSetVal("layoutXL" "lxSupplyNetNames" 'string companyPowerNetNames(cv))
envSetVal("layoutXL" "lxGroundNetNames" 'string companyGroundNetNames(cv))
) 

After the SKILL code is loaded, set up the power and ground nets by calling:

initPowerAndGroundNetNames(cv)

To verify if the SKILL code was successfully initialized, use the following commands:  

  envGetVal("layoutXL" "lxSupplyNetNames")
  envGetVal("layoutXL" "lxGroundNetNames")

Dummy Instance Properties

The following properties are associated with Layout XL dummy instances.

Property Description

lxBackAnnotated

Added to the schematic dummy instances that are created as a result of backannotation.

During Check Against Source, if regular or modgen dummies have lxBackAnnotated property specified in the schematic, they are skipped when names are matched.

See Dummy Instances Backannotation.

lxDummy

Identifies an instance as a dummy instance.

lxDummyNet

Name of the power or ground net that is used to connect all the instance terminals during the creation of a dummy instance. This net is also used to restore the connectivity when a device is unabutted.

Related Topics

Creating Dummy Instances

Support for Flexible Connectivity in Dummy Instances

Dummy Instances Backannotation

Net Voltages BackAnnotation

lxSupplyNetNames

lxGroundNetNames


Return to top
 ⠀
X