Merge branch 'devel' of gitlab.lip6.fr:vlsi-eda/coriolis into devel
This commit is contained in:
commit
03a52977d3
|
@ -109,9 +109,11 @@ class HorizontalRail ( Rail ):
|
||||||
if contactBb.getXMin() < self.side.innerBb.getXMin() \
|
if contactBb.getXMin() < self.side.innerBb.getXMin() \
|
||||||
or contactBb.getXMax() > self.side.innerBb.getXMax():
|
or contactBb.getXMax() > self.side.innerBb.getXMax():
|
||||||
trace( 550, '-' )
|
trace( 550, '-' )
|
||||||
raise ErrorMessage( 1, [ '{} is outside rail/corona X range,'.format(contact)
|
# XXX turn this into a non-fatal case. ERROR is still printed,
|
||||||
|
# but it continues, allowing testing to continue
|
||||||
|
print (ErrorMessage( 1, [ '{} is outside rail/corona X range,'.format(contact)
|
||||||
, 'power pad is likely to be to far off west or east.'
|
, 'power pad is likely to be to far off west or east.'
|
||||||
, '(core:{})'.format(self.side.innerBb) ] )
|
, '(core:{})'.format(self.side.innerBb) ] ) )
|
||||||
if self.vias.has_key(contact.getX()): return False
|
if self.vias.has_key(contact.getX()): return False
|
||||||
trace( 550, '\tvias:{}\n'.format(self.vias) )
|
trace( 550, '\tvias:{}\n'.format(self.vias) )
|
||||||
keys = self.vias.keys()
|
keys = self.vias.keys()
|
||||||
|
@ -143,7 +145,7 @@ class HorizontalRail ( Rail ):
|
||||||
, self.axis
|
, self.axis
|
||||||
, viaWidth
|
, viaWidth
|
||||||
, viaHeight
|
, viaHeight
|
||||||
)
|
, flags=BigVia.AllowAllExpand )
|
||||||
, contact ]
|
, contact ]
|
||||||
trace( 550, '\tADD "{}" contact "{}" @ [{} {}]\n' \
|
trace( 550, '\tADD "{}" contact "{}" @ [{} {}]\n' \
|
||||||
.format( contact.getNet().getName()
|
.format( contact.getNet().getName()
|
||||||
|
@ -221,9 +223,11 @@ class VerticalRail ( Rail ):
|
||||||
contactBb = contact.getBoundingBox()
|
contactBb = contact.getBoundingBox()
|
||||||
if contactBb.getYMin() < self.side.innerBb.getYMin() \
|
if contactBb.getYMin() < self.side.innerBb.getYMin() \
|
||||||
or contactBb.getYMax() > self.side.innerBb.getYMax():
|
or contactBb.getYMax() > self.side.innerBb.getYMax():
|
||||||
raise ErrorMessage( 1, [ '{} is outside rail/corona Y range'.format(contact)
|
# XXX turn this into a non-fatal case. ERROR is still printed,
|
||||||
|
# but it continues, allowing testing to continue
|
||||||
|
print (ErrorMessage( 1, [ '{} is outside rail/corona Y range'.format(contact)
|
||||||
, 'power pad is likely to be to far off north or south.'
|
, 'power pad is likely to be to far off north or south.'
|
||||||
, '(core:{})'.format(self.side.innerBb) ] )
|
, '(core:{})'.format(self.side.innerBb) ] ) )
|
||||||
if self.vias.has_key(contact.getY()): return False
|
if self.vias.has_key(contact.getY()): return False
|
||||||
trace( 550, ',+', '\tVerticalRail.connect() [{}] @{}\n'.format(self.order,DbU.getValueString(self.axis)) )
|
trace( 550, ',+', '\tVerticalRail.connect() [{}] @{}\n'.format(self.order,DbU.getValueString(self.axis)) )
|
||||||
trace( 550, '\t{}\n'.format(contact) )
|
trace( 550, '\t{}\n'.format(contact) )
|
||||||
|
@ -264,7 +268,7 @@ class VerticalRail ( Rail ):
|
||||||
, contact.getY()
|
, contact.getY()
|
||||||
, self.side.vRailWidth - DbU.fromLambda(1.0)
|
, self.side.vRailWidth - DbU.fromLambda(1.0)
|
||||||
, contact.getHeight() - DbU.fromLambda(1.0)
|
, contact.getHeight() - DbU.fromLambda(1.0)
|
||||||
)
|
, flags=BigVia.AllowAllExpand )
|
||||||
, contact ]
|
, contact ]
|
||||||
trace(550, ',--' '\tADD {}\n'.format(contact) )
|
trace(550, ',--' '\tADD {}\n'.format(contact) )
|
||||||
self.vias[ contact.getY() ][1].mergeDepth( self.side.getLayerDepth(contact.getLayer()) )
|
self.vias[ contact.getY() ][1].mergeDepth( self.side.getLayerDepth(contact.getLayer()) )
|
||||||
|
@ -633,19 +637,19 @@ class Builder ( object ):
|
||||||
trBox.merge( xTR, yTR )
|
trBox.merge( xTR, yTR )
|
||||||
self.routingGauge.getContactLayer(contactDepth)
|
self.routingGauge.getContactLayer(contactDepth)
|
||||||
self.corners[SouthWest].append(
|
self.corners[SouthWest].append(
|
||||||
BigVia( net, contactDepth, xBL, yBL, self.hRailWidth, self.vRailWidth ) )
|
BigVia( net, contactDepth, xBL, yBL, self.hRailWidth, self.vRailWidth , flags=BigVia.AllowAllExpand ) )
|
||||||
self.corners[SouthWest][-1].mergeDepth( contactDepth+1 )
|
self.corners[SouthWest][-1].mergeDepth( contactDepth+1 )
|
||||||
self.corners[SouthWest][-1].doLayout()
|
self.corners[SouthWest][-1].doLayout()
|
||||||
self.corners[NorthWest].append(
|
self.corners[NorthWest].append(
|
||||||
BigVia( net, contactDepth, xBL, yTR, self.hRailWidth, self.vRailWidth ) )
|
BigVia( net, contactDepth, xBL, yTR, self.hRailWidth, self.vRailWidth , flags=BigVia.AllowAllExpand ) )
|
||||||
self.corners[NorthWest][-1].mergeDepth( contactDepth+1 )
|
self.corners[NorthWest][-1].mergeDepth( contactDepth+1 )
|
||||||
self.corners[NorthWest][-1].doLayout()
|
self.corners[NorthWest][-1].doLayout()
|
||||||
self.corners[SouthEast].append(
|
self.corners[SouthEast].append(
|
||||||
BigVia( net, contactDepth, xTR, yBL, self.hRailWidth, self.vRailWidth ) )
|
BigVia( net, contactDepth, xTR, yBL, self.hRailWidth, self.vRailWidth , flags=BigVia.AllowAllExpand ) )
|
||||||
self.corners[SouthEast][-1].mergeDepth( contactDepth+1 )
|
self.corners[SouthEast][-1].mergeDepth( contactDepth+1 )
|
||||||
self.corners[SouthEast][-1].doLayout()
|
self.corners[SouthEast][-1].doLayout()
|
||||||
self.corners[NorthEast].append(
|
self.corners[NorthEast].append(
|
||||||
BigVia( net, contactDepth, xTR, yTR, self.hRailWidth, self.vRailWidth ) )
|
BigVia( net, contactDepth, xTR, yTR, self.hRailWidth, self.vRailWidth , flags=BigVia.AllowAllExpand ) )
|
||||||
self.corners[NorthEast][-1].mergeDepth( contactDepth+1 )
|
self.corners[NorthEast][-1].mergeDepth( contactDepth+1 )
|
||||||
self.corners[NorthEast][-1].doLayout()
|
self.corners[NorthEast][-1].doLayout()
|
||||||
self.southSide.doLayout()
|
self.southSide.doLayout()
|
||||||
|
|
|
@ -1024,12 +1024,18 @@ namespace Katana {
|
||||||
// << j+1 << "=[" << DbU::getValueString(gapsetCurr.sourceU(j+1))
|
// << j+1 << "=[" << DbU::getValueString(gapsetCurr.sourceU(j+1))
|
||||||
// << " " << DbU::getValueString(gapsetCurr.targetU(j+1)) << "]" << endl;
|
// << " " << DbU::getValueString(gapsetCurr.targetU(j+1)) << "]" << endl;
|
||||||
AutoSegment* first = _segments[gapsetCurr.span(j+1).first]->base();
|
AutoSegment* first = _segments[gapsetCurr.span(j+1).first]->base();
|
||||||
|
|
||||||
|
cerr << "spacing:" << DbU::getValueString(spacing) << " " << first << endl;
|
||||||
|
if (first == NULL) {
|
||||||
|
cerr << Error("null first, NOT correcting gap") << endl;
|
||||||
|
} else {
|
||||||
for ( AutoSegment* segment : first->getAligneds() ) {
|
for ( AutoSegment* segment : first->getAligneds() ) {
|
||||||
if (segment->getSourcePosition() < first->getSourcePosition())
|
if (segment->getSourcePosition() < first->getSourcePosition())
|
||||||
first = segment;
|
first = segment;
|
||||||
}
|
}
|
||||||
// cerr << "duSource:" << DbU::getValueString(first->getDuSource()) << endl;
|
// cerr << "duSource:" << DbU::getValueString(first->getDuSource()) << endl;
|
||||||
first->setDuSource( first->getDuSource() - spacing - minSpacing/2 );
|
first->setDuSource( first->getDuSource() - spacing - minSpacing/2 );
|
||||||
|
}
|
||||||
++gaps;
|
++gaps;
|
||||||
cerr << Warning( " Track::repair(): Closing same net gap in %s near:\n %s"
|
cerr << Warning( " Track::repair(): Closing same net gap in %s near:\n %s"
|
||||||
, getString(this).c_str()
|
, getString(this).c_str()
|
||||||
|
|
Loading…
Reference in New Issue