CircleCaterpillar.add_pin¶
- CircleCaterpillar.add_pin(name: str, points: ndarray, width: float, input_as_norm: bool = False, chip: str | None = None, gap: float | None = None)¶
Adds a pin from two points which are normal/tangent to the intended plane of the pin. The normal should ‘point’ in the direction of intended connection. Adds the new pin as a subdictionary to parent component’s pins dictionary.
- Parameters:
name (*) – name of the pin
points (*) – [[x1,y1],[x2,y2]] for the normal/tangent line
width (*) – the width of the intended connection (eg. qubit bus pad arm)
input_as_norm (*) – Indicates if the points are tangent or normal to the pin plane. Defaults to False.. Make True for normal.
parent (*) – The id of the parent component.
chip (*) – the name of the chip the pin is located on. Defaults to None, which is
self.options.chip. (converted to)
gap (*) – the dielectric gap of the pin for the purpose of representing as a port for simulations. Defaults to None which is converted to 0.6 * width.
- Dictionary containing pins information:
points (numpy.ndarray) - two (x,y) points which represent the edge of the pin for another component to attach to (eg. the edge of a CPW TL)
middle (numpy.ndarray) - an (x,y) which represents the middle of the points above, where the pin is represented.
normal (numpy.ndarray) - the normal vector of the pin, pointing in direction of intended connection
tangent (numpy.ndarray) - 90 degree rotation of normal vector
width (float) - the width of the pin
chip (str) - the chip the pin is on
parent_name - the id of the parent component
net_id - net_id of the pin if connected to another pin. Defaults to 0, indicates not connected))
* = pin . = outline of component
—> = the list being passed in as ‘points’ [[x1,y1],[x2,y2]]
normal vector
.......... . --------->* . ..........
tangent vector
..........^ .| .* .| ..........|