Tech

Classes

class keysight.ads.de.tech.DerivedLayer

Represents a derived layer.

A derived layer is a (virtual) layer that is formed by operations on shapes from one or more other layers. Derived layers typically don’t have any shapes.

__init__(unused: InvalidCall, *args, **kwargs) None

Return an error about attempts to initialize objects that don’t support initialization.

static create_sizing_layer(tech: Tech, layer_name: str, layer_num: int, operation: LayerOp | str, layer1: Layer | str, distance: int) DerivedLayer

Create a derived layer from a single source layer, a sizing operation, and a distance parameter.

The derived layer contains all the shapes that result by performing the sizing operation on all the shapes from the source layer. The sizing operation uses the distance parameter to change the size of each shape from the source layer.

static create_boolean_layer(tech: Tech, layer_name: str, layer_num: int, operation: LayerOp | str, layer1: Layer | str, layer2: Layer | str) DerivedLayer

Create a derived layer from two source layers and boolean operation.

The derived layer contains all the shapes that result by performing the boolean operation on all the shapes from the two source layers.

property layer1: int
property layer2: int
property layer1_num: int
property layer2_num: int
property operation_name: str

Returns the name of the derived layer operation.

property operation: LayerOp

Returns the derived layer operation.

NOTE: If this is a user defined operation (USER_DEFINED), you must use operation_name to get the name of the operation.

get_distance_param() int

Return the distance parameter from this derived layer.

This only works for derived layers that use a sizing operation. If you call this function on a derived layer that does not have a distance parameter, it will raise an exception.

property abbreviation: str
static is_derived(layer: Layer) TypeGuard[DerivedLayer]
static is_physical(layer: Layer) TypeGuard[PhysicalLayer]
property layer_binding: str
property library: Library
property name: str
property number: int
property process_role: ProcessRole
property tech: Tech
class keysight.ads.de.tech.Layer

Base class for Layer objects in Tech.

Layer objects become invalid when the technology is modified. So the Python objects should have a short lifetime.

__init__(unused: InvalidCall, *args, **kwargs) None

Return an error about attempts to initialize objects that don’t support initialization.

static is_derived(layer: Layer) TypeGuard[DerivedLayer]
static is_physical(layer: Layer) TypeGuard[PhysicalLayer]
property number: int
property name: str
property tech: Tech
property library: Library
property abbreviation: str
property process_role: ProcessRole
property layer_binding: str
class keysight.ads.de.tech.LayerSlice

Represents a single slice of a LineStrip.

Identifies the layer for this slice and its enclosure.

__init__() None
classmethod create_from_names(library: Library, layer_name: str, purpose_name: str, enclosure_width: float) LayerSlice
classmethod create_from_layer_id(library: Library, layer_id: LayerId, enclosure_width: float) LayerSlice
property layer_id: LayerId
property layer_name: str
property purpose_name: str
property enclosure_width_uu: float

Return the difference in width (in user units) between this slice and the default width of the strip.

validate_names_and_id(library: Library) None

Check that the layer_id matches the layer and purpose names.

class keysight.ads.de.tech.LineClearance
__init__(layer_name: str | None = None, clearance: float | None = None) None
property layer_name: str
property clearance: float
class keysight.ads.de.tech.LineCorner

Defines the corners used by Line Types.

__init__(corner_type: LineCornerType | None = None) None
property type: LineCornerType
property mitered_cutoff: int

Mitered cutoff ration % - used only for Mitered corners.

property curve_radius_uu: float

Radius of the curve - used only for Curved corners.

class keysight.ads.de.tech.LineItem

Defines transmission line types.

A LineItem must be saved in a library in order to be used by layout designs.

__init__(name: str | None = None) None

Create a new LineItem object.

LineItem():

Creates a new LineItem object with no name.

LineItem(name):

Creates a new LineItem object the given name.

To be used by designs or other technology objects, a LineItem must be named and saved in a library (see Tech.save_line_types).

