WaveguideConnector
- class picazzo3.wg.connector.cell.WaveguideConnector
Connector between two port interfaces. This component will generate a waveguide between two ports, and if necessary add the required transitions. By default, the shape of the waveguide is a rounded shape based on the default RouteManhattan, but it is possible to supply a user-defined shape (not a route with waypoints, but an actual shape including the bends.)
- 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:
- 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
- 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 WaveguideConnector # 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 = WaveguideConnector(trace_template=wg_t, start_port=(wg1, "out"), end_port=(wg2, "in")) layout = C.Layout() layout.visualize(annotate=True)