Rotate via in center for freepdk

This commit is contained in:
Matt Guthaus 2018-07-19 14:01:48 -07:00
parent 4c3bd0e42b
commit 45a53ed089
2 changed files with 9 additions and 6 deletions

View File

@ -654,16 +654,16 @@ class layout(lef.lef):
width=xmax-xmin,
height=ymax-ymin)
def add_power_pin(self, name, loc):
def add_power_pin(self, name, loc, rotate=True):
"""
Add a single power pin from M3 own to M1
"""
self.add_via_center(layers=("metal1", "via1", "metal2"),
offset=loc,
rotate=90)
rotate=90 if rotate else 0)
self.add_via_center(layers=("metal2", "via2", "metal3"),
offset=loc,
rotate=90)
rotate=90 if rotate else 0)
self.add_layout_pin_rect_center(text=name,
layer="metal3",
offset=loc)

View File

@ -169,9 +169,12 @@ class replica_bitline(design.design):
self.add_power_pin("vdd", pin.lc())
# Replica bitcell needs to be routed up to M3
for pin_name in ["vdd", "gnd"]:
for pin in self.rbc_inst.get_pins(pin_name):
self.add_power_pin(pin_name, pin.center())
pin=self.rbc_inst.get_pin("vdd")
# Don't rotate this via to vit in FreePDK45
self.add_power_pin("vdd", pin.center(), False)
for pin in self.rbc_inst.get_pins("gnd"):
self.add_power_pin("gnd", pin.center())