RibWireWaveguideTemplate

class picazzo3.traces.rib_wg.RibWireWaveguideTemplate

This waveguide is a (shallow etched) rib waveguide, loaded on top of a (finite) strip wire.

                 core_width
               <----------->
                 strip_width
          <--------------------->
               cladding_width
<------------------------------------------>
                ___________
           ____|           |____
          |                     |
__________|_____________________|___________
Parameters:
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:
strip_cladding_purpose: PatternPurpose

drawing purpose for the strip wire cladding

strip_purpose: PatternPurpose

drawing purpose for the strip wire

strip_process: ProcessLayer

process for the strip wire

strip_width: float and number > 0

width of the deep-etched strip wire

cladding_width: float and number > 0

total width of the waveguide with cladding

cladding_purpose: PatternPurpose

drawing purpose layer for the cladding

cladding_process: ProcessLayer

process for the waveguide cladding, defaults to the core process

core_purpose: PatternPurpose

drawing purpose for the waveguide core

core_process: ProcessLayer

process for the shallow-etched core

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

List of Trace Windows that know how to draw themselves relative to the shape of the Trace

core_width: float and number > 0

width of the shallow-etched core

core_layer: __Layer__

layer used to define the core of the waveguide

pin_shape: Shape

shape to be used for the pins

trace_template_for_ports: _TraceTemplate.Layout

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

width: float and Real, number and number >= 0
control_shape_layer: __Layer__

layer on which the control shape is drawn

draw_control_shape: ( bool, bool_ or int )

draws the control shape on top of the waveguide

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

"""This example shows how you use the template to directly create a rib-wire waveguide PCell
and its layout."""
import si_fab.all as pdk  # noqa: F401
from ipkiss3 import all as i3
from picazzo3.traces.rib_wg.trace import RibWireWaveguideTemplate

wg_t = RibWireWaveguideTemplate(name="my_ribwire_wg_template1")
wg_t.Layout(
    core_width=0.4,
    strip_width=1.2,
    cladding_width=2 * 4.0 + 1.2,
    core_process=i3.TECH.PROCESS.RWG,
    strip_process=i3.TECH.PROCESS.WG,
)

wg = wg_t(name="my_ribwire_waveguide1")
layout = wg.Layout(shape=[(0.0, 0.0), (10.0, 0.0)])

layout.visualize(annotate=True)
../../../../../_images/picazzo3-traces-rib_wg-RibWireWaveguideTemplate-1.png