DoubleSpiralRounded
- class picazzo3.wg.spirals.cell.DoubleSpiralRounded
Rounded double spiral class with both access waveguides on the outside of the spiral. The trace template provided in the property
trace_template
is used to build a chain of waveguides. All the rounding properties can be set at the layout level.- Parameters:
- n_o_loops: int and number > 0
Number of loops in the spiral
- trace_template: PCell and _TraceTemplate
Trace template used in the chain.
- name: String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters
The unique name of the pcell
- Other Parameters:
- n_o_traces: int and number > 0, locked
Total number of traces used in the spiral.
- traces: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked
Views
- class Layout
- Parameters:
- shapes: list
List of shapes used to build the traces
- flatten: ( bool, bool_ or int )
If true the instances are flattened
- spacing: float and Real, number and number >= 0
spacing between the individual loops.
- spiral_center: Coord2
location of the center of the spiral.
- stub_direction: List with value restriction, allowed values: [‘H’, ‘V’]
- inner_size: Coord2 and number >= 0
Inner size of the the spiral, defaults to 3 * spacing + 2 * bend_radius, in each direction
- 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
- manhattan: ( bool, bool_ or int )
Adds rectangular blocks in the bends to avoid as much as possible non-manhattan angles.
- angle_step: float and number > 0
Angle step for rounding.
- rounding_algorithm:
Rounding algorithm used to generate the bends. Can be circular, spline, ….
- bend_radius: float and number > 0
Bend radius for the auto-generated bends.
- Other Parameters:
- auto_transform: locked
Examples
import si_fab.all as pdk # noqa: F401 from picazzo3.wg.spirals import DoubleSpiralRounded from ipkiss3 import all as i3 cell = DoubleSpiralRounded(n_o_loops=2, trace_template=i3.TECH.PCELLS.WG.DEFAULT) layout = cell.Layout( inner_size=(15.0, 15.0), bend_radius=3.0, manhattan=True, spacing=1.0, stub_direction="H", # either H or V spiral_center=(0, 0), ) layout.visualize(annotate=True)