mirror of https://github.com/VLSIDA/OpenRAM.git
Check for no pins and fix closest pin return type
This commit is contained in:
parent
74c2c5ae0e
commit
3101643964
|
|
@ -702,6 +702,8 @@ class router(router_tech):
|
||||||
else:
|
else:
|
||||||
overlap_pins.append(overlap_pin)
|
overlap_pins.append(overlap_pin)
|
||||||
|
|
||||||
|
debug.check(len(overlap_pins) > 0, "No pins overlapped the tracks.")
|
||||||
|
|
||||||
return overlap_pins
|
return overlap_pins
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1200,9 +1202,13 @@ class router(router_tech):
|
||||||
partial_pin_parts = self.divide_pin_to_tracks(pin, pg.grids)
|
partial_pin_parts = self.divide_pin_to_tracks(pin, pg.grids)
|
||||||
offgrid_pin_parts.extend(partial_pin_parts)
|
offgrid_pin_parts.extend(partial_pin_parts)
|
||||||
|
|
||||||
|
debug.check(len(offgrid_pin_parts) > 0, "No offgrid pin parts found.")
|
||||||
|
|
||||||
# Find closest part
|
# Find closest part
|
||||||
closest_track_pin, closest_part_pin = self.find_closest_pin(track_pins, offgrid_pin_parts)
|
closest_track_pin, closest_part_pin = self.find_closest_pin(track_pins, offgrid_pin_parts)
|
||||||
|
|
||||||
|
debug.check(closest_track_pin and closest_part_pin, "Found no closest pins.")
|
||||||
|
|
||||||
# Find the bbox of the on-grid track and the off-grid pin part
|
# Find the bbox of the on-grid track and the off-grid pin part
|
||||||
closest_track_pin.bbox([closest_part_pin])
|
closest_track_pin.bbox([closest_part_pin])
|
||||||
|
|
||||||
|
|
@ -1217,13 +1223,13 @@ class router(router_tech):
|
||||||
Find the closest pin in the lists. Does a stupid O(n^2).
|
Find the closest pin in the lists. Does a stupid O(n^2).
|
||||||
"""
|
"""
|
||||||
min_dist = None
|
min_dist = None
|
||||||
min_item = None
|
min_item = (None, None)
|
||||||
for pin1 in first_list:
|
for pin1 in first_list:
|
||||||
for pin2 in second_list:
|
for pin2 in second_list:
|
||||||
if pin1.layer != pin2.layer:
|
if pin1.layer != pin2.layer:
|
||||||
continue
|
continue
|
||||||
new_dist = pin1.distance(pin2)
|
new_dist = pin1.distance(pin2)
|
||||||
if not min_item or new_dist < min_dist:
|
if not min_dist or new_dist < min_dist:
|
||||||
min_item = (pin1, pin2)
|
min_item = (pin1, pin2)
|
||||||
min_dist = new_dist
|
min_dist = new_dist
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue