ExamplePDK

ExamplePDK is a DeviceLayout.jl PDK containing layer definitions, components, and rendering targets for an example process technology.

Warning

ExamplePDK is intended for demonstrations, tutorials, and tests. While we aim to demonstrate best practices for Julia code and DeviceLayout.jl usage, these components are not optimized for device performance. Most importantly: Breaking changes to ExamplePDK may occur within major versions. In other words, don't depend on ExamplePDK in your own PDK or for real devices!

Info

ExamplePDK is written to model best practices for developing your own PDK, with a small caveat about how the PDK is packaged. For the sake of convenient testing and tutorials, ExamplePDK is just a SchematicDrivenLayout submodule, and component modules are defined as submodules within ExamplePDK by including their source files. However, when you create your own PDK, we recommend making separate packages for each independent component, each of which has your PDK package as a dependency and uses its layer vocabulary. That way, you can add, edit, and version technologies and components independently. The files can be organized in a similar way within a single repository, but as separate packages registered to your private Julia package registry. Each subfolder in MyPDK/components/ would represent its own package (e.g., MyClawCapacitors.jl) with its own Project.toml specifying a version number, dependencies, and compatibility requirements. See the documentation on PDKs for more detail.

DeviceLayout.SchematicDrivenLayout.ExamplePDK.LAYER_RECORDConstant
const LAYER_RECORD

A NamedTuple mapping semantic layer name Symbols to GDS layer and datatype.

Process layers:

metal_positive   = GDSMeta(1, 1)
metal_negative   = GDSMeta(1, 2)
dielectric       = GDSMeta(2, 0)
marker           = GDSMeta(3, 0)
junction_pattern = GDSMeta(10, 0)
bridge_base      = GDSMeta(20, 0)
bridge           = GDSMeta(21, 0)
bump             = GDSMeta(30, 0)

Informational layers:

chip_area      = GDSMeta(100, 0)
writeable_area = GDSMeta(101, 0)
annotation     = GDSMeta(102, 0)

Simulation layers:

simulated_area = GDSMeta(200, 0)
port           = GDSMeta(210, 0)
lumped_element = GDSMeta(211, 0)
mesh_control   = GDSMeta(220, 0)
integration    = GDSMeta(230, 0)

See also ExamplePDK.LayerVocabulary

source

ChipTemplates

DeviceLayout.SchematicDrivenLayout.ExamplePDK.ChipTemplatesModule
module ChipTemplates

An ExamplePDK component module containing simple chips and coplanar-waveguide launchers.

ExamplePDK is intended for demonstrations, tutorials, and tests. While we aim to demonstrate best practices for Julia code and DeviceLayout.jl usage, these components are not optimized for device performance. Most importantly: breaking changes to ExamplePDK may occur within major versions.** In other words, don't depend on ExamplePDK in your own PDK or for real devices!

source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.ChipTemplates.ExampleChipType
struct ExampleChip <: Component

A Component with rectangular geometry in the CHIP_AREA layer and uniformly spaced hooks.

Parameters

  • name = "chip": Name of component
  • num_ports_lr = 12: Number of ports on the left and right edges
  • num_ports_tb = 12: Number of ports on the top and bottom edges
  • length_x = 15mm: x length of chip
  • length_y = 15mm: y length of chip
  • dx = 1mm: x spacing of ports on top and bottom
  • dy = 1mm: y spacing of ports on left and right
  • edge_gap_lr = 0.050mm: Gap between chip edge and ports on left and right
  • edge_gap_tb = 0.050mm: Gap between chip edge and ports on top and bottom

Hooks

  • port_i: Uniformly spaced around the edge of the chip with in_direction towards the edge of the chip, with i beginning at 1 at the top left and increasing clockwise
source

ClawCapacitors

DeviceLayout.SchematicDrivenLayout.ExamplePDK.ClawCapacitorsModule
module ClawCapacitors

An ExamplePDK component module containing claw capacitors for coupling coplanar waveguides in shunt and series configurations.

ExamplePDK is intended for demonstrations, tutorials, and tests. While we aim to demonstrate best practices for Julia code and DeviceLayout.jl usage, these components are not optimized for device performance. Most importantly: breaking changes to ExamplePDK may occur within major versions.** In other words, don't depend on ExamplePDK in your own PDK or for real devices!

