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)
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)
-