Product Documentation
Virtuoso Layout Suite SKILL Reference
Product Version IC23.1, November 2023

gpeCreateAbutType

gpeCreateAbutType(
[ ?syncChains { t | nil } ]
[ ?preserveRows { t | nil } ]
[ ?permute { t | nil } ]
[ ?mirrorEquivOrients { t | nil } ]
[ ?mirror { t | nil } ]
[ ?interdigitateChains { t | nil } ]
[ ?dummyFlexBothEndNets { t | nil } ]
[ ?chainLeftNet { Source | Drain | Either } ]
[ ?chainAlignPMOS { Top | Center | Bottom } ]
[ ?chainAlignNMOS { Top | Center | Bottom } ]
[ ?allowSingleBulk { t | nil } ]
[ ?abutStrategy { sdFirst | dummyFirst } ]
[ ?verbose { t | nil } ]
) 
=> l_abutType / nil

Description

Creates an abutType DPL, which can be passed to the gpeCreateAbutEntry API. The abutment then uses the chaining parameters specified in the abutType parameter. The defaults for the arguments are obtained from the Modgen environment if set. Otherwise, the defaults of lxChain are honored.

Arguments

?syncChains { t | nil }

Synchronizes chains across rows by first arranging the specified instances into rows and then by abutting the instances row-wise from right to left in each column pair.

The ?syncChains argument uses the row bounding box-Y overlaps to determine the rows that need to be considered for synchronizing the chains.

?preserveRows { t | nil }

Accepts multiple rows as input and chains each row using the optional parameters specified.

?permute { t | nil }

Permutes instances. The default value is t.

?abutStrategy { sdFirst | dummyFirst }

Specifies the abutment behavior. Valid values are:

  • sdFirst: (default) Abuts source or drain first. If this fails, the function tries abutting dummy shapes.
  • dummyFirst: Abuts dummy shapes first. If this fails, the function tries abutting source or drain.

?mirrorEquivOrients { t | nil }

Mirrors to equivalent orientations, for example chaining mirrors R0 to MY and vice versa. The default value is t. When set to nil, chaining mirrors MX to R180 and vice versa.

?mirror { t | nil }

Mirrors instances. The default value is t.

?interdigitateChains { t | nil }

Identifies and defines the pseudoparallel nets. The default value is nil.

?dummyFlexBothEndNets { t | nil }

Controls whether the dummy devices can have different source or drain connectivity.

?chainLeftNet { Source | Drain | Either }

Specifies the nets that must be optimized to the left of the generated chains. Valid values are:

  • Source: (default) The generated chain is optimized such that one of its source nets is on the left-hand side of the chain.
  • Drain: The generated chain is optimized such that one of its drain nets is on the left-hand side of the chain.
  • Either: Indicates that there are no preferences, and so the default behavior from previous releases is maintained.

The values must be enclosed in quotation marks.

?chainAlignPMOS { Top | Center | Bottom }

Controls PMOS chaining alignment. The values must be enclosed in quotation marks. The default is Top.

?chainAlignNMOS { Top | Center | Bottom }

Controls NMOS chaining alignment. The values must be enclosed in quotation marks. The default is Bottom.

?allowSingleBulk { t | nil }

Abuts devices if only one of the devices has a bulk and the ?useDeviceOrder argument is set to t. The default value is t.

?verbose { t | nil }

Controls the display of warning messages.

Value Returned

l_abutType

Returns the abutType DPL created.

nil

The command was unsuccessful.

Example

Creates an abutType DPL that has synchronized chains and can accept multiple rows as input:

abutType = gpeCreateAbutType(?syncChains t ?abutStrategy "dummyFirst")
=> (nil syncChains t abutStrategy "dummyFirst" )

Return to top
 ⠀
X