source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.ClawCapacitors.ExampleSeriesClawCapacitorType
ExampleSeriesClawCapacitor <: Component

Series capacitor between two coplanar lines. The input forms a claw around a pad at the output.

Contains hooks p0 at the input and p1 at the output, as well as left-handed versions p0_lh and p1_lh. (When left-handed hooks are fused to right-handed hooks, an extra reflection is applied when aligning the hooks—see HandedPointHook.)

This component is intended for use in demonstrations.

                 claw_inner_gap
                  ←——→   ←——→
              ███████████████████
              ██               ██
              ██  ███████████  ██ ↑ claw_inner_gap
              ██  ███████████  ██ ↓
←input_length→██  ████ ↑ ████  ██
████████████████  ████ | ████████                                
input_style       ████ inner_cap_length  ↕ output_style.trace    
████████████████  ████ | ████████        ↕ output_style.gap        
              ██  ████ ↓ ████  ██
              ██  ███████████  ██  
              ██←→███████████  ██ 
              ██claw_width↕    ██
             ↕███████████████████
claw_outer_gap←→      ←—→ inner_cap_width

Parameters

  • name = "claw": Name of component
  • input_length = 2μm: Length of input segment
  • input_style = Paths.CPW(10μm, 6μm): Style of input path
  • inner_cap_width = 20μm: Width (short dimension, usually) of inner capacitor pad
  • inner_cap_length = 200μm: Length (long dimension) of inner capacitor pad
  • claw_inner_gap = 5μm: Gap between claw and inner pad
  • claw_width = 10μm: Width of claw metal trace
  • claw_outer_gap = 20μm: Outer gap around claw
  • output_style = Paths.CPW(10μm, 6μm): Style of output path
  • rounding = 2μm: Rounding radius applied to the capacitor

Hooks

  • p0: Input
  • p1: Output
  • p0_lh: Input (left-handed)
  • p1_lh: Output (left-handed)
source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.ClawCapacitors.ExampleShuntClawCapacitorType
ExampleShuntClawCapacitor <: Component

Similar to ExampleSeriesClawCapacitor, but the capacitor is teed off a feedline.

Contains hooks p0 at the feedline input and p1 at the feedline output, as well as p2 at the capacitively coupled output, as well as left-handed versions. (When left-handed hooks are fused to right-handed hooks, an extra reflection is applied when aligning the hooks—see HandedPointHook.)

This component is intended for use in demonstrations.

Parameters

  • name = "claw": Name of component
  • feedline_length = 300μm: Total length of feedline
  • feedline_style = Paths.CPW(10μm, 6μm): Style of feedline path
  • input_length = 20μm: Length of "input" path between edge of feedline and claw
  • input_style = Paths.CPW(10μm, 6μm): Style of "input" path
  • inner_cap_width = 20μm: Width (short dimension, usually) of inner capacitor pad
  • inner_cap_length = 200μm: Length (long dimension) of inner capacitor pad
  • claw_inner_gap = 5μm: Gap between claw and inner pad
  • claw_width = 10μm: Width of claw metal trace
  • claw_outer_gap = 20μm: Outer gap around claw
  • output_style = Paths.CPW(10μm, 6μm): Style of output path
  • rounding = 2μm: Rounding radius applied to the capacitor
  • bridge = nothing: CoordinateSystem holding the air bridge geometry for the feedline and input

Hooks

  • p0: Feedline input
  • p1: Feedline output
  • p2: Capacitively coupled output
  • p0_lh: Feedline input (left-handed)
  • p1_lh: Feedline output (left-handed)
  • p2_lh: Capacitively coupled output (left-handed)
source

ReadoutResonators

DeviceLayout.SchematicDrivenLayout.ExamplePDK.ReadoutResonatorsModule
module ReadoutResonators

An ExamplePDK component module containing resonators for transmon readout.

ExamplePDK is intended for demonstrations, tutorials, and tests. While we aim to demonstrate best practices for Julia code and DeviceLayout.jl usage, these components are not optimized for device performance. Most importantly: breaking changes to ExamplePDK may occur within major versions.** In other words, don't depend on ExamplePDK in your own PDK or for real devices!

