TemplatedWaveguideBundle¶
-
class
picazzo3.wg.bundle.cell.
TemplatedWaveguideBundle
(*args, **kwargs)¶ Waveguide bundle based on a list of Trace templates.
Parameters: trace_templates: list, optional
templates to use for each of the traces
cell_instances: _PCellInstanceDict, optional
name: optional
The unique name of the pcell
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, optional
The name of the view
shapes: list and List with type restriction, allowed types: <class ‘ipkiss.geometry.shape.Shape’>, optional
shapes of the traces
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 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()
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()
-