From 495939560eff139da25373c18a52fac5e89420ea Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Fri, 8 Sep 2023 22:02:27 +0200 Subject: [PATCH] Fix ordering of pad spec in cumulus.plugins.chips.pads.Side._placePads(). * Bug: In cumulus.plugins.chips.pads.Side._placePads(), when pads have positions they must be reorder *prior* to recomputing the pad final position? In order to avoid overlap and ensuring that they are on pitch, according to the I/O pad routing gauge. --- cumulus/src/plugins/chip/pads.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cumulus/src/plugins/chip/pads.py b/cumulus/src/plugins/chip/pads.py index 1f8733a9..85c55f1b 100644 --- a/cumulus/src/plugins/chip/pads.py +++ b/cumulus/src/plugins/chip/pads.py @@ -397,6 +397,7 @@ class Side ( object ): for pad in self.pads: padLength += pad[1].getMasterCell().getAbutmentBox().getWidth() padSpacing = (self.sideLength - 2*self.conf.ioPadHeight - padLength) // (len(self.pads) + 1) if self.conf.padsHavePosition: + self.pads.sort( key=itemgetter(0) ) position = self.u for pad in self.pads: trace( 550, '\tPlace pad {} @{}\n'.format(pad[1],DbU.getValueString(pad[0])) )