RoundedWaveguideConnector
- class picazzo3.wg.connector.cell.RoundedWaveguideConnector
Connector between two port interfaces. This component will generate a rounded waveguide between two ports, and if necessary add the required transitions. By default, the control shape of the rounded waveguide is based on the default RouteManhattan. It is also possible to provide a custom control shape (waypoints).
- Parameters:
- trace_template: PCell and _WaveguideTemplate
Waveguide template for the connector
- end_port: _PortInterface
Port where the connector ends
- start_port: _PortInterface
Port where the connector starts
- 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:
- end_transition: PCell, locked
transition at the end port
- start_transition: PCell, locked
transition at the start port
- trace: PCell, locked
trace between the transitions
Views
- class Layout
- Parameters:
- manhattan: ( bool, bool_ or int )
Adds rectangular blocks in the bends to avoid as much as possible non-manhattan angles.
- end_transition_length: ( float and Real, number and number >= 0 ), *None allowed*
Length of the end transition. Set to None to use the default.
- start_transition_length: ( float and Real, number and number >= 0 ), *None allowed*
Length of the start transition. Set to None to use the default.
- flatten: ( bool, bool_ or int )
If true the contents is flattened, removing one level of hierarchy
- shape: Shape
Shape of the trace. Automatically uses a manhattan shape
- 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
- start_straight: float and Real, number and number >= 0
The length of the straight start section of the route
- end_straight: float and Real, number and number >= 0
The length of the straight end section of the route
- min_straight: float and Real, number and number >= 0
The minimum length of any straight sections in the route
- angle_step: float and number > 0
Angle step for rounding.
- rounding_algorithm: *None allowed*
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:
- end_transition_parameters: dict, locked
Layout parameters for the end transition
- start_transition_parameters: dict, locked
Layout parameters for the start transition
- trace_shape: Shape, locked
shape of the actual waveguide, minus the transitions
Examples
import si_fab.all as pdk # noqa: F401 from picazzo3.wg.connector import RoundedWaveguideConnector # Make two short waveguides (of different type) as a start and end point from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate wg_t = WireWaveguideTemplate() wg_t.Layout(core_width=0.550) wg1 = wg_t() wg1.Layout(shape=[(-10.0, 0.0), (0.0, 0.0)]) from picazzo3.traces.rib_wg.trace import RibWaveguideTemplate ribwg_t = RibWaveguideTemplate() ribwg_t.Layout(core_width=0.700) wg2 = ribwg_t() wg2.Layout(shape=[(40.0, 30.0), (45.0, 40.0)]) C = RoundedWaveguideConnector(trace_template=wg_t, start_port=(wg1, "out"), end_port=(wg2, "in")) # it is possible to overrule the parameters of the transitions layout = C.Layout(bend_radius=10.0, start_transition_length=4.0) layout.visualize(annotate=True)