mirror of https://github.com/VLSIDA/OpenRAM.git
Enable single pin for vdd/gnd after supply router
This commit is contained in:
parent
946ad66e7a
commit
3c08dfcca5
|
|
@ -1152,6 +1152,19 @@ class router(router_tech):
|
||||||
width=pin.width(),
|
width=pin.width(),
|
||||||
height=pin.height())
|
height=pin.height())
|
||||||
|
|
||||||
|
def get_pin(self, pin_name):
|
||||||
|
""" Return the lowest, leftest pin group """
|
||||||
|
keep_pin = None
|
||||||
|
for index,pg in enumerate(self.pin_groups[pin_name]):
|
||||||
|
for pin in pg.enclosures:
|
||||||
|
if not keep_pin:
|
||||||
|
keep_pin = pin
|
||||||
|
else:
|
||||||
|
if pin.lx() <= keep_pin.lx() and pin.by() <= keep_pin.by():
|
||||||
|
keep_pin = pin
|
||||||
|
|
||||||
|
return keep_pin
|
||||||
|
|
||||||
|
|
||||||
# FIXME: This should be replaced with vector.snap_to_grid at some point
|
# FIXME: This should be replaced with vector.snap_to_grid at some point
|
||||||
def snap_to_grid(offset):
|
def snap_to_grid(offset):
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,6 @@ class signal_grid(grid):
|
||||||
#else:
|
#else:
|
||||||
# print("Cost bounded")
|
# print("Cost bounded")
|
||||||
|
|
||||||
debug.warning("Unable to route path. Expand the detour_scale to allow detours.")
|
|
||||||
return (None,None)
|
return (None,None)
|
||||||
|
|
||||||
def expand_dirs(self,curpath):
|
def expand_dirs(self,curpath):
|
||||||
|
|
|
||||||
|
|
@ -221,9 +221,9 @@ class sram_base(design, verilog, lef):
|
||||||
|
|
||||||
# Copy the pins to the top level
|
# Copy the pins to the top level
|
||||||
# This will either be used to route or left unconnected.
|
# This will either be used to route or left unconnected.
|
||||||
for inst in self.insts:
|
for pin_name in ["vdd", "gnd"]:
|
||||||
self.copy_power_pins(inst, "vdd")
|
for inst in self.insts:
|
||||||
self.copy_power_pins(inst, "gnd")
|
self.copy_power_pins(inst, pin_name)
|
||||||
|
|
||||||
if not OPTS.route_supplies:
|
if not OPTS.route_supplies:
|
||||||
# Do not route the power supply (leave as must-connect pins)
|
# Do not route the power supply (leave as must-connect pins)
|
||||||
|
|
@ -245,6 +245,16 @@ class sram_base(design, verilog, lef):
|
||||||
rtr=router(grid_stack, self)
|
rtr=router(grid_stack, self)
|
||||||
rtr.route()
|
rtr.route()
|
||||||
|
|
||||||
|
vdd_pin = rtr.get_pin("vdd")
|
||||||
|
gnd_pin = rtr.get_pin("gnd")
|
||||||
|
for pin_name, pin in [("vdd", vdd_pin), ("gnd", gnd_pin)]:
|
||||||
|
self.remove_layout_pin(pin_name)
|
||||||
|
self.add_layout_pin(pin_name,
|
||||||
|
pin.layer,
|
||||||
|
pin.ll(),
|
||||||
|
pin.width(),
|
||||||
|
pin.height())
|
||||||
|
|
||||||
def compute_bus_sizes(self):
|
def compute_bus_sizes(self):
|
||||||
""" Compute the independent bus widths shared between two and four bank SRAMs """
|
""" Compute the independent bus widths shared between two and four bank SRAMs """
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue