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

Refers to the other trace template from which information is taken to build this trace template.

name:

The unique name of the pcell

Views

Layout
Parameters:

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)

keep_original_trace_template: ( bool, bool_, bool or int )

pin_shape: Shape

shape to be used for the pins

thin_process: ProcessLayer

thinning process

thin_purpose: PatternPurpose

drawing purpose for the thinning region

thin_width: float and Real, number and number >= 0

width of the thinning layer

trace_template_for_ports: _TraceTemplate.Layout

Trace template to be used for the ports. Default = this template

view_name: str and ( Alphanumeric string or Contains _$ )

The name of the view

windows: List with type restriction, allowed types: <class ‘ipkiss3.pcell.trace.window.window._TraceWindow’>

List of Trace Windows to draw on top of the already defined TraceTemplate

cladding_process: ProcessLayer

process for the waveguide cladding, defaults to the core process

cladding_purpose: PatternPurpose

drawing purpose layer for the cladding

cladding_width: float and number > 0

total width of the waveguide with cladding

core_process: ProcessLayer

process for the waveguide core

core_purpose: PatternPurpose

drawing purpose for the waveguide core

core_layer: __Layer__

layer used to define the core of the waveguide

core_width: float and number > 0

width of the waveguide core

flatten_contents: ( bool, bool_, bool or int )

if True, it will insert the referred trace as elements in the layout, rather than as an Instance

control_shape_layer: __Layer__

layer on which the control shape is drawn

draw_control_shape: ( bool, bool_, bool or int )

draws the control shape on top of the waveguide

Other Parameters:
 

width: locked

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(annotate=True)
../../../../_images/picazzo3-traces-thin_wg-ThinnedWaveguideTemplate-1.png