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.
This commit is contained in:
parent
92a3e32aaf
commit
7961aab0e1
|
@ -25,7 +25,7 @@ from Hurricane import Breakpoint, DbU, Box, Transformation, Point, \
|
||||||
Cell, Instance, Rectilinear
|
Cell, Instance, Rectilinear
|
||||||
import CRL
|
import CRL
|
||||||
from CRL import RoutingLayerGauge
|
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.io import ErrorMessage, WarningMessage, catch
|
||||||
from helpers.overlay import UpdateSession
|
from helpers.overlay import UpdateSession
|
||||||
from plugins.alpha.block.bigvia import BigVia
|
from plugins.alpha.block.bigvia import BigVia
|
||||||
|
@ -158,7 +158,7 @@ class Macro ( object ):
|
||||||
if isinstance(component,Rectilinear) and component.getLayer() == blockageMetal2:
|
if isinstance(component,Rectilinear) and component.getLayer() == blockageMetal2:
|
||||||
bb = component.getBoundingBox()
|
bb = component.getBoundingBox()
|
||||||
bb.inflate( minSpacingMetal2 + xMinAdjust
|
bb.inflate( minSpacingMetal2 + xMinAdjust
|
||||||
, minSpacingMetal2
|
, minSpacingMetal2 + u(0.19)
|
||||||
, minSpacingMetal2
|
, minSpacingMetal2
|
||||||
, minSpacingMetal2 )
|
, minSpacingMetal2 )
|
||||||
Horizontal.create( component.getNet()
|
Horizontal.create( component.getNet()
|
||||||
|
@ -167,6 +167,12 @@ class Macro ( object ):
|
||||||
, bb.getHeight()
|
, bb.getHeight()
|
||||||
, bb.getXMin()
|
, bb.getXMin()
|
||||||
, bb.getXMax() )
|
, bb.getXMax() )
|
||||||
|
Horizontal.create( component.getNet()
|
||||||
|
, blockageMetal4
|
||||||
|
, bb.getYCenter()
|
||||||
|
, bb.getHeight()
|
||||||
|
, bb.getXMin()
|
||||||
|
, bb.getXMax() )
|
||||||
elif isinstance(component,Rectilinear) and component.getLayer() == blockageMetal3:
|
elif isinstance(component,Rectilinear) and component.getLayer() == blockageMetal3:
|
||||||
bb = component.getBoundingBox()
|
bb = component.getBoundingBox()
|
||||||
bb.inflate( 2*minSpacingMetal3, minSpacingMetal3/2 )
|
bb.inflate( 2*minSpacingMetal3, minSpacingMetal3/2 )
|
||||||
|
|
Loading…
Reference in New Issue