RoutePortsEastWest
- class picazzo3.container.route_ports.RoutePortsEastWest
Routes ports to the east or west side of a component
- Parameters:
- west_port_labels: ( List with type restriction, allowed types: <class ‘str’> ), *None allowed*
Labels of the ports to directed to the West. Set to None to process all West ports.
- east_port_labels: ( List with type restriction, allowed types: <class ‘str’> ), *None allowed*
Labels of the ports to directed to the East. Set to None to process all East ports.
- trace_template: ( PCell and _WaveguideTemplate ), *None allowed*
Template for all ports, defaults to TECH.PCELLS.WG.DEFAULT.When set to None, the waveguide templates of the ports will be used.
- auto_transition: ( bool, bool_ or int )
If True, automatically transition all ports of contents to the given trace template. If False, no transitions are applied, which might lead to a discontinuity in the waveguide. Also, if trace_template is None, no transitions are applied.
- external_port_names: str
Dictionary for remapping of the port names of the contents to the external ports
- contents: PCell
the contents of the container: the child cell
- 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:
- bundle: ( PCell ), locked, *None allowed*
bundle of waveguides added to the contents, generated based on the supplied waveguides list
- waveguides: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked
- trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked
list of templates to apply to all ports
- port_labels: locked
Views
- class Layout
- Parameters:
- target_coordinate_west: ( float ), *None allowed*
The coordinate where the west routes are aligned
- target_coordinate_east: ( float ), *None allowed*
The coordinate where the east routes are aligned
- reference_west: str and String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters
Port Label of port that serves as y reference
- reference_east: str and String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters
Port Label of port that serves as y reference
- spacing: float and number > 0
Distance between the endpoints of the routes
- area_layer_on: ( bool, bool_ or int )
When True, the waveguide area will be covered by i3.Rectangles on all cover layers.
- contents_transformation: GenericNoDistortTransform
transformation to apply to the contents
- flatten_contents: ( bool, bool_ or int )
if True, it will insert the contents as elements in the layout, rather than as an Instance
- 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:
- routes: locked
Examples
import si_fab.all as pdk # noqa: F401 from picazzo3.filters.ring import RingRect180DropFilter from picazzo3.container.route_ports import RoutePortsEastWest my_ring = RingRect180DropFilter() my_ring_ew = RoutePortsEastWest( contents=my_ring, east_port_labels=["E0", "E1", "W1"], # ports to be routed eastwards west_port_labels=["W0"], # ports to be routed westward ) layout = my_ring_ew.Layout() layout.visualize(annotate=True)
"""The area_layer_on can be used to disable the drawing of the area between the layers. """ import si_fab.all as pdk # noqa: F401 from picazzo3.filters.ring import RingRect180DropFilter from picazzo3.container.route_ports import RoutePortsEastWest my_ring = RingRect180DropFilter() my_ring_ew = RoutePortsEastWest( contents=my_ring, east_port_labels=["E0", "E1", "W1"], # ports to be routed eastwards west_port_labels=["W0"], # ports to be routed westward ) layout = my_ring_ew.Layout(area_layer_on=False) layout.visualize(annotate=True)
"""The target_coordinate_east, target_coordinate_west parameters can be used to specify where the routes should align""" import si_fab.all as pdk # noqa: F401 from picazzo3.filters.ring import RingRect180DropFilter from picazzo3.container.route_ports import RoutePortsEastWest my_ring = RingRect180DropFilter() my_ring_ew = RoutePortsEastWest( contents=my_ring, east_port_labels=["E0", "E1", "W1"], # ports to be routed eastwards west_port_labels=["W0"], # ports to be routed westward ) layout = my_ring_ew.Layout(target_coordinate_east=-30.0, target_coordinate_west=30.0) layout.visualize(annotate=True)