source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.ReadoutResonators.ExampleClawedMeanderReadoutType
struct ExampleClawedMeanderReadout <: Component

Readout resonator consisting of a meander with short and claw-capacitor terminations.

This component is intended for use in demonstrations with ExampleRectangleTransmon.

Parameters

  • name: Name of component
  • style: Resonator CPW style
  • total_length: Total length of resonator
  • coupling_length: Length of coupling section
  • coupling_gap: Width of ground plane between coupling section and coupled line
  • bend_radius: Meander bend radius
  • n_meander_turns: Number of meander turns
  • total_height: Total height from top hook to bottom hook
  • hanger_length: Length of hanger section between coupling section and meander
  • w_shield: Width of claw capacitor ground plane shield
  • w_claw: Claw trace width
  • l_claw: Claw finger length
  • claw_gap: Claw capacitor gap
  • w_grasp: Width between inner edges of ground plane shield
  • bridge: CoordinateSystem containing a bridge
source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.ReadoutResonators.ExampleTappedHairpinType
ExampleTappedHairpin <: Component

A "hairpin" component with a tap and coupling capacitor before the bend and a meander after.

This component is intended for use in demonstrations.

Diagram shows positive metal path for simplicity, but the path is drawn in the METAL_NEGATIVE layer. Hooks are marked with ⋆ and an arrow in their inward direction.

                          :tap
                           ↓
                           ⋆
                           ↕ tap_cap_coupling_distance
                         █████ ↑                         ⤒
                         █████ tap_cap_length            │
                         █████ ↓                      tap_depth
                          ███  ↕ tap_cap_taper_length    │
     ←————tap_position————→█                             ↓
:p0→⋆█████████████████████████████████                   —
     ←————————straight_length————————→██
    |← ...                             ██
                                      ██
           ███████████████████████████
          |← ... total path length + assumed_extra_length = total_effective_length

Parameters

Note that when this component is created within an ExampleFilteredHairpinReadout, most of these defaults are overridden.

  • name = "res": Name of component

  • total_effective_length = 4mm: Total effective length, such that the resonant frequency occurs when this length is a quarter wavelength at that frequency (assuming some effective index)

  • assumed_extra_length = 1.0mm: Assumed extra effective length such that the physical path length plus assumed_extra_length is total_effective_length. For example, bends, bridges, and coupling capacitors may affect the effective length.

  • r_bend = 50μm: Radius of hairpin bend

  • style = Paths.CPW(10μm, 10μm): Path style

  • initial_snake = Point(0μm, 0μm): If nonzero, add an initial s-curve to this point (in the hairpin coordinate system, where the path starts from the origin pointing along the positive x-axis)

  • straight_length = 1.25μm: Length of first long straight section in hairpin

  • bridge = nothing: CoordinateSystem holding the air bridge geometry

  • Parameters for tap and coupling capacitor to other resonator

    • tap_position = 0.7mm: Position of tap along initial straight segment
    • tap_location = -1: Side of hairpin for tap (+1 for right-hand side starting from qubit)
    • tap_depth = 35μm: Distance from center of hairpin CPW to end of coupling capacitor
    • tap_style = Paths.CPW(5μm, 25μm): Style of tap path
    • tap_cap_taper_length = 5μm: Length of taper from tap_style to tap_cap_style
    • tap_cap_length = 10μm: Length of capacitive pad after taper
    • tap_cap_style = Paths.CPW(25μm, 15μm): Width and gap-width of coupling capacitor as a CPW style
    • tap_cap_termination_gap = 5μm: Gap between coupling capacitor metal and ground in the direction of coupling
    • tap_cap_coupling_distance = 7.5μm: Distance from end of capacitor metal to :tap hook

Hooks

  • p0: Start of hairpin path
  • tap: Distance tap_cap_coupling_distance away from the end of the tap capacitor metal, with in_direction pointing back towards the hairpin
source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.ReadoutResonators.ExampleFilteredHairpinReadoutType
ExampleFilteredHairpinReadout <: CompositeComponent

A pair of hairpin meanders to be used together with a transmon for Purcell-filtered readout.

