Bad computation of minimal area of stacked VIAs in Cumulus.
* Bug: In cumulus/plugins.block.configuration.GaugeConf.expandMinArea(), The minimal length of the segment intermediate wires where computed for the minimal area using an integer division ( // ), which is stupid for less than 1.0 values. They are real quantities at this point... This was making the DRC of ls180 failing.
This commit is contained in:
parent
f77741db3f
commit
b1bc22f8e7
|
@ -472,14 +472,16 @@ class GaugeConf ( object ):
|
|||
minArea = self._routingGauge.getRoutingLayer( depth ).getMinimalArea()
|
||||
extension = 0
|
||||
if minArea:
|
||||
minLength = DbU.fromPhysical( minArea // DbU.toPhysical( wireWidth, DbU.UnitPowerMicro )
|
||||
minLength = DbU.fromPhysical( minArea / DbU.toPhysical( wireWidth, DbU.UnitPowerMicro )
|
||||
, DbU.UnitPowerMicro )
|
||||
minLength = toFoundryGrid( minLength, DbU.SnapModeSuperior );
|
||||
if isinstance(segment,Horizontal):
|
||||
trace( 550, '\tminLength={}\n'.format(DbU.getValueString(minLength)) )
|
||||
uMin = segment.getSource().getX()
|
||||
uMax = segment.getTarget().getX()
|
||||
segLength = abs( uMax - uMin )
|
||||
if segLength < minLength:
|
||||
trace( 550, '\texpand\n' )
|
||||
extension = toFoundryGrid( (minLength - segLength)//2, DbU.SnapModeSuperior )
|
||||
if uMin > uMax:
|
||||
extension = - extension
|
||||
|
|
Loading…
Reference in New Issue