property name: str

Name of this line type definition.

References to line items by layout objects use this name.

property type: str

Legacy type - not really used now.

property description: str

Description of this line type definition used by tooltips.

property substrate: str

Name of the substrate used by this Line type definition.

property begin_end_type: LineEndType

The type of ending (and beginning) of lines defined by this line item.

property corner: LineCorner

Defines the corners (bends) of lines defined by this line item.

property strip_items: ListRefAbc[LineStripItem]

The collection of line strips in this LineItem.

property plane_layer_names: ListRefAbc[str]

The collection of plane layer names used by this line item.

property simulation_model: LineTypeSimulationModel
property single_strip_line: LineStripItem

The only strip item if this line is single-strip.

Will raise an exception if this line is not single-strip.

property is_single_strip_line: bool
property clearances: ListRefAbc[LineClearance]

The collection of line clearances in this LineItem.

get_calculated_type_deprecated() str
uses_layer_id(layer_id: LayerId) bool
add_clearance(clearance: LineClearance) None
class keysight.ads.de.tech.LineStripItem

Represents a single strip of a line type.

__init__(library: Library | None = None, layer_name: str | None = None, purpose_name: str | None = None, layer_id: LayerId | None = None) None
property strip_id: str
property default_width: float

The default width (in user units) of the layer slices.

property strip_spacing_type: LineStripSpacingType

Returns the type of spacing required between this strip and the next strip.

property strip_spacing_value: float

Returns the spacing required between this strip and the next strip.

property layer_slices: ListRefAbc[LayerSlice]

Return the collection of layer slices in this LineStripItem.

property has_multiple_slices: bool
add_layer_slice(library: Library, layer_name: str, purpose_name: str, width: float = 0.0) None

Create a LayerSlice and append it to layer_slices.

uses_layer_id(layer_id: LayerId) bool

Return True if any LayerSlice is on the given layer.

class keysight.ads.de.tech.LineTypeSimulationModel

Describes how to simulate a line type.

__init__(model_set: str = '', substrate_instance_name: str = '') None
property model_set: str
property use_single_tline_element_to_model_a_trace: bool
property autogenerate_substrate: bool
property substrate_instance_name: str
class keysight.ads.de.tech.PhysicalLayer

Represents a physical layer (one that contains shapes and figures).

__init__(unused: InvalidCall, *args, **kwargs) None

Return an error about attempts to initialize objects that don’t support initialization.

static create(tech: Tech, layer_name: str, layer_num: int) PhysicalLayer
property mask_number: int
property mfg_grid: int
property material: OAMaterial
property abbreviation: str
static is_derived(layer: Layer) TypeGuard[DerivedLayer]
static is_physical(layer: Layer) TypeGuard[PhysicalLayer]
property layer_binding: str
property library: Library
property name: str
property number: int
property process_role: ProcessRole
property tech: Tech
class keysight.ads.de.tech.Purpose
__init__(unused: InvalidCall, *args, **kwargs) None

Return an error about attempts to initialize objects that don’t support initialization.

property number: int
property name: str
property tech: Tech
property library: Library
property abbreviation: str
property purpose_type: str
property is_reserved: bool
class keysight.ads.de.tech.SmartMountSettings

Holds the settings used to configure a SmartMount pcell or the default settings for a library.

__init__(tech: Tech) None
property apply_to_all_designs: bool

True if the settings are the applied automatically to all designs in the library.

property subtype: SmartMountSubtype | None

The SmartMount subtype of the SmartMount pcell.

property mapping_option: SmartMountMappingOption

Specify mapping and alignment for the SmartMount pcell.

property alignment_type: SmartMountAlignmentType

The alignment type of the SmartMount pcell.

This is only applicable if the mapping_option is set to SmartMountMappingOption.NO_MAPPING.

property ael_function: str

The AEL function used to customize the SmartMount pcell.

property ael_parameters: str

