mirror of https://github.com/VLSIDA/OpenRAM.git
Fix error in when to add vias for array power
This commit is contained in:
parent
4e7e0c5954
commit
bec948dcc3
|
|
@ -381,7 +381,7 @@ class replica_bitcell_array(design.design):
|
||||||
# vdd/gnd are only connected in the perimeter cells
|
# vdd/gnd are only connected in the perimeter cells
|
||||||
# replica column should only have a vdd/gnd in the dummy cell on top/bottom
|
# replica column should only have a vdd/gnd in the dummy cell on top/bottom
|
||||||
supply_insts = [self.dummy_col_left_inst, self.dummy_col_right_inst,
|
supply_insts = [self.dummy_col_left_inst, self.dummy_col_right_inst,
|
||||||
self.dummy_row_top_inst, self.dummy_row_bot_inst] + list(self.replica_col_inst.values())
|
self.dummy_row_top_inst, self.dummy_row_bot_inst]
|
||||||
for pin_name in ["vdd", "gnd"]:
|
for pin_name in ["vdd", "gnd"]:
|
||||||
for inst in supply_insts:
|
for inst in supply_insts:
|
||||||
pin_list = inst.get_pins(pin_name)
|
pin_list = inst.get_pins(pin_name)
|
||||||
|
|
@ -391,6 +391,10 @@ class replica_bitcell_array(design.design):
|
||||||
directions=("V", "V"),
|
directions=("V", "V"),
|
||||||
start_layer=pin.layer)
|
start_layer=pin.layer)
|
||||||
|
|
||||||
|
for inst in list(self.replica_col_inst.values()):
|
||||||
|
self.copy_layout_pin(inst, pin_name)
|
||||||
|
self.copy_layout_pin(inst, pin_name)
|
||||||
|
|
||||||
def get_rbl_wl_name(self, port):
|
def get_rbl_wl_name(self, port):
|
||||||
""" Return the WL for the given RBL port """
|
""" Return the WL for the given RBL port """
|
||||||
return self.rbl_wl_names[port]
|
return self.rbl_wl_names[port]
|
||||||
|
|
|
||||||
|
|
@ -184,9 +184,11 @@ class replica_column(design.design):
|
||||||
height=wl_pin.height())
|
height=wl_pin.height())
|
||||||
|
|
||||||
# Supplies are only connected in the ends
|
# Supplies are only connected in the ends
|
||||||
for inst in [self.cell_inst[0], self.cell_inst[self.total_size - 1]]:
|
for (index, inst) in self.cell_inst.items():
|
||||||
for pin_name in ["vdd", "gnd"]:
|
for pin_name in ["vdd", "gnd"]:
|
||||||
if pin_name in inst.mod.pins:
|
if inst in [self.cell_inst[0], self.cell_inst[self.total_size - 1]]:
|
||||||
|
self.copy_power_pins(inst, pin_name)
|
||||||
|
else:
|
||||||
self.copy_layout_pin(inst, pin_name)
|
self.copy_layout_pin(inst, pin_name)
|
||||||
|
|
||||||
def get_bitcell_pins(self, col, row):
|
def get_bitcell_pins(self, col, row):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue