skidl.schematics.route module

Autorouter for generating wiring between symbols in a schematic.

exception skidl.schematics.route.GlobalRoutingFailure[source]

Bases: RoutingFailure

Failure during global routing phase.

class skidl.schematics.route.Router[source]

Bases: object

Mixin to add routing function to Node class.

add_junctions()[source]

Add X & T-junctions where wire segments in the same net meet.

add_routing_points(nets)[source]

Add routing points by extending wires from pins out to the edge of the part bounding box.

Parameters:

nets (list) – List of nets to be routed.

cleanup_wires()[source]

Try to make wire segments look prettier.

create_routing_tracks(routing_bbox)[source]

Create horizontal & vertical global routing tracks.

create_switchboxes(h_tracks, v_tracks, **options)[source]

Create routing switchboxes from the faces in the horz/vert tracks.

Parameters:
  • h_tracks (list) – List of horizontal Tracks.

  • v_tracks (list) – List of vertical Tracks.

  • options (dict, optional) – Dictionary of options and values.

Returns:

List of Switchboxes.

Return type:

list

create_terminals(internal_nets, h_tracks, v_tracks)[source]

Create terminals on the faces in the routing tracks.

global_router(nets)[source]

Globally route a list of nets from face to face.

Parameters:

nets (list) – List of Nets to be routed.

Returns:

List of GlobalRoutes.

Return type:

List

rmv_routing_stuff()[source]

Remove attributes added to parts/pins during routing.

route(tool=None, **options)[source]

Route the wires between part pins in this node and its children.

Steps:
  1. Divide the bounding box surrounding the parts into switchboxes.

  2. Do global routing of nets through sequences of switchboxes.

  3. Do detailed routing within each switchbox.

Parameters:
  • node (Node) – Hierarchical node containing the parts to be connected.

  • tool (str) – Backend tool for schematics.

  • options (dict, optional) – Dictionary of options and values: “allow_routing_failure”, “draw”, “draw_all_terminals”, “show_capacities”, “draw_switchbox”, “draw_routing”, “draw_channels”

switchbox_router(switchboxes, **options)[source]

Create detailed wiring between the terminals along the sides of each switchbox.

Parameters:
  • switchboxes (list) – List of SwitchBox objects to be individually routed.

  • options (dict, optional) – Dictionary of options and values.

Returns:

None

exception skidl.schematics.route.RoutingFailure[source]

Bases: Exception

Exception raised when a net connecting pins cannot be routed.

exception skidl.schematics.route.SwitchboxRoutingFailure[source]

Bases: RoutingFailure

Failure during switchbox routing phase.