kqcircuits.chips.chip

class kqcircuits.chips.chip.Chip[source]

Bases: kqcircuits.elements.element.Element

Base PCell declaration for chips.

Produces labels in pixel corners, dicing edge, markers and optionally grid for all chip faces. Contains methods for producing launchers in face 0 and connectors between faces 0 and 1.

LIBRARY_NAME = 'Chip Library'
LIBRARY_DESCRIPTION = 'Superconducting quantum circuit library for chips.'
LIBRARY_PATH = 'chips'
display_text_impl()[source]

default implementation

can_create_from_shape_impl()[source]

default implementation

parameters_from_shape_impl()[source]

default implementation

transformation_from_shape_impl()[source]

default implementation

static get_launcher_assignments(chip_cell)[source]

Returns a dictionary of launcher assignments (port_id: launcher_id) for the chip.

Parameters

chip_cell – Cell object of the chip

produce_junction_tests(squid_type='Manhattan')[source]

Produces junction test pads in the chip.

Parameters

squid_type – A string defining the type of SQUIDs used in the test pads.

produce_opt_lit_tests()[source]

Produces optical lithography test stripes at chip corners.

produce_ground_grid()[source]

Produces ground grid on all faces with ChipFrames.

This method is called in build(). Override this method to produce a different set of chip frames.

produce_ground_on_face_grid(box, face_id)[source]

Produces ground grid in the given face of the chip.

Parameters
  • box – pya.DBox within which the grid is created

  • face_id (int) – ID of the face where the grid is created

produce_frame(frame_parameters, trans=<klayout.dbcore.DTrans object>)[source]

Produces a chip frame and markers for the given face.

Parameters
  • frame_parameters – PCell parameters for the chip frame

  • trans – DTrans for the chip frame, default=pya.DTrans()

merge_layout_layers_on_face(face, tolerance=0.004)[source]

Creates “base_metal_gap” layer on given face.

The layer shape is combination of three layers using subtract (-) and insert (+) operations:

“base_metal_gap” = “base_metal_gap_wo_grid” - “base_metal_addition” + “ground_grid”

Parameters
  • face – face dictionary containing layer names as keys and layer info objects as values

  • tolerance – gap length to be ignored while merging (µm)

merge_layout_layers()[source]

Creates “base_metal_gap” layers on all faces.

The layer shape is combination of three layers using subtract (-) and insert (+) operations:

“base_metal_gap” = “base_metal_gap_wo_grid” - “base_metal_addition” + “ground_grid”

This method is called in build(). Override this method to produce a different set of chip frames.

produce_structures()[source]

Produces chip frame and possibly other structures before the ground grid.

This method is called in build(). Override this method to produce a different set of chip frames.

get_box(face=0)[source]

Get the chip frame box for the specified face, correctly resolving defaults.

Parameters

face – Integer specifying face, default 0

Returns: pya.DBox box for the specified face

get_ground_bump_locations(bump_box)[source]

Define the locations for a grid. This method returns the full grid.

Parameters

bump_box – DBox specifying the region that should be filled with ground bumps

Returns: list of DPoint coordinates where a ground bump can be placed

post_build()[source]

Child classes re-define this method for post-build operations

produce_launchers(sampleholder_type, launcher_assignments=None, enabled=None)[source]

Produces launchers for typical sample holders and sets chip size (self.box) accordingly.

This is a wrapper around produce_n_launchers() to generate typical launcher configurations.

Parameters
  • sampleholder_type – name of the sample holder type

  • launcher_assignments – dictionary of (port_id: name) that assigns a name to some of the launchers

  • enabled – list of enabled launchers, empty means all

Returns

launchers as a dictionary {name: (point, heading, distance from chip edge)}

produce_n_launchers(n, launcher_type, launcher_width, launcher_gap, launcher_indent, pad_pitch, launcher_assignments=None, enabled=None, chip_box=None)[source]

Produces n launchers at default locations and optionally changes the chip size.

Launcher pads are equally distributed around the chip. This may be overridden by specifying the number of pads desired per chip side if n is an array of 4 numbers.

Pads not in launcher_assignments are disabled by default. The enabled argument may override this. If neither argument is defined then all pads are enabled with default names.

