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:
Jean-Paul Chaput 2022-05-21 13:19:28 +02:00
parent 53db943d14
commit ba23a362fb
1 changed files with 2 additions and 1 deletions

View File

@ -182,6 +182,7 @@ namespace Anabatic {
// Non-M1 terminal or punctual M1 protections.
if (isInsideBlockage(gcell,rp)) 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 );
if (irp == getRpLookup().end()) {
AutoContact* sourceProtect = AutoContactTerminal::create( sourceGCell
@ -199,7 +200,7 @@ namespace Anabatic {
sourceProtect->setFlags( CntFixed );
targetProtect->setFlags( CntFixed );
AutoSegment* segment = AutoSegment::create( sourceProtect, targetProtect, direction );
AutoSegment* segment = AutoSegment::create( sourceProtect, targetProtect, direction, rpDepth );
segment->setFlags( AutoSegment::SegFixed );
getRpLookup().insert( make_pair(rp,segment) );