Skip to content

Commit e459f93

Browse files
committed
[Router] Added Comments for RCV in the Post-Pop Prune Function
Added Vaughn's detailed comments explaining the RCV technique and how the post-pop prune function in the connection router works for RCV.
1 parent 5925e69 commit e459f93

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

vpr/src/route/connection_router.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,15 @@ void ConnectionRouter<Heap>::timing_driven_expand_cheapest(RRNodeId from_node,
361361
// `new_total_cost` is used here as an identifier to detect if the pair
362362
// (from_node or inode, new_total_cost) was the most recently pushed
363363
// element for the corresponding node.
364+
//
365+
// Note: For RCV, it often isn't searching for a shortest path; it is
366+
// searching for a path in the target delay range. So it might find a
367+
// path to node n that has a higher `backward_path_cost` but the `total_cost`
368+
// (including expected delay to sink, going through a cost function that
369+
// checks that against the target delay) might be lower than the previously
370+
// stored value. In that case we want to re-expand the node so long as
371+
// it doesn't create a loop. That `rcv_path_manager` should store enough
372+
// info for us to avoid loops.
364373
RTExploredNode current;
365374
current.index = from_node;
366375
current.backward_path_cost = rr_node_route_inf_[from_node].backward_path_cost;

0 commit comments

Comments
 (0)