The AEL arguments to pass to the AEL function used to customize the SmartMount pcell.

property scale_factor: float | None

Optional scale factor applied to the SmartMount pcell or to all designs in the library.

class keysight.ads.de.tech.Tech

Represents a technology database for a library.

This Tech can reference (i.e. inherit) the technology from other libraries.

__init__(unused: InvalidCall, *args, **kwargs) None

Return an error about attempts to initialize objects that don’t support initialization.

property library: Library
property referenced_lib_names: list[str]

The names of the libraries directly referenced by this Tech.

property all_tech_libs: list[Library]

Return the complete collection of tech libraries.

property default_tech_lib: Library | None
property is_modified: bool
property dbu_per_uu: int | None

The ratio of database units to user units in layout views.

property dbu_per_uu_sch: int | None

The ratio of database units to user units in schematic and symbol views.

property user_units: str | None

The name of the user units used in layout views.

property user_units_sch: str | None

The name of the user units used in schematic and symbol views.

property default_manufacturing_grid: int | None
get_default_manufacturing_grid(local: bool = False) int
property multi_tech_scale_factor: float | None

The optional scale factor for multi-technology designs.

create_layer(layer_name: str, layer_num: int) PhysicalLayer

Create a physical layer with the given name and number.

create_layer is deprecated, and will be removed in the 2025 Update 2 release. Use create_physical_layer() or PhysicalLayer.create().

create_physical_layer(layer_name: str, layer_num: int) PhysicalLayer
create_derived_layer_sizing(layer_name: str, layer_num: int, operation: LayerOp | str, layer1: Layer | str, distance: int) DerivedLayer

Create a derived layer from a single source layer, a sizing operation, and a distance parameter.

The derived layer contains all the shapes that result by performing the sizing operation on all the shapes from the source layer. The sizing operation uses the distance parameter to change the size of each shape from the source layer.

create_derived_layer_boolean(layer_name: str, layer_num: int, operation: LayerOp | str, layer1: Layer | str, layer2: Layer | str) DerivedLayer

Create a derived layer from two source layers and boolean operation.

The derived layer contains all the shapes that result by performing the boolean operation on all the shapes from the two source layers.

delete_layer(layer: str | int | Layer) None
delete_all_layers() None
find_layer(layer: int | str, local: bool = False) Layer | None
layer(layer: int | str, local: bool = False) Layer
layer_numbers(local: bool = False) list[int]

Get the numbers of all the physical layers.

layer_names(local: bool = False) list[str]

Get the names of all the physical layers.

property layers: _ReadOnlyNamedNumberedCollectionAbc[Layer]

Return the collection of layers in this Tech database.

The collection only includes Layers defined in this tech.

property all_layers: _ReadOnlyNamedNumberedCollectionAbc[Layer]

Return the complete collection of layers in this Tech database.

The collection also includes Layers from referenced technology.

create_purpose(purpose_name: str, purpose_num: int) Purpose
delete_purpose(purpose: Purpose | int | str) None
find_purpose(purpose: int | str, local: bool = False) Purpose | None
purpose(purpose: int | str, local: bool = False) Purpose
purpose_numbers(local: bool = False) list[int]

Get the numbers of all the purposes.

purpose_names(local: bool = False) list[str]

Get the names of all the purposes.

property purposes: _ReadOnlyNamedNumberedCollectionAbc[Purpose]

Return the collection of Purposes in this Tech database.

The collection only includes Purposes defined in this tech.

property all_purposes: _ReadOnlyNamedNumberedCollectionAbc[Purpose]

Return the complete collection of Purposes in this Tech database.

The collection also includes Purposes from referenced technology.

property padstacks: NamedMutableCollectionAbc[Padstack]

Return the collection of padstacks in this Tech database.

The collection only includes padstacks defined in this tech.

static get_padstack_from_lib(lib_padstack_name: str) Padstack

Return the specified Padstack.

The name must be of the form ‘lib:padstack’. Both the library and the Padstack must exist.

