ThinnedWaveguideTemplate¶
-
class
picazzo3.traces.thin_wg.
ThinnedWaveguideTemplate
(*args, **kwargs)¶ Thinned waveguide.
Takes an existing waveguide template (given by trace_template) and overlay with a thinning layer.
Parameters: trace_template: PCell and _TraceTemplate, optional
Refers to the other trace template from which information is taken to build this trace template.
cell_instances: _PCellInstanceDict, optional
name: optional
The unique name of the pcell
Views
-
Layout
¶ Parameters: control_shape_layer: __Layer__, optional
layer on which the control shape is drawn
keep_original_trace_template: optional
pin_shape: Shape, optional
shape to be used for the pins
thin_process: ProcessLayer, optional
thinning process
thin_purpose: PatternPurpose, optional
drawing purpose for the thinning region
thin_width: float and Real, number and number >= 0, optional
width of the thinning layer
trace_template_for_ports: _TraceTemplate.Layout, optional
Trace template to be used for the ports. Default = this template
view_name: str, optional
The name of the view
windows: List with type restriction, allowed types: <class ‘ipkiss3.pcell.trace.window.window._TraceWindow’>, optional
List of Trace Windows to draw on top of the already defined TraceTemplate
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)
cladding_process: ProcessLayer, optional
process for the waveguide cladding, defaults to the core process
cladding_purpose: PatternPurpose, optional
drawing purpose layer for the cladding
cladding_width: float and number > 0, optional
total width of the waveguide with cladding
core_process: ProcessLayer, optional
process for the waveguide core
core_purpose: PatternPurpose, optional
drawing purpose for the waveguide core
core_layer: __Layer__, optional
layer used to define the core of the waveguide
core_width: float and number > 0, optional
width of the waveguide core
flatten_contents: optional
if True, it will insert the referred trace as elements in the layout, rather than as an Instance
draw_control_shape: optional
draws the control shape on top of the waveguide
grids_per_unit: locked
Number of grid cells per design unit
units_per_grid: locked
Ratio of grid cell and design unit
width: locked
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
"""This example shows how you use the template to directly create a thinned waveguide PCell and its layout. """ from technologies import silicon_photonics from ipkiss3 import all as i3 from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate from picazzo3.traces.thin_wg.trace import ThinnedWaveguideTemplate wg_t = WireWaveguideTemplate(name="my_wire_wg_template1") wg_t.Layout(core_width=0.47, cladding_width=2 * 3.0 + 0.47, core_process=i3.TECH.PROCESS.WG) thinwg_t = ThinnedWaveguideTemplate(trace_template=wg_t, name="my_thin_wg_template1") thinwg_t.Layout(thin_process=i3.TECH.PROCESS.FC, thin_width=1.2) wg = thinwg_t(name="my_thin_waveguide1") layout = wg.Layout(shape=[(0.0, 0.0), (10.0, 0.0)]) layout.visualize()
-