From 7961aab0e12c021da7c63d313a9427b11923d378 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Wed, 9 Jun 2021 15:11:43 +0200 Subject: [PATCH] Adjust blockage area over SRAM. * Change: In cumulus/plugins.block.macro, the METAL2 blockage was allowing horizontal tracks to be used but the METAL3 blockage was conflicting with the end of the perpandiculars. The router was not able to manage that, so we slightly expand the METAL2 blockage to encompass the unreachable track. For the same reason, add a METAL4 blockage over METAL2. --- cumulus/src/plugins/alpha/macro/macro.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cumulus/src/plugins/alpha/macro/macro.py b/cumulus/src/plugins/alpha/macro/macro.py index 014a210e..6002e299 100644 --- a/cumulus/src/plugins/alpha/macro/macro.py +++ b/cumulus/src/plugins/alpha/macro/macro.py @@ -25,7 +25,7 @@ from Hurricane import Breakpoint, DbU, Box, Transformation, Point, \ Cell, Instance, Rectilinear import CRL from CRL import RoutingLayerGauge -from helpers import trace, dots +from helpers import trace, dots, l, u, n from helpers.io import ErrorMessage, WarningMessage, catch from helpers.overlay import UpdateSession from plugins.alpha.block.bigvia import BigVia @@ -158,7 +158,7 @@ class Macro ( object ): if isinstance(component,Rectilinear) and component.getLayer() == blockageMetal2: bb = component.getBoundingBox() bb.inflate( minSpacingMetal2 + xMinAdjust - , minSpacingMetal2 + , minSpacingMetal2 + u(0.19) , minSpacingMetal2 , minSpacingMetal2 ) Horizontal.create( component.getNet() @@ -167,6 +167,12 @@ class Macro ( object ): , bb.getHeight() , bb.getXMin() , bb.getXMax() ) + Horizontal.create( component.getNet() + , blockageMetal4 + , bb.getYCenter() + , bb.getHeight() + , bb.getXMin() + , bb.getXMax() ) elif isinstance(component,Rectilinear) and component.getLayer() == blockageMetal3: bb = component.getBoundingBox() bb.inflate( 2*minSpacingMetal3, minSpacingMetal3/2 )