create_padstack(name: str) Padstack
delete_padstack(padstack: Padstack) None

Delete the padstack.

The padstack must be defined in this Tech. The padstack object will be invalid after it has been deleted.

delete_padstack is deprecated, and will be removed in the 2025 Update 2 release. del(padstacks[name]).

save_padstacks() None

Save the Padstack definitions to this Tech’s library.

property via_rules: NamedMutableCollectionAbc[ViaRule]

Return the collection of via rules in this Tech database.

The collection only includes via rules defined in this tech.

property stacked_via_rules: NamedMutableCollectionAbc[StackedViaRule]

Return the collection of stacked via rules in this Tech database.

The collection only includes stacked via rules defined in this tech.

property teardrop_rules: NamedMutableCollectionAbc[TeardropRule]

Return the collection of teardrop rules in this Tech database.

The collection only includes teardrop rules defined in this tech.

property clearance_rules: NamedMutableCollectionAbc[ClearanceRule]

Return the collection of clearance rules in this Tech database.

The collection only includes clearance rules defined in this tech.

property line_types: NamedMutableCollectionAbc[LineItem]

Return the collection of line types in this Tech database.

The collection only includes line types defined in this tech.

property layer_maps: NamedListRefAbc[LayerMap]

Return the collection of layer maps in this Tech database.

property props: NamedReadableCollectionAbc[Property]
find_prop(name: str) Property | None
save_rules() None

Save the design rules to this Tech’s library.

save_line_types() None

Save the line types to this Tech’s library.

save_layer_maps() None

Save the layer maps to this Tech’s library.

save() None

Enumerated Types

class keysight.ads.de.tech.LayerOp

Defines the type of a derived layer operation.

Members:

AND : Boolean operation

OR : Boolean operation

NOT : Boolean operation

XOR : Boolean operation

TOUCHING

BUTTONLY

USER_DEFINED : Don’t use this for a derived layer operation - use the name instead.

INSIDE

OUTSIDE

OVERLAPPING

STRADDLING

AVOIDING

BUTTING

COINCIDENT

COINCIDENT_ONLY

BUTTING_OR_COINCIDENT

BUTTING_OR_OVERLAPPING

AREA

GROW : Sizing operation

SHRINK : Sizing operation

GROW_VERTICAL : Sizing operation

GROW_HORIZONTAL : Sizing operation

SHRINK_VERTICAL : Sizing operation

SHRINK_HORIZONTAL : Sizing operation

SELECT

AND = <LayerOp.AND: 0>
AREA = <LayerOp.AREA: 18>
AVOIDING = <LayerOp.AVOIDING: 11>
BUTTING = <LayerOp.BUTTING: 12>
BUTTING_OR_COINCIDENT = <LayerOp.BUTTING_OR_COINCIDENT: 16>
BUTTING_OR_OVERLAPPING = <LayerOp.BUTTING_OR_OVERLAPPING: 17>
BUTTONLY = <LayerOp.BUTTONLY: 5>
COINCIDENT = <LayerOp.COINCIDENT: 13>
COINCIDENT_ONLY = <LayerOp.COINCIDENT_ONLY: 14>
GROW = <LayerOp.GROW: 19>
GROW_HORIZONTAL = <LayerOp.GROW_HORIZONTAL: 22>
GROW_VERTICAL = <LayerOp.GROW_VERTICAL: 21>
INSIDE = <LayerOp.INSIDE: 7>
NOT = <LayerOp.NOT: 2>
OR = <LayerOp.OR: 1>
OUTSIDE = <LayerOp.OUTSIDE: 8>
OVERLAPPING = <LayerOp.OVERLAPPING: 9>
SELECT = <LayerOp.SELECT: 25>
SHRINK = <LayerOp.SHRINK: 20>
SHRINK_HORIZONTAL = <LayerOp.SHRINK_HORIZONTAL: 24>
SHRINK_VERTICAL = <LayerOp.SHRINK_VERTICAL: 23>
STRADDLING = <LayerOp.STRADDLING: 10>
TOUCHING = <LayerOp.TOUCHING: 4>
USER_DEFINED = <LayerOp.USER_DEFINED: 6>
XOR = <LayerOp.XOR: 3>
__init__(self: keysight.ads.de._pde.tech.LayerOp, value: int) None
__new__(**kwargs)
property name
property str

