- class kqcircuits.masks.mask_layout.MaskLayout(layout, name, version, with_grid, chips_map, face_id, **kwargs)¶
Class representing the mask for a certain face.
A MaskLayout is used to create the cells for the mask.
pya.Layout for this mask
Name of the mask
Boolean determining if ground grid is generated
face_id of this mask layout, “1t1” | “2b1” | “2t1”
dictionary of layers with mask label postfix for mask label and mask covered region creation
list of layers in layers_to_mask for which mask covered region is not created
List of lists (2D-array) of strings, each string is a chip name (or — for no chip)
optional exact point of placement, an (x, y) coordinate tuple. By default the mask is centered.
Dictionary where keys are chip names, values are chip cells
Wafer center as a pya.DVector
Offset to make chips_map centered on wafer
length of flat edge at the top of the wafer
length of flat edge at the bottom of the wafer
Dicing width for this mask layout
Text margin for this mask layout
side width of the chips (assuming square chips)
minimum clearance of outer chips from the edge of the mask
Offset (pya.DVector) from chip origin of the chip frame boxes for this face
DTrans applied to all chips
(DEPRECATED) mask name label offset from default position (DPoint)
text scaling factor for mask name label (float)
margin around the mask name that determines the box size around the name (float)
text scaling factor for graphical representation layer (float)
dictionary of all markers to be placed and kwargs to determine their position (dict)
offset of mask markers from wafer center in horizontal and vertical directions (float)
list of layer names (without face_ids) to be exported as individual mask .oas files
list of layer names (without face_ids) for which we want to calculate the coverage density
list of submasks, each element is a tuple (submask mask_layout, submask position)
extra string used to create unique name for mask layouts with the same face_id
List of tuples (name, position, trans, position_label) for chips placed outside chips_map trans is an optional transformation to use in place of self.chip_trans position_label is an optional string that overrides the automatic chip position label in the mask grid
Top cell of this mask layout
List of (chip name, chip position, chip bounding box, chip dtrans, position_label) populated by chips added during build()
- add_chips_map(chips_map, align=None, align_to=None, chip_size=None)¶
Add additional chip maps to the main chip map.
The specified extra chip map, a.k.a. sub-grid, will be attached to the main grid. It may use different chip size than the main grid. For convenience left and rigtht sub-grids will be rotated 90 degrees clockwise.
chips_map – List of lists (2D-array) of strings, each string is a chip name (or — for no chip)
align – to what side of the main grid this sub-grid attaches. Allowed values: top, left, right and bottom.
align_to – optional exact point of placement. (x, y) coordinate tuple
chip_size – a different chip size may be used in each sub-grid
Builds the cell hierarchy for this mask layout.
Inserts cells copied from chips_map_legend to self.top_cell at positions determined by self.chips_map. The copied cells are modified to only have layers corresponding to self.face_id, and they are translated and/or mirrored correctly based on self.face_id. Also inserts cells for mask markers, mask name label, and the circular area covered by the mask.
chips_map_legend – Dictionary where keys are chip names, values are chip cells
- insert_chip_copy_labels(labels_cell, layers)¶
Inserts chip copy labels to all chips in this mask layout and its submasks
labels_cell – Cell to which the labels are inserted
layers – list of layer names (without face_ids) where the labels are produced
Returns the face dictionary for this mask layout