Print more info for the routing processes

This commit is contained in:
Eren Dogan 2023-08-31 19:03:31 -07:00
parent 8a60684e51
commit d9004f6de6
4 changed files with 17 additions and 8 deletions

View File

@ -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):

View File

@ -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

View File

@ -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()

View File

@ -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):