TemplatedWaveguideBundle

class picazzo3.wg.bundle.cell.TemplatedWaveguideBundle(*args, **kwargs)

Waveguide bundle based on a list of Trace templates.

Parameters:

trace_templates: list

templates to use for each of the traces

name:

The unique name of the pcell

Other Parameters:
 

traces: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked

the traces in this bundle

Views

Layout
Parameters:

view_name: str and ( Alphanumeric string or Contains _$ )

The name of the view

shapes: list and List with type restriction, allowed types: <class ‘ipkiss.geometry.shape.Shape’>

shapes of the traces

area_layer_on: ( bool, bool_, bool or int )

When True, the entire bundle area will be covered by all the cover layers.

trace_transformations: list and List with type restriction, allowed types: <class ‘ipkiss.geometry.transform.Transform’>

transformations to be applied to each of the traces

cover_layers: List with type restriction, allowed types: <class ‘ipkiss.primitives.layer.Layer’>

layers that can be used to generate additional coverage of the trace (e.g. manhattan corners)

Examples

from technologies import silicon_photonics
import ipkiss3.all as i3
from picazzo3.wg.bundle import TemplatedWaveguideBundle
from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate
wg_t = WireWaveguideTemplate()
wg_t.Layout(core_width=0.550,
            cladding_width=i3.TECH.WG.CLADDING_WIDTH,
            core_process=i3.TECH.PROCESS.WG)
shape=i3.Shape([(0.0,0.0), (20.0, 5.0)])
trace_tfs = [i3.Translation(translation=(0.0,10.0*i)) for i in range(5)]
C = TemplatedWaveguideBundle(trace_templates=[wg_t]*5)
lay = C.Layout(trace_transformations=trace_tfs,
               shapes=[shape]*5)
lay.visualize(annotate=True)
../../../../_images/picazzo3-wg-bundle-cell-TemplatedWaveguideBundle-1.png
from technologies import silicon_photonics
import ipkiss3.all as i3
from picazzo3.wg.bundle import TemplatedWaveguideBundle
from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate
wg_t = WireWaveguideTemplate()
wg_t.Layout(core_width=0.550,
            cladding_width=i3.TECH.WG.CLADDING_WIDTH,
            core_process=i3.TECH.PROCESS.WG)
shapes=[i3.Shape([(0.0,0.0), (20.0+2*i, 5.0+2*i)]) for i in range(5)]
trace_tfs = [i3.Translation(translation=(0.0,10.0*i)) for i in range(5)]
C = TemplatedWaveguideBundle(trace_templates=[wg_t]*5)
lay = C.Layout(trace_transformations=trace_tfs,
               shapes=shapes)
lay.visualize(annotate=True)
../../../../_images/picazzo3-wg-bundle-cell-TemplatedWaveguideBundle-2.png