AUCOHL/DFFRAM

row.py placing a tap cell does not correctly reset self.since_last_tap attribute

mwongrivai opened this issue · 0 comments

While testing out placeram in a different technology with much larger tap cell spacing than sky130, I've found that tap cells are being placed much more frequently than I was expecting. I believe it's because of this code in row.py in the place() method:

 if re.match(Row.tap_rx, instance.getName()):
            self.since_last_tap = 0

Row.tap_rx is a regexp pattern for a cell MASTER, which is then compared to the instance's name. This will never match, and self.since_last_tap will never be reset even though a tap cell gets placed. I changed it to:

 if re.match(Row.tap_rx, instance.getMaster().getName()):
            self.since_last_tap = 0

and now tap cells seem to be placed with the frequency I expect.