WaveguideBundle¶
-
class
picazzo3.wg.bundle.cell.
WaveguideBundle
(*args, **kwargs)¶ Bundle of waveguides, routed together
Parameters: traces: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, optional
the traces in this bundle
cell_instances: _PCellInstanceDict, optional
name: optional
The unique name of the pcell
Views
-
Layout
¶ Parameters: view_name: str, optional
The name of the view
area_layer_on: optional
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’>, optional
transformations to be applied to each of the traces
cover_layers: List with type restriction, allowed types: <class ‘ipkiss.primitives.layer.Layer’>, optional
layers that can be used to generate additional coverage of the trace (e.g. manhattan corners)
grids_per_unit: locked
Number of grid cells per design unit
units_per_grid: locked
Ratio of grid cell and design unit
grid: float and number > 0, locked
design grid. Extracted by default from TECH.METRICS.GRID
unit: float and number > 0, locked
design unit. Extracted by default from TECH.METRICS.UNIT
Examples
from technologies import silicon_photonics 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()
-