Skip to content

Commit

Permalink
macro: Ad-hoc patch fix power pin conflict for GF180 SRAMs
Browse files Browse the repository at this point in the history
Signed-off-by: gatecat <[email protected]>
  • Loading branch information
gatecat authored and jpc-lip6 committed Jan 31, 2024
1 parent d31c420 commit e2bade8
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions cumulus/src/plugins/macro/macro.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,26 @@ def __init__ ( self, macroCell, gaugeName, hMargin, vMargin ):
, bb.getWidth()
, bb.getYMin()
, bb.getYMax() )
if self.cell.getName().lower().startswith('gf180mcu_fd_ip_sram'):
print( ' o Ad-hoc patch for "{}".'.format(self.cell.getName()) )
# Extend pins 2um downwards so that they don't conflict with power supply when we add the via
for net in self.wrapper.getNets():
if net.isSupply():
continue
for component in net.getComponents():
if not NetExternalComponents.isExternal(component):
continue
bb = component.getBoundingBox()
if not ab.isConstrainedBy(bb) or ab.getYMin() != bb.getYMin() or component.getLayer() != gaugeMetal2.getLayer():
continue
NetExternalComponents.setInternal(component)
extension = Vertical.create( net
, gaugeMetal2.getLayer()
, bb.getXCenter()
, bb.getWidth()
, u(-2)
, bb.getYMin())
NetExternalComponents.setExternal(extension)
if self.cell.getName().lower() in [ 'pll', 'gds_pll', 'cmpt_pll' ]:
print( ' o Ad-hoc patch for "{}".'.format(self.cell.getName()) )
self.innerAb = ab
Expand Down

0 comments on commit e2bade8

Please sign in to comment.