WireWaveguideTemplate
- class picazzo3.traces.wire_wg.WireWaveguideTemplate
Wire-like waveguide definition, with a core and a cladding. The waveguide is defined as a ‘cladding area’ (i.e. a cladding zone where the trench will be etched or other material will be), and a ‘core area’, which draws the shape of the waveguide core inside the ‘cladding area’.
The waveguide can be drawn on different processes, by default it is the WG process.
core_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:
- 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 waveguide 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 waveguide 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 waveguide PCell and its layout.""" import si_fab.all as pdk # noqa: F401 from ipkiss3 import all as i3 from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate 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) wg = wg_t(name="my_wire_waveguide1") layout = wg.Layout(shape=[(0.0, 0.0), (10.0, 0.0), (15.0, 15.0)]) layout.visualize(annotate=True)
"""This example shows how you use the template as a parameter for a generic Waveguide PCell.""" import si_fab.all as pdk # noqa: F401 from ipkiss3 import all as i3 from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate wg_t = WireWaveguideTemplate(name="my_wire_wg_template2") wg_t.Layout(core_width=0.47, cladding_width=2 * 3.0 + 0.47, core_process=i3.TECH.PROCESS.WG) wg = i3.Waveguide(name="my_wire_waveguide2", trace_template=wg_t) layout = wg.Layout(shape=[(0.0, 0.0), (10.0, 0.0), (15.0, 15.0)]) layout.visualize(annotate=True)
"""This example shows how you use the template as a parameter for a rounded Waveguide PCell.""" import si_fab.all as pdk # noqa: F401 from ipkiss3 import all as i3 from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate wg_t = WireWaveguideTemplate(name="my_wg_template3") wg_t.Layout(core_width=0.47, cladding_width=2 * 3.0 + 0.47, core_process=i3.TECH.PROCESS.WG) wg = i3.RoundedWaveguide(name="my_rounded_wire_waveguide1", trace_template=wg_t) layout = wg.Layout(shape=[(0.0, 0.0), (10.0, 0.0), (15.0, 15.0)], bend_radius=7.0, manhattan=True) layout.visualize(annotate=True)