Routing Struct

Routing Struct

The Routing Struct is the central datatype for routing, encoding connectivity information of the ports, links, and other routing resources of the architecture. Furthermore, it encodes which links may be used by which channels in the Taskgraph and the valid starting and ending ports for each channel.

struct RoutingStruct{L<:RoutingLink, C<:RoutingChannel}

Fields

  • architecture_graph

    Base RoutingGraph for the underlying routing architecture.

  • graph_vertex_annotations

    Annotating RoutingLink for each routing element in architecture_graph.

  • routings

    Graphs of routing resources used by each channel.

  • channels

    Vector{RoutingChannel} containing the channel information for the taskgraph.

  • channel_index_to_taskgraph_index

    Convenience structure mapping local channel indices back to edge indices in the parent taskgraph.

Documentation

Central type for routing. Not meant for extending.

API

Method List

RoutingStruct(architecture_graph, graph_vertex_annotations, routings, channels, channel_index_to_taskgraph_index)

defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Route/Struct.jl:20.

RoutingStruct(map)

defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Route/Struct.jl:49.

source

API

allroutes(routing_struct)

Return all routings in routing_struct.

source
getroute(routing_struct, index)

Return route for channel index.

source
alllinks(routing_struct)

Return Vector{RoutingLink} for all links in `routing_struct.

source
getlink(routing_struct, i)

Return <:RoutingLink for link in routing_struct with indes i.

source
start_vertices(routing_struct, i)

Return Vector{PortVertices} of start vertices for channel index i.

start_vertices(channel::RoutingChannel) :: Vector{PortVertices}

Return Vector{PortVertices} of start vertices for channel.

source
stop_vertices(routing_struct, i)

Return Vector{PortVertices} of stop vertices for channel index i.

stop_vertices(channel::RoutingChannel) :: Vector{PortVertices}

Return Vector{PortVertices} of stop vertices for channel.

source
getchannel(routing_struct, i)

Return <:RoutingChannel with indesx i.

source
getgraph(routing_struct)

Return the RoutingGraph member of routing_struct.

source
iscongested(routing_struct, [path])

Return true if routing congestion exists in routing_struct. If path is given either as a ChannelIndex or SparseDiGraph, return true if just the specified path is congested.

Method List

iscongested(routing_struct)

defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Route/Struct.jl:155.

source
clear_route(rs::RoutingStruct, channel::ChannelIndex)

Rip up the current routing for the given link.

source
setroute(routing_struct, route, channel)

Assign route to channel.

source