Source code for pacman.operations.rig_algorithms.rig_route

from pacman.utilities import rig_converters
from rig.place_and_route.route.ner import route
from spinn_utilities.progress_bar import ProgressBar


[docs]class RigRoute(object): """ Performs routing using rig algorithm """ __slots__ = [] def __call__(self, machine_graph, machine, placements): progress_bar = ProgressBar(7, "Routing") vertices_resources, nets, net_names = \ rig_converters.convert_to_rig_graph(machine_graph) progress_bar.update() rig_machine = rig_converters.convert_to_rig_machine(machine) progress_bar.update() rig_constraints = rig_converters.create_rig_machine_constraints( machine) progress_bar.update() rig_constraints.extend( rig_converters.create_rig_graph_constraints( machine_graph, machine)) progress_bar.update() rig_placements, rig_allocations = \ rig_converters.convert_to_rig_placements(placements, machine) progress_bar.update() rig_routes = route( vertices_resources, nets, rig_machine, rig_constraints, rig_placements, rig_allocations, "cores") rig_routes = { name: rig_routes[net] for net, name in net_names.iteritems()} progress_bar.update() routes = rig_converters.convert_from_rig_routes( rig_routes, machine_graph) progress_bar.update() progress_bar.end() return routes