Skip to content

Commit e2bade8

Browse files
gatecatjpc-lip6
authored andcommitted
macro: Ad-hoc patch fix power pin conflict for GF180 SRAMs
Signed-off-by: gatecat <[email protected]>
1 parent d31c420 commit e2bade8

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

cumulus/src/plugins/macro/macro.py

+20
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,26 @@ def __init__ ( self, macroCell, gaugeName, hMargin, vMargin ):
228228
, bb.getWidth()
229229
, bb.getYMin()
230230
, bb.getYMax() )
231+
if self.cell.getName().lower().startswith('gf180mcu_fd_ip_sram'):
232+
print( ' o Ad-hoc patch for "{}".'.format(self.cell.getName()) )
233+
# Extend pins 2um downwards so that they don't conflict with power supply when we add the via
234+
for net in self.wrapper.getNets():
235+
if net.isSupply():
236+
continue
237+
for component in net.getComponents():
238+
if not NetExternalComponents.isExternal(component):
239+
continue
240+
bb = component.getBoundingBox()
241+
if not ab.isConstrainedBy(bb) or ab.getYMin() != bb.getYMin() or component.getLayer() != gaugeMetal2.getLayer():
242+
continue
243+
NetExternalComponents.setInternal(component)
244+
extension = Vertical.create( net
245+
, gaugeMetal2.getLayer()
246+
, bb.getXCenter()
247+
, bb.getWidth()
248+
, u(-2)
249+
, bb.getYMin())
250+
NetExternalComponents.setExternal(extension)
231251
if self.cell.getName().lower() in [ 'pll', 'gds_pll', 'cmpt_pll' ]:
232252
print( ' o Ad-hoc patch for "{}".'.format(self.cell.getName()) )
233253
self.innerAb = ab

0 commit comments

Comments
 (0)