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