route supplies from endcaps to power ring

This commit is contained in:
Jesse Cirimelli-Low 2026-05-13 16:45:52 -07:00
parent afca50c20b
commit 5222224936
3 changed files with 9 additions and 18 deletions

View File

@ -356,11 +356,6 @@ class capped_replica_bitcell_array(bitcell_base_array):
def route_supplies(self):
if OPTS.bitcell == "pbitcell":
bitcell = factory.create(module_type="pbitcell")
else:
bitcell = getattr(props, "bitcell_{}port".format(OPTS.num_ports))
top = connect_ring_top
bottom = connect_ring_bottom
left = connect_ring_left
@ -370,6 +365,7 @@ class capped_replica_bitcell_array(bitcell_base_array):
inst = self.dummy_row_insts[1]
if 'vdd' in inst.mod.pins:
array_pins = inst.get_pins('vdd')
print("found pin", inst, inst.mod, array_pins)
for array_pin in array_pins:
supply_pin = self.top_vdd_pin
self.add_path(array_pin.layer, [array_pin.center(), vector(array_pin.center()[0], supply_pin.center()[1])])

View File

@ -42,6 +42,11 @@ class col_cap_array(bitcell_base_array):
self.place_array()
self.add_layout_pins()
# Promote leaf vdd/gnd shapes to module pin_map (same as dummy_array) so
# parents (e.g. capped_replica_bitcell_array.route_supplies) can use
# inst.get_pins("vdd") / get_pins("gnd") on this sub-module.
self.route_supplies()
#self.height = self.dummy_cell.height
#self.width = self.column_size * self.cell.width
@ -51,17 +56,7 @@ class col_cap_array(bitcell_base_array):
def add_modules(self):
""" Add the modules used in this design """
self.colend = factory.create(module_type="col_cap_{}".format(OPTS.bitcell))
# def create_instances(self):
# """ Create the module instances used in this design """
# self.cell_inst = {}
# for col in range(self.column_size):
# for row in range(self.row_size):
# name = "bit_r{0}_c{1}".format(row, col)
# self.cell_inst[row, col]=self.add_inst(name=name,
# mod=self.dummy_cell)
# self.connect_inst(self.get_bitcell_pins(row, col))
def create_instances(self):
""" Create the module instances used in this design """
self.cell_inst={}

View File

@ -284,8 +284,8 @@ power_ring_right = True
connect_ring_top = ['vdd','gnd']
connect_ring_bottom = ['vdd','gnd']
connect_ring_left = []
connect_ring_right = []
connect_ring_left = ['gnd']
connect_ring_right = ['gnd']
###################################################
# Discrete tx bins