diff --git a/compiler/router/graph.py b/compiler/router/graph.py index 1db403af..85158ef7 100644 --- a/compiler/router/graph.py +++ b/compiler/router/graph.py @@ -186,7 +186,7 @@ class graph: def create_graph(self, source, target): """ Create the graph to run routing on later. """ - debug.info(2, "Creating the graph for source '{}' and target'{}'.".format(source, target)) + debug.info(3, "Creating the graph for source '{}' and target'{}'.".format(source, target)) # Save source and target information self.source = source @@ -196,7 +196,7 @@ class graph: region = deepcopy(source) region.bbox([target]) region = region.inflated_pin(spacing=self.router.track_width + self.router.track_space) - debug.info(3, "Routing region is {}".format(region.rect)) + debug.info(4, "Routing region is {}".format(region.rect)) # Find the blockages that are in the routing area self.graph_blockages = [] @@ -216,9 +216,9 @@ class graph: self.generate_graph_nodes(x_values, y_values) # Save the graph nodes that lie in source and target shapes self.save_end_nodes() - debug.info(3, "Number of blockages detected in the routing region: {}".format(len(self.graph_blockages))) - debug.info(3, "Number of vias detected in the routing region: {}".format(len(self.graph_vias))) - debug.info(3, "Number of nodes in the routing graph: {}".format(len(self.nodes))) + debug.info(4, "Number of blockages detected in the routing region: {}".format(len(self.graph_blockages))) + debug.info(4, "Number of vias detected in the routing region: {}".format(len(self.graph_vias))) + debug.info(4, "Number of nodes in the routing graph: {}".format(len(self.nodes))) def find_graph_blockages(self, region): diff --git a/compiler/router/router.py b/compiler/router/router.py index c498a815..61395f1f 100644 --- a/compiler/router/router.py +++ b/compiler/router/router.py @@ -89,7 +89,7 @@ class router(router_tech): def find_pins(self, pin_name): """ Find the pins with the given name. """ - debug.info(2, "Finding all pins for {}".format(pin_name)) + debug.info(4, "Finding all pins for {}".format(pin_name)) shape_list = self.layout.getAllPinShapes(str(pin_name)) pin_set = set() @@ -113,7 +113,7 @@ class router(router_tech): def find_blockages(self, name="blockage", shape_list=None): """ Find all blockages in the routing layers. """ - debug.info(2, "Finding blockages...") + debug.info(4, "Finding blockages...") for lpp in [self.vert_lpp, self.horiz_lpp]: # If the list of shapes is given, don't get them from gdsMill @@ -146,7 +146,7 @@ class router(router_tech): def find_vias(self, shape_list=None): """ Find all vias in the routing layers. """ - debug.info(2, "Finding vias...") + debug.info(4, "Finding vias...") # Prepare lpp values here from openram.tech import layer diff --git a/compiler/router/signal_escape_router.py b/compiler/router/signal_escape_router.py index 21cae924..f4d5c3b1 100644 --- a/compiler/router/signal_escape_router.py +++ b/compiler/router/signal_escape_router.py @@ -54,6 +54,8 @@ class signal_escape_router(router): self.blockages.append(self.inflate_shape(pin)) # Route vdd and gnd + routed_count = 0 + routed_max = len(pin_names) for source, target, _ in self.get_route_pairs(pin_names): # Change fake pin's name so the graph will treat it as routable target.name = source.name @@ -72,6 +74,8 @@ class signal_escape_router(router): # Find the recently added shapes self.find_blockages(name, new_wires) self.find_vias(new_vias) + routed_count += 1 + debug.info(2, "Routed {} of {} signal pins".format(routed_count, routed_max)) self.replace_layout_pins() diff --git a/compiler/router/supply_router.py b/compiler/router/supply_router.py index 3cdcc4e6..a7614b22 100644 --- a/compiler/router/supply_router.py +++ b/compiler/router/supply_router.py @@ -67,6 +67,8 @@ class supply_router(router): self.blockages.append(self.inflate_shape(pin)) # Route vdd and gnd + routed_count = 0 + routed_max = len(self.pins[vdd_name]) + len(self.pins[gnd_name]) for pin_name in [vdd_name, gnd_name]: pins = self.pins[pin_name] # Route closest pins according to the minimum spanning tree @@ -85,6 +87,9 @@ class supply_router(router): # Find the recently added shapes self.find_blockages(pin_name, new_wires) self.find_vias(new_vias) + # Report routed count + routed_count += 1 + debug.info(2, "Routed {} of {} supply pins".format(routed_count, routed_max)) def add_side_pin(self, pin_name, side, num_vias=3, num_fake_pins=4):