Parameters
  • n – number of launcher pads or an array of pad numbers per side

  • launcher_type – type of the launchers, “RF” or “DC”

  • launcher_width – width of the launchers

  • launcher_gap – pad to ground gap of the launchers

  • launcher_indent – distance between the chip edge and pad port

  • pad_pitch – distance between pad centers

  • launcher_assignments – dictionary of (port_id: name) that assigns a name to some of the launchers

  • enabled – optional list of enabled launchers

  • chip_box – optionally changes the chip size (self.box)

Returns

launchers as a dictionary {name: (point, heading, distance from chip edge)}

make_grid_locations(box, delta_x=100, delta_y=100)[source]

Define the locations for a grid. This method returns the full grid.

Parameters
  • box – DBox specifying a region for a grid

  • delta_x – Int or float specifying the grid separation along the x dimension

  • delta_y – Int or float specifying the grid separation along the y dimension

Returns: list of DPoint coordinates for the grid.

get_ground_tsv_locations(tsv_box)[source]

Define the locations for a grid. This method returns the full grid.

Parameters

box – DBox specifying the region that should be filled with TSVs

Returns: list of DPoint coordinates where a ground bump can be placed

PCell parameters:

  • with_grid (Boolean) - Make ground plane grid, default=False

  • merge_base_metal_gap (Boolean) - Merge grid and other gaps into base_metal_gap layer, default=False

  • a_capped (Double) - Width of center conductor in the capped region (μm), default=10, unit=μm

  • b_capped (Double) - Width of gap in the capped region , default=10, unit=μm

  • with_gnd_tsvs (Boolean) - Make ground TSVs, default=False

  • tsv_grid_spacing (Double) - TSV grid distance (center to center), default=300, unit=μm

  • tsv_edge_to_tsv_edge_separation (Double) - Ground TSV clearance to manually placed TSVs (edge to edge), default=250, unit=μm

  • tsv_edge_to_nearest_element (Double) - Ground TSV clearance to other elements (edge to edge), default=100, unit=μm

  • edge_from_tsv (Double) - Ground TSV center clearance to chip edge, default=550, unit=μm

  • with_face1_gnd_tsvs (Boolean) - Make ground TSVs on the top face, default=False

  • with_gnd_bumps (Boolean) - Make ground bumps, default=False

  • bump_grid_spacing (Double) - Bump grid distance (center to center), default=120, unit=μm

  • bump_edge_to_bump_edge_separation (Double) - In bump clearance to manually placed Bumps (edge to edge), default=95, unit=μm

  • edge_from_bump (Double) - Spacing between bump and chip edge, default=550, unit=μm

  • frames_enabled (List) - List of face ids (integers) for which a ChipFrame is drawn, default=[0]

  • frames_marker_dist (List) - Marker distance from edge for each chip frame, default=[1500, 1000], unit=[μm]

  • frames_diagonal_squares (List) - Number of diagonal marker squares for each chip frame, default=[10, 2]

  • frames_mirrored (List) - List of booleans specifying if the frame is mirrored for each chip frame, default=[False, True]

  • face_boxes (Shape) - List of chip frame sizes (type DBox) for each face. None uses the chips box parameter., default=[None, <klayout.dbcore.DBox object at 0x7f06194ece50>]

  • dice_width (Double) - Dicing width, default=200, unit=μm

  • dice_grid_margin (Double) - Margin of the ground grid avoidance layer for dicing edge, default=100

  • name_mask (String) - Name of the mask, default=M99

  • name_chip (String) - Name of the chip, default=CTest

  • name_copy (String) - Name of the copy, default=None

  • name_brand (String) - Name of the brand, default=IQM

  • marker_types (List) - Marker type for each chip corner, clockwise starting from lower left, default=['Marker Standard', 'Marker Standard', 'Marker Standard', 'Marker Standard', 'Marker Standard', 'Marker Standard', 'Marker Standard', 'Marker Standard']

  • box (Shape) - Bounding box of the chip frame, default=(0,0;10000,10000)

  • connector_type (String) - Connector type, default=Coax, choices=['Single', 'GSG', 'Coax']

../_images/kqcircuits.chips.chip.png