This component is intended for use in demonstrations with ExampleStarTransmon.

Subcomponents

  1. claw, an ExampleShuntClawCapacitor
  2. efp ("extra filter path"), a Path inserted between the claw and Purcell hairpin
  3. purcell, an ExampleTappedHairpin used for the Purcell filter
  4. readout, an ExampleTappedHairpin used for the readout resonator

Parameters

ExampleFilteredHairpinReadout mostly passes parameters directly to subcomponents.

  • name = "readout": Name of component

  • Feedline, tap, and claw capacitor (see ExampleShuntClawCapacitor)

    • feedline_length = 300μm
    • feedline_style = Paths.CPW(10μm, 6μm)
    • feedline_tap_length = 20μm
    • feedline_tap_style = Paths.CPW(10μm, 6μm)
    • feedline_bridge = nothing
    • inner_cap_width = 20μm
    • inner_cap_length = 200μm
    • claw_inner_gap = 5μm
    • claw_width = 10μm
    • claw_outer_gap = 20μm
    • rounding = 2μm
  • Extra claw-to-filter path

    • extra_filter_l1 = 300μm: Initial straight length
    • extra_filter_θ1 = 0°: Bend angle following initial straight
    • extra_filter_l2 = 0μm: Straight length following first bend
    • extra_filter_θ2 = 0°: Second bend following second straight
  • Resonators (see ExampleTappedHairpin)

    • resonator_style = Paths.CPW(10μm, 10μm)
    • r_bend = 50μm
    • straight_length = 1.5mm # Long straight segment
    • filter_total_effective_length = 4mm
    • filter_assumed_extra_length = 1.0mm
    • readout_total_effective_length = 4mm
    • readout_assumed_extra_length = 1.0mm
    • readout_initial_snake = Point(600μm, 200μm)
  • Parameters for tap and coupling capacitor between resonators

    • tap_position = 0.77mm: Position of tap along initial straight segment
    • tap_location = -1: Side of hairpin for tap (+1 for right-hand side starting from qubit)
    • hairpin_tap_depth = 35μm: Distance from center of hairpin CPW to end of coupling capacitor
    • hairpin_tap_style = Paths.CPW(5μm, 25μm): Style of hairpin tap path
    • tap_cap_taper_length = 5μm: Length of taper from tap_style to tap_cap_style
    • tap_cap_length = 10μm: Length of capacitive pad after taper
    • tap_cap_style = Paths.CPW(25μm, 15μm): Width and gap-width of coupling capacitor as a CPW style
    • tap_cap_termination_gap = 5μm: Gap between coupling capacitor metal and ground in the direction of coupling
    • tap_cap_coupling_distance = 7.5μm: Distance from end of capacitor metal to :tap hook

Hooks

- `p0`: Input of the readout feedline
- `p1`: Output of the readout feedline    # Feedline and tap
- `qubit`: End of the readout hairpin that connects galvanically to a capacitive pad in a qubit component
source

SimpleJunctions

DeviceLayout.SchematicDrivenLayout.ExamplePDK.SimpleJunctionsModule
module SimpleJunctions

An ExamplePDK component module containing simple placeholder Josephson junctions and SQUIDs.

ExamplePDK is intended for demonstrations, tutorials, and tests. While we aim to demonstrate best practices for Julia code and DeviceLayout.jl usage, these components are not optimized for device performance. Most importantly: breaking changes to ExamplePDK may occur within major versions.** In other words, don't depend on ExamplePDK in your own PDK or for real devices!

source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.SimpleJunctions.ExampleSimpleJunctionType
ExampleSimpleJunction <: Component

An example Josephson junction component with placeholder artwork.

This example component showcases that you can draw different geometry for different rendering targets. Junctions are often defined using double-angle evaporation, resulting in a physical metal pattern distinct from the geometry used for lithography. While it's possible to calculate that metal pattern based on process parameters like resist thicknesses and deposition angles, in this case, we take a shortcut and just define different rectangles for "artwork" and "simulation" which will be used or ignored based on rendering options.

