Routing Reference¶
AddrRange
¶
Coord
¶
RouteAlgo
¶
Bases:
Routing algorithm enum.
RouteMap
¶
Bases:
Route Map class, which can represent the system address map (SAM), or a routing table of a router.
check_no_overlapping_ranges()
¶
Check if there are no overlapping ranges.
pprint()
¶
Pretty print the routing table.
render(aw=None)
¶
Render the SystemVerilog routing table.
render_rdl(rdl_as_mem=False, rdl_memwidth=8)
¶
Render the SystemRDL addrmap internals.
render_rdl_inc()
¶
Render the SystemRDL include header.
rule_type()
¶
Return the type of the rules.
trim()
¶
Optimize the routing table.
RouteMapRule
¶
RouteMapRuleMcast
¶
RouteRule
¶
RouteTable
¶
Routing
¶
Bases:
The class that holds essentially all the routing information needed.
Attributes:
| Name | Type | Description |
|---|---|---|
|
|
The routing algorithm to use. See RouteAlgo enum for the options. |
|
|
Whether to use a table to decode the destination ID. |
|
|
The system address map. |
|
|
The routing table of the router. |
|
|
The number of bits to decode the X and Y coordinates from the address. Only used if |
|
|
A constant offset to add to the X and Y coordinates. Only used if |
|
|
The number of endpoints in the network. |
|
|
The number of bits to represent the ID. Only used if |
|
|
The number of bits to represent the X coordinate. Only used if |
|
|
The number of bits to represent the Y coordinate. Only used if |
|
|
The number of bits to represent the route. Only used if |
|
|
The width of the address bus. |
|
|
The number of bits to represent the reorder buffer index. |
|
|
The number of bits to represent the local port ID. |
|
|
Whether to enable multicast support. Only supported with XY routing. |
|
|
The multicast system address map. Only used if |
|
|
Whether to enable parallel reduction support (Experimental) |
|
|
Whether to enable narrow offload reduction support (Experimental) |
|
|
Whether to enable wide offload reduction support |
render_hdr_typedef(network_type)
¶
Render the SystemVerilog flit header.
render_param_decl()
¶
Render the SystemVerilog parameter declaration.
render_route_cfg(name)
¶
Render the SystemVerilog routing configuration.
render_typedefs()
¶
Render the SystemVerilog typedefs.
validate_collective()
¶
Reduction can be supported with multicast only.
validate_multicast_route_algo()
¶
Multicast is supported with XY routing only
validate_route_algo(v)
classmethod
¶
Validate the routing algorithm.