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:
Divide the bounding box surrounding the parts into switchboxes.
Do global routing of nets through sequences of switchboxes.
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.