The "artwork" geometry contains an unrealistic placeholder pattern in a single JUNCTIONPATTERN layer. The "simulation" geometry adds METALPOSITIVE rectangles representing junction leads, connected by a LUMPED_ELEMENT rectangle.

 :island hook
    ↓    
    ⋆           —
    █           ↑  
    █           │
    █           │
    ▒↕ h_jj     h_ground_island
    █           │
   →█← w_jj     │
    █           ↓
    ⋆           —
    ↑    
 :ground hook

Parameters

  • name = "junction": Name of component
  • w_jj = 1μm: Width of JJ and lead
  • h_jj = 1μm: Height of JJ port rectangle / gap between leads
  • h_ground_island = 20μm: Total JJ ground-to-island height
  • h_excess = 2μm: Additional JJ lead height overlapping each of ground and island

Hooks

  • island: Hook where the "top" (in JJ coordinate system) JJ lead should meet the island, inward direction pointing down
  • ground: Hook where the "bottom" JJ lead should meet ground, inward direction pointing up
source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.SimpleJunctions.ExampleSimpleSQUIDType
ExampleSimpleSQUID <: CompositeComponent

An example SQUID consisting of two ExampleSimpleJunctions.

The "artwork" geometry contains an unrealistic placeholder pattern in a single JUNCTIONPATTERN layer. The "simulation" geometry adds METALPOSITIVE rectangles representing junction leads, connected by a LUMPED_ELEMENT rectangle.

  :island hook
     ↓    
     ⋆                —
█         █           ↑
█         █           │
█         █           │
▒         ▒↕ h_jj     h_ground_island
█         █           │
█        →█← w_jj     │
█         █           ↓
     ⋆                —
     ↑
     :ground hook

Parameters

  • name = "squid": Name of component
  • jj_templates = (ExampleSimpleJunction(), ExampleSimpleJunction()): Templates for left and right (in the SQUID coordinate system) JJs, respectively, used to specify parameters not overridden by the SQUID
  • h_ground_island = 20μm: Total JJ ground-to-island height
  • h_excess = 2μm: Additional JJ lead height overlapping each of ground and island
  • w_squid: Distance between left and right JJs

Hooks

  • island: Hook at the center of the "top" (in SQUID coordinate system) edge of the SQUID loop meant to coincide with the edge of the island metal, inward direction pointing down
source

Transmons

DeviceLayout.SchematicDrivenLayout.ExamplePDK.TransmonsModule
module Transmons

An ExamplePDK component module containing simple transmons and associated elements like static couplers and control lines.

ExamplePDK is intended for demonstrations, tutorials, and tests. While we aim to demonstrate best practices for Julia code and DeviceLayout.jl usage, these components are not optimized for device performance. Most importantly: breaking changes to ExamplePDK may occur within major versions.** In other words, don't depend on ExamplePDK in your own PDK or for real devices!

source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.Transmons.ExampleRectangleTransmonType
struct ExampleRectangleTransmon <: CompositeComponent
ExampleRectangleTransmon(base_parameters::NamedTuple=default_parameters(ExampleRectangleTransmon);
    kwargs...)

Transmon component with a rectangular island acting as a shunt capacitor across a junction or SQUID.

Parameters

  • name = "island": Name of component
  • jj_template = ExampleSimpleJunction(): Template to generate JJ or SQUID, where name and h_ground_island will be overridden
  • cap_width = 24μm: The width of the rectangular island
  • cap_length = 520μm: The length of the rectangular island
  • cap_gap = 30μm: The gap surrounding the rectangular island, except the side with the junction/SQUID
  • junction_gap = 12μm: The gap on the side of the island where the junction/SQUID will go
  • junction_pos = :bottom: Location to place junction/SQUID (options :top or :bottom)
  • island_rounding = 0µm: Optional rounding radius to apply to the island; if zero, no rounding is applied to the island
source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.Transmons.ExampleRectangleIslandType
ExampleRectangleIsland <: Component

Example transmon capacitor consisting of a rectangle.

The transmon island is a rectangle with surrounding gap and optional rounding.

Parameters

Note that when this component is created within an ExampleRectangleTransmon, these defaults are overwritten.

  • name = "island": Name of component
  • cap_width = 24μm: The width of the rectangular island
  • cap_length = 520μm: The length of the rectangular island
  • cap_gap = 30μm: The gap surrounding the rectangular island, except the side with the junction/SQUID
  • junction_gap = 12μm: The gap on the side of the island where the junction/SQUID will go
  • junction_pos = :bottom: Location to place junction/SQUID (options :top or :bottom)
  • island_rounding = 0µm: Optional rounding radius to apply to the island; if zero, no rounding is applied to the island

