More accurate tests in Katabatic to stop whining about bad doglegs.
* Change: In Katabatic, in AutoSegment::canonize() and Session::_canonize() no longer tag Global as WeakGlobal also. This avoid to try to make dogleg on them when we shouldn't. They where staying WeakGlobal even when there were no longer connected to a global. * Change: In Katabatic, in AutoSegment::makeDogleg(), suppress the bug for pad message when we are in the global routing stage. At that point it is allowed to make doglegs under the pads are they are "layer change" ones.
This commit is contained in:
parent
dbf87493eb
commit
fddf11516a
|
@ -20,3 +20,11 @@ documentation/UsersGuide/UsersGuide.pdf
|
|||
documentation/UsersGuide/UsersGuide.out
|
||||
documentation/UsersGuide/UsersGuide.toc
|
||||
documentation/UsersGuide/UsersGuide.html
|
||||
|
||||
documentation/RDS/RDS.aux
|
||||
documentation/RDS/RDS.dvi
|
||||
documentation/RDS/RDS.out
|
||||
documentation/RDS/RDS.pdf
|
||||
documentation/RDS/RDS.tex
|
||||
documentation/RDS/RDS.toc
|
||||
|
||||
|
|
|
@ -1048,8 +1048,10 @@ namespace Katabatic {
|
|||
|
||||
canonical->setFlags( SegCanonical );
|
||||
if (hasGlobal) {
|
||||
for ( size_t i=0 ; i<segments.size() ; ++i )
|
||||
segments[i]->setFlags( SegWeakGlobal );
|
||||
for ( size_t i=0 ; i<segments.size() ; ++i ) {
|
||||
if (not segments[i]->isGlobal())
|
||||
segments[i]->setFlags( SegWeakGlobal );
|
||||
}
|
||||
} else {
|
||||
for ( size_t i=0 ; i<segments.size() ; ++i )
|
||||
segments[i]->unsetFlags( SegWeakGlobal );
|
||||
|
@ -1742,7 +1744,8 @@ namespace Katabatic {
|
|||
|
||||
unsigned int rflags = 0;
|
||||
|
||||
if (doglegGCell->isUnderIoPad()) {
|
||||
if ( doglegGCell->isUnderIoPad()
|
||||
and (Session::getKatabatic()->getState() != EngineGlobalLoaded) ) {
|
||||
cerr << Bug( "Attempt to make a dogleg in a GCell under a Pad\n"
|
||||
" %s\n"
|
||||
" %s"
|
||||
|
|
|
@ -172,8 +172,8 @@ namespace Katabatic {
|
|||
ltrace(110) << "Canonical: " << canonical << endl;
|
||||
|
||||
for ( size_t j=0 ; j<aligneds.size() ; j++ ) {
|
||||
if (isWeakGlobal) aligneds[j]->setFlags ( SegWeakGlobal );
|
||||
else aligneds[j]->unsetFlags( SegWeakGlobal );
|
||||
if (isWeakGlobal and not aligneds[j]->isGlobal()) aligneds[j]->setFlags ( SegWeakGlobal );
|
||||
else aligneds[j]->unsetFlags( SegWeakGlobal );
|
||||
|
||||
if (aligneds[j] == canonical) continue;
|
||||
if (aligneds[j]->isCanonical()) {
|
||||
|
|
Loading…
Reference in New Issue