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.out
|
||||||
documentation/UsersGuide/UsersGuide.toc
|
documentation/UsersGuide/UsersGuide.toc
|
||||||
documentation/UsersGuide/UsersGuide.html
|
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 );
|
canonical->setFlags( SegCanonical );
|
||||||
if (hasGlobal) {
|
if (hasGlobal) {
|
||||||
for ( size_t i=0 ; i<segments.size() ; ++i )
|
for ( size_t i=0 ; i<segments.size() ; ++i ) {
|
||||||
segments[i]->setFlags( SegWeakGlobal );
|
if (not segments[i]->isGlobal())
|
||||||
|
segments[i]->setFlags( SegWeakGlobal );
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
for ( size_t i=0 ; i<segments.size() ; ++i )
|
for ( size_t i=0 ; i<segments.size() ; ++i )
|
||||||
segments[i]->unsetFlags( SegWeakGlobal );
|
segments[i]->unsetFlags( SegWeakGlobal );
|
||||||
|
@ -1742,7 +1744,8 @@ namespace Katabatic {
|
||||||
|
|
||||||
unsigned int rflags = 0;
|
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"
|
cerr << Bug( "Attempt to make a dogleg in a GCell under a Pad\n"
|
||||||
" %s\n"
|
" %s\n"
|
||||||
" %s"
|
" %s"
|
||||||
|
|
|
@ -172,8 +172,8 @@ namespace Katabatic {
|
||||||
ltrace(110) << "Canonical: " << canonical << endl;
|
ltrace(110) << "Canonical: " << canonical << endl;
|
||||||
|
|
||||||
for ( size_t j=0 ; j<aligneds.size() ; j++ ) {
|
for ( size_t j=0 ; j<aligneds.size() ; j++ ) {
|
||||||
if (isWeakGlobal) aligneds[j]->setFlags ( SegWeakGlobal );
|
if (isWeakGlobal and not aligneds[j]->isGlobal()) aligneds[j]->setFlags ( SegWeakGlobal );
|
||||||
else aligneds[j]->unsetFlags( SegWeakGlobal );
|
else aligneds[j]->unsetFlags( SegWeakGlobal );
|
||||||
|
|
||||||
if (aligneds[j] == canonical) continue;
|
if (aligneds[j] == canonical) continue;
|
||||||
if (aligneds[j]->isCanonical()) {
|
if (aligneds[j]->isCanonical()) {
|
||||||
|
|
Loading…
Reference in New Issue