Return the string used as the operation name.

property value
class keysight.ads.de.tech.LineEndType

Defines the type of ending used by a LineItem.

Members:

TRUNCATED : ‘Truncated’: The line ends are truncated.

EXTENDED : ‘Extended’: The line ends are extended.

CHAMFERED : ‘Chamfered’: The line ends are chamfered.

ROUNDED : ‘Rounded’: The line ends are rounded.

CHAMFERED = <LineEndType.CHAMFERED: 2>
EXTENDED = <LineEndType.EXTENDED: 1>
ROUNDED = <LineEndType.ROUNDED: 3>
TRUNCATED = <LineEndType.TRUNCATED: 0>
__init__(self: keysight.ads.de._pde.tech.LineEndType, value: int) None
__new__(**kwargs)
property name
property str

Return the string representation of the LineEndType.

property value
class keysight.ads.de.tech.LineCornerType

Defines the type of corner used by LineTypeInfo.

Members:

SQUARE : ‘Square’: The line has square corners.

MITERED : ‘Mitered’: The line has mitered corners - prefer ADAPTIVE_MITERED.

ADAPTIVE_MITERED : ‘AdaptiveMitered’: The line has mitered corners with consistent cut length.

CURVED : ‘Curved’: The line has curved corners with a specified radius.

ROUND : ‘Round’: The line has rounded corners.

ADAPTIVE_MITERED = <LineCornerType.ADAPTIVE_MITERED: 2>
CURVED = <LineCornerType.CURVED: 3>
MITERED = <LineCornerType.MITERED: 1>
ROUND = <LineCornerType.ROUND: 4>
SQUARE = <LineCornerType.SQUARE: 0>
__init__(self: keysight.ads.de._pde.tech.LineCornerType, value: int) None
__new__(**kwargs)
property name
property str

Return the string representation of the Line Corner Type.

property value
class keysight.ads.de.tech.LineStripSpacingType

Defines the type of spacing between line strips.

Members:

NO_SPACING : ‘NoSpacing’: The line strip items have no spacing.

EDGE_TO_EDGE : ‘EdgeToEdge’: The line strips use edge-to-edge spacing.

CENTER_LINE : ‘CenterLine’: The line strips use center-line-to-center-line spacing.

CENTER_LINE = <LineStripSpacingType.CENTER_LINE: 2>
EDGE_TO_EDGE = <LineStripSpacingType.EDGE_TO_EDGE: 1>
NO_SPACING = <LineStripSpacingType.NO_SPACING: 0>
__init__(self: keysight.ads.de._pde.tech.LineStripSpacingType, value: int) None
__new__(**kwargs)
property name
property str

Return the string representation of the LineEndType.

property value
class keysight.ads.de.tech.OAMaterial

Members:

OTHER

N_WELL

P_WELL

N_DIFF

P_DIFF

N_IMPLANT

P_IMPLANT

POLY

CUT

METAL

CONTACTLESS_METAL

DIFF

RECOGNITION

PASSIVATION_CUT

