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'¶
- 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(junction_type='Manhattan')[source]¶
Produces junction test pads in the chip.
- Parameters
junction_type – A string defining the type of junction used in the test pads.
- 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=r0 0, 0)[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
- produce_launchers(sampleholder_type, launcher_assignments=None, enabled=None, face_id=0)[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
face_id – index of face_ids in which to insert the launchers
- 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, port_id_remap=None, launcher_frame_gap=None, enabled=None, chip_box=None, face_id=0)[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. Theenabled
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_frame_gap – gap of the launcher pad at the frame
launcher_assignments – dictionary of (port_id: name) that assigns a name to some of the launchers
port_id_remap – by default, left-most top edge launcher has port_id set to 1 and port_ids increment for other launchers in clockwise order. port_id_remap is a dictionary [1..n] -> [1..n] such that for port_id_remap[x] = y, x is the port_id of the launcher in default order and y is the port_id of that launcher in your desired order. For example, to flip the launcher order by chip’s y-axis, set port_id_remap to
{i+1: ((n - i + n/4-1) % n) + 1 for i in range(n)}
enabled – optional list of enabled launchers
chip_box – optionally changes the chip size (
self.box
)face_id – index of face_ids in which to insert the launchers
- 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.
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]
frames_dice_width (List) - Dicing street width for each chip frame, default=
[200, 140]
, unit=[μm]
face_boxes (Shape) - List of chip frame sizes (type DBox) for each face. None uses the chips box parameter., default=
[None, (1500,1500;8500,8500)]
dice_grid_margin (Double) - Margin of the ground grid avoidance layer for dicing edge, default=
100
name_mask (String) - Name of the mask, default=
M000
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']
tsv_elliptical_width (Double) - TSV elliptical width, default=
30
, unit=μm
tsv_type (String) - TSV type, default=
Tsv Standard
, choices=['Tsv Standard', 'Tsv Ellipse']
tsv_diameter (Double) - TSV diameter, default=
100
, unit=μm
