Bad protection layer used in NetBuilderHV::doRp_AutoContact().
Bug: In NetBuilderHV::doRp_AutoContact(), when encountering a punctual RoutingPad in METAL1, create the protection in the METAL2 layer instead of METAL1 (current layer).
This commit is contained in:
parent
53db943d14
commit
ba23a362fb
|
@ -182,6 +182,7 @@ namespace Anabatic {
|
||||||
// Non-M1 terminal or punctual M1 protections.
|
// Non-M1 terminal or punctual M1 protections.
|
||||||
if (isInsideBlockage(gcell,rp)) flags |= NoProtect;
|
if (isInsideBlockage(gcell,rp)) flags |= NoProtect;
|
||||||
if ( ((rpDepth != 0) or (sourcePosition == targetPosition)) and not (flags & NoProtect) ) {
|
if ( ((rpDepth != 0) or (sourcePosition == targetPosition)) and not (flags & NoProtect) ) {
|
||||||
|
if (rpDepth == 0) rpDepth = 1;
|
||||||
map<Component*,AutoSegment*>::iterator irp = getRpLookup().find( rp );
|
map<Component*,AutoSegment*>::iterator irp = getRpLookup().find( rp );
|
||||||
if (irp == getRpLookup().end()) {
|
if (irp == getRpLookup().end()) {
|
||||||
AutoContact* sourceProtect = AutoContactTerminal::create( sourceGCell
|
AutoContact* sourceProtect = AutoContactTerminal::create( sourceGCell
|
||||||
|
@ -199,7 +200,7 @@ namespace Anabatic {
|
||||||
sourceProtect->setFlags( CntFixed );
|
sourceProtect->setFlags( CntFixed );
|
||||||
targetProtect->setFlags( CntFixed );
|
targetProtect->setFlags( CntFixed );
|
||||||
|
|
||||||
AutoSegment* segment = AutoSegment::create( sourceProtect, targetProtect, direction );
|
AutoSegment* segment = AutoSegment::create( sourceProtect, targetProtect, direction, rpDepth );
|
||||||
segment->setFlags( AutoSegment::SegFixed );
|
segment->setFlags( AutoSegment::SegFixed );
|
||||||
|
|
||||||
getRpLookup().insert( make_pair(rp,segment) );
|
getRpLookup().insert( make_pair(rp,segment) );
|
||||||
|
|
Loading…
Reference in New Issue