No longer systematically generate a digital grid when Katana is created.

* Change: In Katana, rename "_initDatabase()" into "digitalInit()", and
    explicitly calls it only when we are certain to work on a digital
    design.
This commit is contained in:
Jean-Paul Chaput 2016-09-06 16:27:20 +02:00
parent 92522fef0b
commit 061480dbd9
4 changed files with 25 additions and 3 deletions

View File

@ -69,6 +69,7 @@ namespace Katana {
katana = KatanaEngine::create( cell );
katana->setPostEventCb( boost::bind(&GraphicKatanaEngine::postEvent,this) );
katana->setViewer( _viewer );
katana->digitalInit();
if (cmess1.enabled()) katana->printConfiguration();
} else
cerr << Warning( "%s already has a Katana engine.", getString(cell).c_str() ) << endl;

View File

@ -143,7 +143,7 @@ namespace Katana {
}
void KatanaEngine::_initDataBase ()
void KatanaEngine::digitalInit ()
{
cdebug_log(155,1) << "KatanaEngine::_initDataBase()" << endl;
@ -163,7 +163,6 @@ namespace Katana {
KatanaEngine* katana = new KatanaEngine ( cell );
katana->_postCreate();
katana->_initDataBase();
return katana;
}

View File

@ -147,6 +147,26 @@ extern "C" {
}
PyObject* PyKatanaEngine_digitalInit ( PyKatanaEngine* self )
{
cdebug_log(40,0) << "PyKatanaEngine_digitalInit()" << endl;
HTRY
METHOD_HEAD("KatanaEngine.digitalInit()")
if (katana->getViewer()) {
if (ExceptionWidget::catchAllWrapper( std::bind(&KatanaEngine::digitalInit,katana) )) {
PyErr_SetString( HurricaneError, "KatanaEngine::digitalInit() has thrown an exception (C++)." );
return NULL;
}
} else {
katana->digitalInit();
}
HCATCH
Py_RETURN_NONE;
}
PyObject* PyKatanaEngine_runGlobalRouter ( PyKatanaEngine* self, PyObject* args )
{
cdebug_log(40,0) << "PyKatanaEngine_runGlobalRouter()" << endl;
@ -285,6 +305,8 @@ extern "C" {
, "Create a Katana engine on this cell." }
, { "setViewer" , (PyCFunction)PyKatanaEngine_setViewer , METH_VARARGS
, "Associate a Viewer to this KatanaEngine." }
, { "digitalInit" , (PyCFunction)PyKatanaEngine_digitalInit , METH_NOARGS
, "Setup Katana for digital routing." }
, { "printConfiguration" , (PyCFunction)PyKatanaEngine_printConfiguration , METH_NOARGS
, "Display on the console the configuration of Katana." }
, { "getToolSuccess" , (PyCFunction)PyKatanaEngine_getToolSuccess , METH_NOARGS

View File

@ -105,6 +105,7 @@ namespace Katana {
void setupGlobalGraph ( unsigned int mode );
void annotateGlobalGraph ();
void setFixedPreRouted ();
void digitalInit ();
void runNegociate ( unsigned int flags=Flags::NoFlags );
void runGlobalRouter ();
virtual void finalizeLayout ();
@ -134,7 +135,6 @@ namespace Katana {
virtual ~KatanaEngine ();
virtual void _postCreate ();
virtual void _preDestroy ();
void _initDataBase ();
private:
KatanaEngine ( const KatanaEngine& );
KatanaEngine& operator= ( const KatanaEngine& );