WaveguideBundle

class picazzo3.wg.bundle.cell.WaveguideBundle

Bundle of waveguides, routed together

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

the traces in this bundle

name: String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters

The unique name of the pcell

Views

class Layout
Parameters:
area_layer_on: ( 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)

view_name: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3.

The name of the view

Examples

import si_fab.all as pdk  # noqa: F401
import ipkiss3.all as i3
from picazzo3.wg.bundle import WaveguideBundle
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)
trace = wg_t()
trace.Layout(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 = WaveguideBundle(traces=[trace] * 5)
lay = C.Layout(trace_transformations=trace_tfs)
lay.visualize(annotate=True)
../../../../../_images/picazzo3-wg-bundle-cell-WaveguideBundle-1.png