Hooks

  • junction: Attachment point where junction leads meet the island
  • readout: Claw attachment point for the readout resonator, opposite the junction_pos.
  • xy: Attachment point for the XY line (left side, midpoint of island)
  • z: Attachment point for the Z line
source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.Transmons.ExampleStarTransmonType
ExampleStarTransmon <: CompositeComponent

Example transmon component with five capacitive couplers and control lines.

The transmon island is a five-pointed star ⋆ with truncated tips. A Josephson junction subcomponent connects the top of the star (in the default orientation) to ground. Five wedge-shaped capacitive coupling pads fill the gaps between star arms. Four of them extend in the cardinal directions to half of the lattice_spacing from the island's center, while the other extends at an angle to couple to a readout resonator. XY and Z control line terminations are also included.

This component is intended for use in demonstrations.

Parameters

  • name = "transmon": Name of component
  • island_outer_radius = 135μm: Radius of island at the tips of the star
  • island_inner_radius = [80, 80, 80, 80, 80]μm: Radii of island between the tips of stars, clockwise from 12 o'clock (smaller radius produces a larger coupler pad at that location; index 5 is the coupler to the readout resonator)
  • island_ground_gap = 15μm: Gap between island (tips of star) and ground
  • island_coupler_gap = 15μm: Gap between island and couplers
  • star_tip_width = 50μm: Width of star tips
  • rounding = 5μm: Rounding applied to ground plane geometry
  • jj_template = ExampleSimpleSQUID(): Template to generate JJ or SQUID, where name and h_ground_island will be overridden
  • lattice_spacing = 1.65mm: Spacing between transmons (determines coupler length)
  • right_handed = true: If false, is reflected when attached to right-handed transmons
  • coupler_style = Paths.CPW(10μm, 10μm): Path style for couplers
  • resonator_style = Paths.CPW(10μm, 10μm): Path style for readout resonator (coupler index 5 includes a taper from coupler_style to resonator_style)
  • grounded_couplers = Int[]: List of grounded coupler indices (1 to 5, clockwise from 12 o'clock)
  • coupler_bridge = nothing: CoordinateSystem holding a bridge to place over couplers
  • feedline_style = Paths.CPW(10μm, 6μm): XY/Z control feedline style (before taper)
  • xy_length = 100μm: Straight length of XY line before termination
  • xy_style = Paths.CPW(3.3μm, 2μm): XY control line style after taper (near the qubit)
  • xy_distance = 50μm: Distance from XY termination to ground plane edge near qubit
  • z_length = 100μm: Straight length of Z line before termination
  • z_style = Paths.CPW(3.3μm, 2μm): Style of the Z line after taper (near the qubit)
  • z_cut_offset = 0μm: Offset of z cut relative to SQUID axis of symmetry
  • z_cut_length = 16μm: Length of cut defining a return current path shared by the SQUID loop
  • z_distance = 2μm: Distance from edge of ground plane cut to qubit
  • control_bridge = nothing: CoordinateSystem holding a bridge to place over control lines

Hooks

  • origin: Center of transmon island, with inward direction pointing right
  • readout: Readout coupler
  • coupler_{N,E,S,W}: North/South/East/West (in transmon coordinate system)
  • xy: End of XY line to be connected to control feedline
  • z: End of Z line to be connected to control feedline
source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.Transmons.ExampleStarIslandType
ExampleStarIsland <: Component

Example transmon capacitor with five capacitive couplers.

The transmon island is a five-pointed star with truncated tips. Five wedge-shaped capacitive coupling pads fill the gaps between star arms.

Parameters

Note that when this component is created within an ExampleStarTransmon, these defaults are overridden.

  • name = "island": Name of component
  • island_outer_radius = 135μm: Radius of island at the tips of the star
  • island_inner_radius = [80, 80, 80, 80, 80]μm: Radii of island between the tips of stars, clockwise from 12 o'clock (smaller radius produces a larger coupler pad at that location)
  • island_ground_gap = 15μm: Gap between island (tips of star) and ground
  • island_coupler_gap = 15μm: Gap between island and couplers
  • star_tip_width = 50μm: Width of star tips
  • coupler_style = Paths.CPW(10μm, 10μm): Path style for couplers
  • rounding = 5μm: Rounding applied to ground plane geometry

Hooks

  • coupler_i, for i from 1 to 5: Interface point for coupler, clockwise from 12 o'clock, inward direction pointing back towards island
  • junction: Edge of star tip 1 that connects to junction or SQUID, inward direction pointing down
  • origin: Center of star, with inward direction pointing right
  • xy: Edge of ground plane opposite star tip 5, inward direction pointing right
  • z: Edge of ground plane opposite star tip 5, inward direction pointing down
source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.Transmons.ExampleXYTerminationType
ExampleXYTermination

Component for terminating a coplanar waveguide with an open for driving a qubit via weak capacitive coupling.

Contains a taper to the desired CPW dimensions and an optional s-curve for floorplanning convenience.

Parameters

  • name = "xyterm": Name of component
  • xy_length = 100μm: Straight length of XY line before termination
  • xy_style = Paths.CPW(3.3μm, 2μm): XY control line style after taper (near the qubit)
  • xy_snake = Point(350μm, -100μm): If nonzero, add an s-curve to this point before the final xy_length straight section before terimation (in the component coordinate system, where the path starts with feedline_style from the origin pointing along the positive x-axis)
  • xy_distance = 50μm: Distance from XY termination to ground plane edge near qubit
  • taper_length = 100μm: Length of taper from feedline_style to xy_style
  • feedline_style = Paths.CPW(10μm, 6μm): Initial style before taper towards qubit
  • bridge = nothing: CoordinateSystem holding the air bridge geometry
  • bridge_spacing = 100μm: Spacing of bridges on the line
  • last_bridge = 50μm: Distance from the last bridge to the end of the line

Hooks

  • line: Input to be connected to a feedline
  • qubit: Distance xy_distance beyond the edge of the termination, with inward direction back towards the XY line
source
DeviceLayout.SchematicDrivenLayout.ExamplePDK.Transmons.ExampleZTerminationType
ExampleZTermination <: Component

Component for terminating a coplanar waveguide with an asymmetric short, as to apply flux bias to a SQUID.

Contains a taper to the desired CPW dimensions and an optional bend for floorplanning convenience.

This component is intended for use in demonstrations.

Example (hooks marked with ⋆ and an arrow in their inward direction):

                  ██   (+z_cut_length + z_cut_offset) / 2 ⤒
                  ██
     z_style.gap →██←
                  ██
      ██████████████
:line→⋆  z_style  ██|←z_distance→|⋆←:qubit              0 —
      ██████████  ██
      ←z_length→  ██
                  ██
                  ██   (-z_cut_length + z_cut_offset) / 2 ⤓

Parameters

Note that when this component is created within an ExampleStarTransmon, most of these defaults are overridden.

  • name = "zterm": Name of component
  • z_length = 100μm: Straight length of Z line before termination
  • z_style = Paths.CPW(3.3μm, 2μm): Style of the Z line near the qubit
  • z_cut_offset = 0μm: Offset of z cut relative to SQUID axis of symmetry
  • z_cut_length = 16μm: Length of cut defining a return current path shared by the SQUID loop
  • z_distance = 2μm: Distance from edge of ground plane cut to qubit
  • z_bend_angle = -45°: Angle of bend in Z line (moving towards the qubit)
  • z_bend_radius = 140μm: Radius of bend in Z line
  • taper_length = 100μm: Length of taper from feedline_style to z_style
  • feedline_style = Paths.CPW(10μm, 6μm): Initial style before taper towards qubit
  • bridge = nothing: CoordinateSystem holding the air bridge geometry
  • bridge_spacing = 30μm: Spacing of bridges on the line
  • last_bridge = 20μm: Distance from the last bridge to the end of the line

Hooks

  • line: Input to be connected to a feedline
  • qubit: Distance z_distance beyond the edge of the ground plane cut, with inward direction back towards the Z line
source