Routing API#


route_single(component, port1, port2[, ...])

Returns a Manhattan Route between 2 ports.

route_single_electrical(component, port1, port2)

Places a route between two electrical ports.

route_single_from_steps(component, port1, port2)

Places a route formed by the given waypoints steps.

route_single_from_steps_electrical(...[, ...])

Places a route formed by the given waypoints steps.

route_quad(component, port1, port2[, ...])

Routes a basic quadrilateral polygon directly between two ports.

route_sharp(component, port1, port2[, ...])

Returns Component route between ports.


When you need to route groups of ports together without them crossing each other You can use a bundle/river/bus router. route_bundle is the generic river bundle bus routing function that will call different function depending on the port orientation. Get bundle acts as a high level entry point. Based on the angle configurations of the banks of ports, it decides which sub-routine to call:

route_bundle(component, ports1, ports2[, ...])

Places a bundle of routes to connect two groups of ports.


route_bundle_all_angle(component, ports1, ports2)

Route a bundle of ports to another bundle of ports with all angles.


For now route_bundle is not smart enough to decide whether it should call route_ports_to_side. So you either need to connect your ports to face in one direction first, or to use route_ports_to_side before calling route_bundle

route_ports_to_side(component[, ports, ...])

Routes ports to a given side.

route_south(component, component_to_route[, ...])

Places routes to route a component ports to the south.


fanout2x2([component, port_spacing, ...])

Returns component with Sbend fanout routes.


In cases where individual components have to be tested, you can generate the array of optical I/O and connect them to the component.

You can connect the waveguides to a 127um pitch fiber array or to individual fibers for input and output.

add_fiber_array.add_fiber_array([component, ...])

Returns component with south routes and grating_couplers.



Returns new component with ports connected top pads.

add_pads_bot([component, select_ports, ...])

Returns new component with ports connected bottom pads.

add_electrical_pads_shortest([component, ...])

Returns new Component with a pad by each electrical port.

add_electrical_pads_top([component, ...])

Returns new component with electrical ports connected to top pad array.

add_electrical_pads_top_dc([component, ...])

Returns new component with electrical ports connected to top pad array.