add vnb/vpb lvs correspondence points

This commit is contained in:
Jesse Cirimelli-Low 2021-06-29 02:31:56 -07:00
parent c599d8f62c
commit c36f471333
3 changed files with 21 additions and 3 deletions

View File

@ -53,7 +53,6 @@ class design(hierarchy_design):
(width, height) = utils.get_libcell_size(self.cell_name,
GDS["unit"],
layer[prop.boundary_layer])
self.pin_map = utils.get_libcell_pins(self.pins,
self.cell_name,
GDS["unit"])

View File

@ -749,6 +749,7 @@ class VlsiLayout:
Find all text labels and create a map to a list of shapes that
they enclose on the given layer.
"""
# Get the labels on a layer in the root level
labels = self.getTexts(lpp)
@ -760,6 +761,12 @@ class VlsiLayout:
label_coordinate = label.coordinates[0]
user_coordinate = [x*self.units[0] for x in label_coordinate]
pin_shapes = []
try:
from tech import layer_override
if layer_override[label.textString]:
shapes = self.getAllShapes((layer_override[label.textString], None))
except:
pass
for boundary in shapes:
if self.labelInRectangle(user_coordinate, boundary):
pin_shapes.append((lpp, boundary))

View File

@ -161,8 +161,20 @@ class bitcell_base_array(design.design):
for row in range(self.row_size):
for col in range(self.column_size):
inst = self.cell_inst[row, col]
for pin_name in ["vdd", "gnd"]:
self.copy_layout_pin(inst, pin_name)
if row == 2: #add only 1 label per col
for pin_name in ["vdd", "gnd"]:
self.copy_layout_pin(inst, pin_name)
if 'VPB' in self.cell_inst[row, col].mod.pins:
self.add_label("gnd", inst.get_pin("vpb").layer, inst.get_pin("vpb").ll())
if 'VNB' in self.cell_inst[row, col].mod.pins:
try:
from tech import layer_override
if layer_override['VNB\x00']:
inst.get_pin("vnb").layer = layer_override['VNB\x00']
except:
pass
self.add_label("vdd", inst.get_pin("vnb").layer, inst.get_pin("vnb").ll())
def _adjust_x_offset(self, xoffset, col, col_offset):
tempx = xoffset