RouteMeander

class RouteMeander(design, name: str | None = None, options: Dict | None = None, type: str = 'CPW', **kwargs)[source]

Implements a simple CPW, with a single meander. The base CPW meandered class.

Inherits QRoute class

QRoute Default Options:
  • pin_inputs: Dict
    • start_pin: Dict – Component and pin string pair. Define which pin to start from
      • component: ‘’ – Name of component to start from, which has a pin

      • pin: ‘’ – Name of pin used for pin_start

    • end_pin=Dict – Component and pin string pair. Define which pin to start from
      • component: ‘’ – Name of component to end on, which has a pin

      • pin: ‘’ – Name of pin used for pin_end

  • fillet: ‘0’

  • lead: Dict
    • start_straight: ‘0mm’ – Lead-in, defined as the straight segment extension from start_pin. Defaults to 0.1um.

    • end_straight: ‘0mm’ – Lead-out, defined as the straight segment extension from end_pin. Defaults to 0.1um.

    • start_jogged_extension: ‘’ – Lead-in, jogged extension of lead-in. Described as list of tuples

    • end_jogged_extension: ‘’ – Lead-out, jogged extension of lead-out. Described as list of tuples

  • total_length: ‘7mm’

  • trace_width: ‘cpw_width’ – Defines the width of the line. Defaults to ‘cpw_width’.

Default Options:
  • meander: Dict
    • spacing: ‘200um’ – Minimum spacing between adjacent meander curves. Defaults to 200um.

    • asymmetry=’0um’ – offset between the center-line of the meander and the center-line that stretches from the tip of lead-in to the x (or y) coordinate of the tip of the lead-out. Defaults to ‘0um’.

  • snap: ‘true’

  • prevent_short_edges: ‘true’

Initializes all Routes.

Calls the QComponent __init__() to create a new Metal component. Before that, it adds the variables that are needed to support routing.

Parameters:
  • design (QDesign) – The parent design.

  • name (str) – Name of the component. Auto-named if possible.

  • options (dict) – User options that will override the defaults. Defaults to None.

  • type (string) – Supports Route (single layer trace) and CPW (adds the gap around it). Defaults to “CPW”.

Attributes

RouteMeander.TOOLTIP

RouteMeander.class_name

the full module name with the class name.

RouteMeander.component_metadata

Component metadata

RouteMeander.default_options

Default options

RouteMeander.design

Return a reference to the parent design object.

RouteMeander.id

The unique id of component within a design.

RouteMeander.length

Sum of all segments length, including the head.

RouteMeander.logger

The Qiskit Metal Logger.

RouteMeander.name

Name of the component.

RouteMeander.options

A dictionary of the component-designer-defined options.

RouteMeander.pin_names

The names of the pins.

RouteMeander.qgeometry_types

Get a list of the names of the element tables.

RouteMeander.pins

Dictionary of pins.

RouteMeander.metadata

Metadata allows a designer to store extra information or analysis results.

RouteMeander.status

Stores the latest status of the component.

Methods

RouteMeander.add_dependency(parent, child)

Add a dependency between one component and another.

RouteMeander.add_pin(name, points, width[, ...])

Adds a pin from two points which are normal/tangent to the intended plane of the pin.

RouteMeander.add_qgeometry(kind, geometry[, ...])

Add QGeometry.

RouteMeander.adjust_length(delta_length, ...)

Edits meander points to redistribute the length slacks accrued with the various local adjustments It should be run after self.pts_intermediate is completely defined Inputs are however specific to the one meander segment Assumption is that pts is always a sequence of paired points, each corresponds to one meander 180deg curve The pts is typically an odd count since the last point is typically used to anchor the left-over length, therefore this code supports both odd and even cases, separately.

RouteMeander.assign_direction_to_anchor(...)

Method to assign a direction to a point.

RouteMeander.connect_components_already_in_design(...)

WARNING: Do NOT use this method during generation of component instance.

RouteMeander.connect_meandered(start_pt, end_pt)

Meanders using a fixed length and fixed spacing.

RouteMeander.del_colinear_points(inarray)

Delete colinear points from the given array.

RouteMeander.delete()

Delete the QComponent.

RouteMeander.get_index_for_side1_meander(...)

Get the indices.

RouteMeander.get_pin(name)

Interface for components to get pin data.

RouteMeander.get_points()

Assembles the list of points for the route by concatenating: head_pts + intermediate_pts, tail_pts.

RouteMeander.get_template_options(design[, ...])

Creates template options for the Metal Component class required for the class to function, based on the design template; i.e., be created, made, and rendered.

RouteMeander.get_tip()

Access the last element in the QRouteLead.

RouteMeander.get_unit_vectors(start, end[, snap])

Return the unit and target vector in which the CPW should process as its coordinate sys.

RouteMeander.issideways(point, seg_point_a, ...)

RouteMeander.length_excess_corner_rounding(points)

Computes how much length to deduce for compensating the fillet settings.

RouteMeander.make()

The make function implements the logic that creates the geometry (poly, path, etc.) from the qcomponent.options dictionary of parameters, and the adds them to the design, using qcomponent.add_qgeometry(...), adding in extra needed information, such as layer, subtract, etc.

RouteMeander.make_elements(pts)

Turns the CPW points into design elements, and add them to the design object.

RouteMeander.parse_options([options])

Parse the options, converting string into interpreted values.

RouteMeander.parse_value(value)

Parse a string, mappable (dict, Dict), iterable (list, tuple) to account for units conversion, some basic arithmetic, and design variables.

RouteMeander.populate_to_track_table_usage()

Use the element_handler to get a list of all the table names used in QGeometry.

RouteMeander.qgeometry_bounds()

Fetched the component bound dict_value.

RouteMeander.qgeometry_dict(element_type)

Returns a dict of element qgeometry (shapely geometry) of the component as a python dict, where the dict keys are the names of the qgeometry and the corresponding values are the shapely geometries.

RouteMeander.qgeometry_list([element_type])

Returns a list of element qgeometry (shapely geometry) of the component as a python list of shapely geometries.

RouteMeander.qgeometry_plot([ax, plot_kw])

Draw all the qgeometry of the component (polys and path etc.)

RouteMeander.qgeometry_table(element_type)

Returns the entire element table for the component.

RouteMeander.rebuild()

Builds the QComponent.

RouteMeander.set_lead(name)

Defines the lead_extension by adding a point to the self.head/tail.

RouteMeander.set_lead_extension(name)

Defines the jogged lead_extension by adding a series of turns to the self.head/tail.

RouteMeander.set_pin(name)

Defines the CPW pins and returns the pin coordinates and normal direction vector.

RouteMeander.to_script([thin, is_part_of_chip])

param thin:

If true then any key in the QComponent's options whose value