row.py placing a tap cell does not correctly reset self.since_last_tap attribute
mwongrivai opened this issue · 0 comments
mwongrivai commented
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.