CONTACTLESS_METAL = <OAMaterial.CONTACTLESS_METAL: 10>
CUT = <OAMaterial.CUT: 8>
DIFF = <OAMaterial.DIFF: 11>
METAL = <OAMaterial.METAL: 9>
N_DIFF = <OAMaterial.N_DIFF: 3>
N_IMPLANT = <OAMaterial.N_IMPLANT: 5>
N_WELL = <OAMaterial.N_WELL: 1>
OTHER = <OAMaterial.OTHER: 0>
PASSIVATION_CUT = <OAMaterial.PASSIVATION_CUT: 13>
POLY = <OAMaterial.POLY: 7>
P_DIFF = <OAMaterial.P_DIFF: 4>
P_IMPLANT = <OAMaterial.P_IMPLANT: 6>
P_WELL = <OAMaterial.P_WELL: 2>
RECOGNITION = <OAMaterial.RECOGNITION: 12>
__init__(self: keysight.ads.de._pde.tech.OAMaterial, value: int) None
__new__(**kwargs)
property name
property str
property value
class keysight.ads.de.tech.ProcessRole
NOT_DEFINED = <ProcessRole.NOT_DEFINED: 0>
NONE = <ProcessRole.NOT_DEFINED: 0>
CONDUCTOR = <ProcessRole.CONDUCTOR: 1>
SEMICONDUCTOR = <ProcessRole.SEMICONDUCTOR: 2>
DIELECTRIC = <ProcessRole.DIELECTRIC: 3>
CONDUCTOR_VIA = <ProcessRole.CONDUCTOR_VIA: 4>
SEMICONDUCTOR_VIA = <ProcessRole.SEMICONDUCTOR_VIA: 5>
DIELECTRIC_VIA = <ProcessRole.DIELECTRIC_VIA: 6>
CONDUCTOR_SLOT = <ProcessRole.CONDUCTOR_SLOT: 7>
SEMICONDUCTOR_SLOT = <ProcessRole.SEMICONDUCTOR_SLOT: 8>
DIELECTRIC_SLOT = <ProcessRole.DIELECTRIC_SLOT: 9>
DRC = <ProcessRole.DRC: 10>
BOUNDARY = <ProcessRole.BOUNDARY: 11>
HEAT_SOURCE = <ProcessRole.HEAT_SOURCE: 12>
COMPONENT_BODY = <ProcessRole.COMPONENT_BODY: 13>
ANNOT_INSTANCE_NAME = <ProcessRole.ANNOT_INSTANCE_NAME: 15>
ANNOT_COMPONENT_NAME = <ProcessRole.ANNOT_COMPONENT_NAME: 16>
ANNOT_OTHER = <ProcessRole.ANNOT_OTHER: 17>
SOLDER_MASK = <ProcessRole.SOLDER_MASK: 18>
SOLDER_PASTE = <ProcessRole.SOLDER_PASTE: 19>
SILK_SCREEN = <ProcessRole.SILK_SCREEN: 20>
SCRATCH = <ProcessRole.SCRATCH: 21>
OTHER = <ProcessRole.OTHER: 22>
property str: str

Return the string displayed in the UI.

class keysight.ads.de.tech.SmartMountSubtype

Defines the subtype of a SmartMount PCell.

Members:

NONE : ‘None’: No subtype.

BOTTOM_MOUNT : ‘BottomMount’: The bottom metal layers of the chip are mapped to the mount layer on the module.

FLIP_CHIP : ‘FlipChip’: The top metal layers of the chip are mapped to the mount layer on the module.

CUSTOM : ‘Custom’: The mapped layers are determined by a custom function.

MULTI_MOUNT : ‘MultiMount’: The chip has multiple mount layers.

BOTTOM_MOUNT = <SmartMountSubtype.BOTTOM_MOUNT: 1>
CUSTOM = <SmartMountSubtype.CUSTOM: 3>
FLIP_CHIP = <SmartMountSubtype.FLIP_CHIP: 2>
MULTI_MOUNT = <SmartMountSubtype.MULTI_MOUNT: 4>
NONE = <SmartMountSubtype.NONE: 0>
__init__(self: keysight.ads.de._pde.tech.SmartMountSubtype, value: int) None
__new__(**kwargs)
property name
property str
property value

Functions

keysight.ads.de.tech.create_tech(lib: Library) Tech
keysight.ads.de.tech.delete_tech(lib: Library) None
On this page