Rename SymmetricStage into PairSymmetrics, plus small cleanup.
This commit is contained in:
parent
3e825cc228
commit
e12e45e495
|
@ -3413,7 +3413,6 @@ namespace Anabatic {
|
|||
if (NetRoutingExtension::isAutomaticGlobalRoute(net)) {
|
||||
DebugSession::open( net, 144, 150 );
|
||||
AutoSegment::setAnalogMode( NetRoutingExtension::isAnalog(net) );
|
||||
cerr << net << " AnalogMode:" << NetRoutingExtension::get(net) << endl;
|
||||
_loadNetGlobalRouting( net );
|
||||
Session::revalidate();
|
||||
DebugSession::close();
|
||||
|
|
|
@ -192,7 +192,7 @@ stylesTable = \
|
|||
, (Drawing, 'gmetalv' , { 'color':'200,200,255', 'pattern':'light_antihash1.8', 'border':1 })
|
||||
, (Drawing, 'gcut' , { 'color':'255,255,190', 'border':1 })
|
||||
, (Drawing, 'Anabatic::Edge' , { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4, 'threshold':0.02*scale })
|
||||
, (Drawing, 'Anabatic::GCell', { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4, 'threshold':0.10*scale })
|
||||
, (Drawing, 'Anabatic::GCell', { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':2, 'threshold':0.10*scale })
|
||||
)
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
&& latex UsersGuide
|
||||
&& dvipdfm UsersGuide
|
||||
)
|
||||
add_dependencies ( doc_HTML socstyle.tex UsersGuide_LaTeX.rst UsersGuide.rst )
|
||||
add_dependencies ( doc_LaTeX socstyle.tex UsersGuide_LaTeX.rst UsersGuide.rst )
|
||||
|
||||
install ( DIRECTORY images/
|
||||
DESTINATION ${htmlInstallDir}/images
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace Katana {
|
|||
const Hurricane::BaseFlags Flags::LoadingStage = (1 << 28);
|
||||
const Hurricane::BaseFlags Flags::SlowMotion = (1 << 29);
|
||||
const Hurricane::BaseFlags Flags::PreRoutedStage = (1 << 30);
|
||||
const Hurricane::BaseFlags Flags::SymmetricStage = (1 << 31);
|
||||
const Hurricane::BaseFlags Flags::PairSymmetrics = (1 << 31);
|
||||
|
||||
|
||||
} // Anabatic namespace.
|
||||
|
|
|
@ -256,7 +256,7 @@ namespace Katana {
|
|||
void GraphicKatanaEngine::_runNegociate ()
|
||||
{
|
||||
KatanaEngine* katana = getForFramework( NoFlags );
|
||||
katana->runNegociate();
|
||||
katana->runNegociate( Flags::PairSymmetrics );
|
||||
}
|
||||
|
||||
|
||||
|
@ -277,7 +277,7 @@ namespace Katana {
|
|||
katana->loadGlobalRouting( Anabatic::EngineLoadGrByNet );
|
||||
// Now done through Horus.
|
||||
//katana->runTest();
|
||||
katana->runNegociate( Flags::SymmetricStage );
|
||||
katana->runNegociate( Flags::PairSymmetrics );
|
||||
//katana->runNegociate();
|
||||
}
|
||||
}
|
||||
|
@ -387,11 +387,13 @@ namespace Katana {
|
|||
, "Save routed design (temporary hack)"
|
||||
, std::bind(&GraphicKatanaEngine::_save,this)
|
||||
);
|
||||
#if NO_NEED_OF_IT_NOW
|
||||
_viewer->addToMenu( "placeAndRoute.katana.stepByStep.runTest"
|
||||
, "Katana - Run &Test"
|
||||
, "Run Test Program (symmetric routing of gmChamla)"
|
||||
, std::bind(&GraphicKatanaEngine::_runTest,this)
|
||||
);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -468,6 +468,7 @@ namespace Katana {
|
|||
|
||||
void KatanaEngine::runTest ()
|
||||
{
|
||||
#if PUT_HERE_WHATEVER_YOU_WANT_TO_TEST
|
||||
if (getCell()->getName() != "gmchamla")
|
||||
throw Error( "KatanaEngine::runTest() Work only on \"gmchamla\" (loaded:\"%s\")."
|
||||
, getString(getCell()->getName()).c_str()
|
||||
|
@ -482,6 +483,7 @@ namespace Katana {
|
|||
setSymmetricPair( getCell(), "ampp_4" , "ampn_4" );
|
||||
setSymmetricPair( getCell(), "ampp_2" , "ampn_2" );
|
||||
setSymmetricPair( getCell(), "ampp_1" , "ampn_1" );
|
||||
#endif
|
||||
}
|
||||
|
||||
void KatanaEngine::printCompletion () const
|
||||
|
@ -674,9 +676,13 @@ namespace Katana {
|
|||
_routingPlanes[depth]->destroy();
|
||||
}
|
||||
_routingPlanes.clear();
|
||||
|
||||
while ( not _symmetrics.empty() ) {
|
||||
auto element = _symmetrics.begin();
|
||||
|
||||
//for ( auto symmetric : _symmetrics ) delete symmetric.second;
|
||||
_symmetrics.clear();
|
||||
if (element->first == element->second->getNet()) delete element->second;
|
||||
_symmetrics.erase( element->first );
|
||||
}
|
||||
|
||||
Session::close();
|
||||
}
|
||||
|
|
|
@ -443,22 +443,6 @@ namespace Katana {
|
|||
while ( not _eventQueue.empty() and not isInterrupted() ) {
|
||||
RoutingEvent* event = _eventQueue.pop();
|
||||
|
||||
if (tty::enabled()) {
|
||||
cmess2 << " <event:" << tty::bold << right << setw(8) << setfill('0')
|
||||
<< RoutingEvent::getProcesseds() << tty::reset
|
||||
<< " remains:" << right << setw(8) << setfill('0')
|
||||
<< _eventQueue.size()
|
||||
<< setfill(' ') << tty::reset << ">" << tty::cr;
|
||||
cmess2.flush ();
|
||||
} else {
|
||||
cmess2 << " <event:" << right << setw(8) << setfill('0')
|
||||
<< RoutingEvent::getProcesseds() << setfill(' ') << " "
|
||||
<< event->getEventLevel() << ":" << event->getPriority() << "> "
|
||||
<< event->getSegment()
|
||||
<< endl;
|
||||
cmess2.flush();
|
||||
}
|
||||
|
||||
if (ofprofile.is_open()) {
|
||||
size_t depth = _katana->getConfiguration()->getLayerDepth( event->getSegment()->getLayer() );
|
||||
if (depth < 6) {
|
||||
|
@ -477,6 +461,22 @@ namespace Katana {
|
|||
event->process( _eventQueue, _eventHistory, _eventLoop );
|
||||
count++;
|
||||
|
||||
if (tty::enabled()) {
|
||||
cmess2 << " <event:" << tty::bold << right << setw(8) << setfill('0')
|
||||
<< RoutingEvent::getProcesseds() << tty::reset
|
||||
<< " remains:" << right << setw(8) << setfill('0')
|
||||
<< _eventQueue.size()+1
|
||||
<< setfill(' ') << tty::reset << ">" << tty::cr;
|
||||
cmess2.flush ();
|
||||
} else {
|
||||
cmess2 << " <event:" << right << setw(8) << setfill('0')
|
||||
<< RoutingEvent::getProcesseds()-1 << setfill(' ') << " "
|
||||
<< event->getEventLevel() << ":" << event->getPriority() << "> "
|
||||
<< event->getSegment()
|
||||
<< endl;
|
||||
cmess2.flush();
|
||||
}
|
||||
|
||||
//if (count and not (count % 500)) {
|
||||
// _pack( count, false );
|
||||
//}
|
||||
|
@ -574,8 +574,8 @@ namespace Katana {
|
|||
Session::getKatanaEngine()->_check( overlaps, "after _createRouting(GCell*)" );
|
||||
#endif
|
||||
|
||||
if (flags & Flags::SymmetricStage) {
|
||||
_katana->runSymmetricRouter();
|
||||
if (flags & Flags::PairSymmetrics) {
|
||||
_katana->pairSymmetrics();
|
||||
Session::revalidate();
|
||||
}
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ extern "C" {
|
|||
LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::NoFlags ,"NoFlags" );
|
||||
LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::SlowMotion ,"SlowMotion" );
|
||||
LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::PreRoutedStage,"PreRoutedStage");
|
||||
LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::SymmetricStage,"SymmetricStage");
|
||||
LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::PairSymmetrics,"PairSymmetrics");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -392,7 +392,7 @@ namespace Katana {
|
|||
using namespace std;
|
||||
|
||||
|
||||
void KatanaEngine::runSymmetricRouter ()
|
||||
void KatanaEngine::pairSymmetrics ()
|
||||
{
|
||||
for ( Net* net : getCell()->getNets() ) {
|
||||
if (not NetRoutingExtension::isSymmetric(net)) continue;
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace Katana {
|
|||
static const Hurricane::BaseFlags LoadingStage;
|
||||
static const Hurricane::BaseFlags SlowMotion;
|
||||
static const Hurricane::BaseFlags PreRoutedStage;
|
||||
static const Hurricane::BaseFlags SymmetricStage;
|
||||
static const Hurricane::BaseFlags PairSymmetrics;
|
||||
public:
|
||||
inline Flags ( uint64_t );
|
||||
inline Flags ( const Super& );
|
||||
|
|
|
@ -114,9 +114,9 @@ namespace Katana {
|
|||
void setFixedPreRouted ();
|
||||
void digitalInit ();
|
||||
void analogInit ();
|
||||
void pairSymmetrics ();
|
||||
void runNegociate ( Flags flags=Flags::NoFlags );
|
||||
void runGlobalRouter ();
|
||||
void runSymmetricRouter ();
|
||||
void runTest ();
|
||||
virtual void finalizeLayout ();
|
||||
void _runKatanaInit ();
|
||||
|
|
Loading…
Reference in New Issue