* Most of tools:
- Bug: In top CMakeLists.txt the SETUP_PROJECT_PATHS was not inserting X_USER_TOP *before* X_TOP, thus potentially allowing an obsolete system-wide configuration to shadow an up-to-date local one. * ./katabatic: - Change: In Configuration/KatabaticEngine, introduce a static Configuration object (singleton) to handle the default configuration. Configuration are now created only through cloning operations. In KatabaticEngine, the _configuration becomes a pointer (previoulsy an value). Confifuration becames a singleton and a decorator. Also adds a print method to nicely display configurations values on the terminal.
This commit is contained in:
parent
9ca0332d1e
commit
388b8b3ce0
|
@ -21,15 +21,6 @@ ENDIF(COMMAND CMAKE_POLICY)
|
||||||
# This macro has to be included in all the tools CMakeLists.txt as it's
|
# This macro has to be included in all the tools CMakeLists.txt as it's
|
||||||
# the sole means of localizing other tools/projects.
|
# the sole means of localizing other tools/projects.
|
||||||
MACRO(SETUP_PROJECT_PATHS project)
|
MACRO(SETUP_PROJECT_PATHS project)
|
||||||
IF( NOT("$ENV{${project}_USER_TOP}" STREQUAL "") )
|
|
||||||
MESSAGE("-- ${project}_USER_TOP is set to $ENV{${project}_USER_TOP}")
|
|
||||||
SET(PROJECT_MODULE_PATH "$ENV{${project}_USER_TOP}/share/cmake_modules/")
|
|
||||||
LIST(FIND CMAKE_MODULE_PATH "${PROJECT_MODULE_PATH}" DIR_INDEX)
|
|
||||||
IF( DIR_INDEX LESS 0)
|
|
||||||
LIST(INSERT CMAKE_MODULE_PATH 0 "${PROJECT_MODULE_PATH}")
|
|
||||||
ENDIF( DIR_INDEX LESS 0)
|
|
||||||
ENDIF( NOT("$ENV{${project}_USER_TOP}" STREQUAL "") )
|
|
||||||
|
|
||||||
IF( NOT("$ENV{${project}_TOP}" STREQUAL "") )
|
IF( NOT("$ENV{${project}_TOP}" STREQUAL "") )
|
||||||
MESSAGE("-- ${project}_TOP is set to $ENV{${project}_TOP}")
|
MESSAGE("-- ${project}_TOP is set to $ENV{${project}_TOP}")
|
||||||
SET(PROJECT_MODULE_PATH "$ENV{${project}_TOP}/share/cmake_modules/")
|
SET(PROJECT_MODULE_PATH "$ENV{${project}_TOP}/share/cmake_modules/")
|
||||||
|
@ -38,6 +29,15 @@ MACRO(SETUP_PROJECT_PATHS project)
|
||||||
LIST(INSERT CMAKE_MODULE_PATH 0 "${PROJECT_MODULE_PATH}")
|
LIST(INSERT CMAKE_MODULE_PATH 0 "${PROJECT_MODULE_PATH}")
|
||||||
ENDIF( DIR_INDEX LESS 0)
|
ENDIF( DIR_INDEX LESS 0)
|
||||||
ENDIF( NOT("$ENV{${project}_TOP}" STREQUAL "") )
|
ENDIF( NOT("$ENV{${project}_TOP}" STREQUAL "") )
|
||||||
|
|
||||||
|
IF( NOT("$ENV{${project}_USER_TOP}" STREQUAL "") )
|
||||||
|
MESSAGE("-- ${project}_USER_TOP is set to $ENV{${project}_USER_TOP}")
|
||||||
|
SET(PROJECT_MODULE_PATH "$ENV{${project}_USER_TOP}/share/cmake_modules/")
|
||||||
|
LIST(FIND CMAKE_MODULE_PATH "${PROJECT_MODULE_PATH}" DIR_INDEX)
|
||||||
|
IF( DIR_INDEX LESS 0)
|
||||||
|
LIST(INSERT CMAKE_MODULE_PATH 0 "${PROJECT_MODULE_PATH}")
|
||||||
|
ENDIF( DIR_INDEX LESS 0)
|
||||||
|
ENDIF( NOT("$ENV{${project}_USER_TOP}" STREQUAL "") )
|
||||||
ENDMACRO(SETUP_PROJECT_PATHS project)
|
ENDMACRO(SETUP_PROJECT_PATHS project)
|
||||||
|
|
||||||
SETUP_PROJECT_PATHS(IO)
|
SETUP_PROJECT_PATHS(IO)
|
||||||
|
|
|
@ -23,8 +23,14 @@
|
||||||
// x-----------------------------------------------------------------x
|
// x-----------------------------------------------------------------x
|
||||||
|
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <iomanip>
|
||||||
|
|
||||||
#include "hurricane/Technology.h"
|
#include "hurricane/Technology.h"
|
||||||
#include "hurricane/DataBase.h"
|
#include "hurricane/DataBase.h"
|
||||||
|
#include "hurricane/Cell.h"
|
||||||
|
#include "crlcore/Utilities.h"
|
||||||
|
#include "crlcore/AllianceFramework.h"
|
||||||
#include "katabatic/Configuration.h"
|
#include "katabatic/Configuration.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,19 +38,34 @@
|
||||||
namespace Katabatic {
|
namespace Katabatic {
|
||||||
|
|
||||||
|
|
||||||
|
using std::cout;
|
||||||
using std::cerr;
|
using std::cerr;
|
||||||
using std::endl;
|
using std::endl;
|
||||||
|
using std::setprecision;
|
||||||
using std::ostringstream;
|
using std::ostringstream;
|
||||||
using Hurricane::tab;
|
using Hurricane::tab;
|
||||||
using Hurricane::inltrace;
|
using Hurricane::inltrace;
|
||||||
using Hurricane::Technology;
|
using Hurricane::Technology;
|
||||||
using Hurricane::DataBase;
|
using Hurricane::DataBase;
|
||||||
|
using CRL::AllianceFramework;
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
// Class : "Katabatic::Configuration".
|
// Class : "Katabatic::Configuration".
|
||||||
|
|
||||||
|
|
||||||
|
Configuration* Configuration::_default = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
Configuration* Configuration::getDefault ()
|
||||||
|
{
|
||||||
|
if ( _default == NULL ) {
|
||||||
|
_default = new ConfigurationConcrete ( AllianceFramework::get()->getRoutingGauge() );
|
||||||
|
}
|
||||||
|
return _default;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Configuration::Configuration () { }
|
Configuration::Configuration () { }
|
||||||
Configuration::~Configuration () { }
|
Configuration::~Configuration () { }
|
||||||
|
|
||||||
|
@ -68,6 +89,20 @@ namespace Katabatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ConfigurationConcrete::ConfigurationConcrete ( const ConfigurationConcrete& other )
|
||||||
|
: Configuration()
|
||||||
|
, _gmetalh (other._gmetalh)
|
||||||
|
, _gmetalv (other._gmetalv)
|
||||||
|
, _gcontact (other._gcontact)
|
||||||
|
, _rg (NULL)
|
||||||
|
, _extensionCap (other._extensionCap)
|
||||||
|
, _saturateRatio (other._saturateRatio)
|
||||||
|
, _globalThreshold (other._globalThreshold)
|
||||||
|
{
|
||||||
|
if ( other._rg ) _rg = other._rg->getClone();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ConfigurationConcrete::~ConfigurationConcrete ()
|
ConfigurationConcrete::~ConfigurationConcrete ()
|
||||||
{
|
{
|
||||||
ltrace(89) << "About to delete attribute _rg (RoutingGauge)." << endl;
|
ltrace(89) << "About to delete attribute _rg (RoutingGauge)." << endl;
|
||||||
|
@ -75,6 +110,10 @@ namespace Katabatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ConfigurationConcrete* ConfigurationConcrete::clone () const
|
||||||
|
{ return new ConfigurationConcrete(*this); }
|
||||||
|
|
||||||
|
|
||||||
bool ConfigurationConcrete::isGMetal ( const Layer* layer ) const
|
bool ConfigurationConcrete::isGMetal ( const Layer* layer ) const
|
||||||
{
|
{
|
||||||
if ( !layer ) return false;
|
if ( !layer ) return false;
|
||||||
|
@ -131,6 +170,15 @@ namespace Katabatic {
|
||||||
{ _globalThreshold = threshold; }
|
{ _globalThreshold = threshold; }
|
||||||
|
|
||||||
|
|
||||||
|
void ConfigurationConcrete::print ( Cell* cell ) const
|
||||||
|
{
|
||||||
|
cout << " o Configuration of ToolEngine<Katabatic> for Cell <" << cell->getName() << ">" << endl;
|
||||||
|
cout << Dots::asIdentifier(" - Routing Gauge" ,getString(_rg->getName())) << endl;
|
||||||
|
cout << Dots::asPercentage(" - GCell saturation threshold" ,_saturateRatio) << endl;
|
||||||
|
cout << Dots::asDouble (" - Long global length threshold",DbU::getLambda(_globalThreshold)) << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
string ConfigurationConcrete::_getTypeName () const
|
string ConfigurationConcrete::_getTypeName () const
|
||||||
{
|
{
|
||||||
return "ConfigurationConcrete";
|
return "ConfigurationConcrete";
|
||||||
|
|
|
@ -101,7 +101,7 @@ namespace Katabatic {
|
||||||
{
|
{
|
||||||
KatabaticEngine* ktbt = KatabaticEngine::get ( cell );
|
KatabaticEngine* ktbt = KatabaticEngine::get ( cell );
|
||||||
if ( !ktbt )
|
if ( !ktbt )
|
||||||
ktbt = KatabaticEngine::create ( rg, cell );
|
ktbt = KatabaticEngine::create ( cell );
|
||||||
else
|
else
|
||||||
cerr << Warning("%s already has a Katabatic engine.",getString(cell).c_str()) << endl;
|
cerr << Warning("%s already has a Katabatic engine.",getString(cell).c_str()) << endl;
|
||||||
|
|
||||||
|
|
|
@ -221,7 +221,7 @@ namespace Katabatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
KatabaticEngine::KatabaticEngine ( const RoutingGauge* gauge, Cell* cell )
|
KatabaticEngine::KatabaticEngine ( Cell* cell )
|
||||||
: ToolEngine (cell)
|
: ToolEngine (cell)
|
||||||
, _timer ()
|
, _timer ()
|
||||||
, _state (StateCreation)
|
, _state (StateCreation)
|
||||||
|
@ -229,7 +229,7 @@ namespace Katabatic {
|
||||||
, _destroyBaseSegment(false)
|
, _destroyBaseSegment(false)
|
||||||
, _demoMode (false)
|
, _demoMode (false)
|
||||||
, _warnGCellOverload (false)
|
, _warnGCellOverload (false)
|
||||||
, _configuration (gauge)
|
, _configuration (Configuration::getDefault()->clone())
|
||||||
, _gcellGrid (NULL)
|
, _gcellGrid (NULL)
|
||||||
, _routingNets ()
|
, _routingNets ()
|
||||||
{
|
{
|
||||||
|
@ -254,11 +254,11 @@ namespace Katabatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
KatabaticEngine* KatabaticEngine::create ( const RoutingGauge* gauge, Cell* cell )
|
KatabaticEngine* KatabaticEngine::create ( Cell* cell )
|
||||||
{
|
{
|
||||||
ltrace(90) << "KatabaticEngine::create() - " << cell << endl;
|
ltrace(90) << "KatabaticEngine::create() - " << cell << endl;
|
||||||
|
|
||||||
KatabaticEngine* katabatic = new KatabaticEngine ( gauge, cell );
|
KatabaticEngine* katabatic = new KatabaticEngine ( cell );
|
||||||
|
|
||||||
katabatic->_postCreate ();
|
katabatic->_postCreate ();
|
||||||
|
|
||||||
|
@ -267,7 +267,9 @@ namespace Katabatic {
|
||||||
|
|
||||||
|
|
||||||
KatabaticEngine::~KatabaticEngine ()
|
KatabaticEngine::~KatabaticEngine ()
|
||||||
{ }
|
{
|
||||||
|
delete _configuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void KatabaticEngine::_preDestroy ()
|
void KatabaticEngine::_preDestroy ()
|
||||||
|
@ -306,8 +308,8 @@ namespace Katabatic {
|
||||||
ltrace(90) << "Saving AutoContacts/AutoSegments." << endl;
|
ltrace(90) << "Saving AutoContacts/AutoSegments." << endl;
|
||||||
|
|
||||||
cmess1 << " o Driving Hurricane data-base." << endl;
|
cmess1 << " o Driving Hurricane data-base." << endl;
|
||||||
cmess1 << " - AutoSegments := " << AutoSegment::getAllocateds() << endl;
|
cmess1 << Dots::asSizet(" - AutoSegments",AutoSegment::getAllocateds()) << endl;
|
||||||
cmess1 << " - AutoContacts := " << AutoContact::getAllocateds() << endl;
|
cmess1 << Dots::asSizet(" - AutoContacts",AutoContact::getAllocateds())<< endl;
|
||||||
|
|
||||||
forEach ( Net*, inet, _cell->getNets() )
|
forEach ( Net*, inet, _cell->getNets() )
|
||||||
_saveNet ( *inet );
|
_saveNet ( *inet );
|
||||||
|
@ -502,7 +504,7 @@ namespace Katabatic {
|
||||||
|
|
||||||
|
|
||||||
Configuration* KatabaticEngine::getConfiguration ()
|
Configuration* KatabaticEngine::getConfiguration ()
|
||||||
{ return &_configuration; }
|
{ return _configuration; }
|
||||||
|
|
||||||
|
|
||||||
void KatabaticEngine::loadGlobalRouting ( unsigned int method, vector<Net*>& nets )
|
void KatabaticEngine::loadGlobalRouting ( unsigned int method, vector<Net*>& nets )
|
||||||
|
@ -907,7 +909,7 @@ namespace Katabatic {
|
||||||
{
|
{
|
||||||
ostringstream os;
|
ostringstream os;
|
||||||
|
|
||||||
os << "<" << "Katabatic " << _cell->getName () << " " << _configuration.getRoutingGauge()->getName() << ">";
|
os << "<" << "Katabatic " << _cell->getName () << " " << _configuration->getRoutingGauge()->getName() << ">";
|
||||||
|
|
||||||
return ( os.str() );
|
return ( os.str() );
|
||||||
}
|
}
|
||||||
|
@ -918,7 +920,7 @@ namespace Katabatic {
|
||||||
Record* record = ToolEngine::_getRecord ();
|
Record* record = ToolEngine::_getRecord ();
|
||||||
record->add ( getSlot ( "_demoMode" , _demoMode ) );
|
record->add ( getSlot ( "_demoMode" , _demoMode ) );
|
||||||
record->add ( getSlot ( "_state" , _state ) );
|
record->add ( getSlot ( "_state" , _state ) );
|
||||||
record->add ( getSlot ( "_configuration" , &_configuration ) );
|
record->add ( getSlot ( "_configuration" , _configuration ) );
|
||||||
record->add ( getSlot ( "_gcellGrid" , _gcellGrid ) );
|
record->add ( getSlot ( "_gcellGrid" , _gcellGrid ) );
|
||||||
record->add ( getSlot ( "_routingNets" , &_routingNets ) );
|
record->add ( getSlot ( "_routingNets" , &_routingNets ) );
|
||||||
record->add ( getSlot ( "_autoContactLut" , &_autoContactLut ) );
|
record->add ( getSlot ( "_autoContactLut" , &_autoContactLut ) );
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "hurricane/DbU.h"
|
#include "hurricane/DbU.h"
|
||||||
namespace Hurricane {
|
namespace Hurricane {
|
||||||
class Layer;
|
class Layer;
|
||||||
|
class Cell;
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "crlcore/RoutingGauge.h"
|
#include "crlcore/RoutingGauge.h"
|
||||||
|
@ -46,6 +47,7 @@ namespace Katabatic {
|
||||||
using Hurricane::Record;
|
using Hurricane::Record;
|
||||||
using Hurricane::Layer;
|
using Hurricane::Layer;
|
||||||
using Hurricane::DbU;
|
using Hurricane::DbU;
|
||||||
|
using Hurricane::Cell;
|
||||||
using CRL::RoutingGauge;
|
using CRL::RoutingGauge;
|
||||||
using CRL::RoutingLayerGauge;
|
using CRL::RoutingLayerGauge;
|
||||||
|
|
||||||
|
@ -55,10 +57,12 @@ namespace Katabatic {
|
||||||
|
|
||||||
|
|
||||||
class Configuration {
|
class Configuration {
|
||||||
|
public:
|
||||||
|
static Configuration* getDefault ();
|
||||||
public:
|
public:
|
||||||
// Constructor & Destructor.
|
// Constructor & Destructor.
|
||||||
Configuration ();
|
|
||||||
virtual ~Configuration ();
|
virtual ~Configuration ();
|
||||||
|
virtual Configuration* clone () const = 0;
|
||||||
// Methods.
|
// Methods.
|
||||||
virtual bool isGMetal ( const Layer* ) const = 0;
|
virtual bool isGMetal ( const Layer* ) const = 0;
|
||||||
virtual size_t getDepth () const = 0;
|
virtual size_t getDepth () const = 0;
|
||||||
|
@ -72,12 +76,17 @@ namespace Katabatic {
|
||||||
virtual DbU::Unit getGlobalThreshold () const = 0;
|
virtual DbU::Unit getGlobalThreshold () const = 0;
|
||||||
virtual void setSaturateRatio ( float ) = 0;
|
virtual void setSaturateRatio ( float ) = 0;
|
||||||
virtual void setGlobalThreshold ( DbU::Unit ) = 0;
|
virtual void setGlobalThreshold ( DbU::Unit ) = 0;
|
||||||
|
virtual void print ( Cell* ) const = 0;
|
||||||
virtual Record* _getRecord () const = 0;
|
virtual Record* _getRecord () const = 0;
|
||||||
virtual string _getString () const = 0;
|
virtual string _getString () const = 0;
|
||||||
virtual string _getTypeName () const = 0;
|
virtual string _getTypeName () const = 0;
|
||||||
|
protected:
|
||||||
|
Configuration ();
|
||||||
private:
|
private:
|
||||||
Configuration ( const Configuration& );
|
Configuration ( const Configuration& );
|
||||||
Configuration& operator= ( const Configuration& );
|
Configuration& operator= ( const Configuration& );
|
||||||
|
private:
|
||||||
|
static Configuration* _default;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -86,9 +95,10 @@ namespace Katabatic {
|
||||||
|
|
||||||
|
|
||||||
class ConfigurationConcrete : public Configuration {
|
class ConfigurationConcrete : public Configuration {
|
||||||
|
friend class Configuration;
|
||||||
public:
|
public:
|
||||||
// Constructor & Destructor.
|
// Constructor & Destructor.
|
||||||
ConfigurationConcrete ( const RoutingGauge* );
|
virtual ConfigurationConcrete* clone () const;
|
||||||
virtual ~ConfigurationConcrete ();
|
virtual ~ConfigurationConcrete ();
|
||||||
// Methods.
|
// Methods.
|
||||||
virtual bool isGMetal ( const Layer* ) const;
|
virtual bool isGMetal ( const Layer* ) const;
|
||||||
|
@ -103,10 +113,12 @@ namespace Katabatic {
|
||||||
virtual DbU::Unit getGlobalThreshold () const;
|
virtual DbU::Unit getGlobalThreshold () const;
|
||||||
virtual void setSaturateRatio ( float );
|
virtual void setSaturateRatio ( float );
|
||||||
virtual void setGlobalThreshold ( DbU::Unit );
|
virtual void setGlobalThreshold ( DbU::Unit );
|
||||||
|
virtual void print ( Cell* ) const;
|
||||||
virtual Record* _getRecord () const;
|
virtual Record* _getRecord () const;
|
||||||
virtual string _getString () const;
|
virtual string _getString () const;
|
||||||
virtual string _getTypeName () const;
|
virtual string _getTypeName () const;
|
||||||
|
protected:
|
||||||
|
ConfigurationConcrete ( const RoutingGauge* );
|
||||||
protected:
|
protected:
|
||||||
// Attributes.
|
// Attributes.
|
||||||
const Layer* _gmetalh;
|
const Layer* _gmetalh;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// This file is part of the Coriolis Software.
|
||||||
// Copyright (c) UPMC/LIP6 2008-2009, All Rights Reserved
|
// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved
|
||||||
//
|
//
|
||||||
// ===================================================================
|
// ===================================================================
|
||||||
//
|
//
|
||||||
|
@ -103,7 +103,7 @@ namespace Katabatic {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor.
|
// Constructor.
|
||||||
static KatabaticEngine* create ( const RoutingGauge*, Cell* );
|
static KatabaticEngine* create ( Cell* );
|
||||||
// Accessors.
|
// Accessors.
|
||||||
static KatabaticEngine* get ( const Cell* );
|
static KatabaticEngine* get ( const Cell* );
|
||||||
static const Name& staticGetName ();
|
static const Name& staticGetName ();
|
||||||
|
@ -195,7 +195,7 @@ namespace Katabatic {
|
||||||
bool _destroyBaseSegment;
|
bool _destroyBaseSegment;
|
||||||
bool _demoMode;
|
bool _demoMode;
|
||||||
bool _warnGCellOverload;
|
bool _warnGCellOverload;
|
||||||
ConfigurationConcrete _configuration;
|
Configuration* _configuration;
|
||||||
GCellGrid* _gcellGrid;
|
GCellGrid* _gcellGrid;
|
||||||
vector<Net*> _routingNets;
|
vector<Net*> _routingNets;
|
||||||
AutoSegmentLut _autoSegmentLut;
|
AutoSegmentLut _autoSegmentLut;
|
||||||
|
@ -203,7 +203,7 @@ namespace Katabatic {
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Constructors & Destructors.
|
// Constructors & Destructors.
|
||||||
KatabaticEngine ( const RoutingGauge*, Cell* );
|
KatabaticEngine ( Cell* );
|
||||||
virtual ~KatabaticEngine ();
|
virtual ~KatabaticEngine ();
|
||||||
virtual void _postCreate ();
|
virtual void _postCreate ();
|
||||||
virtual void _preDestroy ();
|
virtual void _preDestroy ();
|
||||||
|
@ -219,24 +219,24 @@ namespace Katabatic {
|
||||||
inline bool KatabaticEngine::doDestroyTool () const { return _state >= StateGutted; }
|
inline bool KatabaticEngine::doDestroyTool () const { return _state >= StateGutted; }
|
||||||
inline bool KatabaticEngine::setDestroyBaseContact ( bool state ) { bool p=_destroyBaseContact; _destroyBaseContact = state; return p; }
|
inline bool KatabaticEngine::setDestroyBaseContact ( bool state ) { bool p=_destroyBaseContact; _destroyBaseContact = state; return p; }
|
||||||
inline bool KatabaticEngine::setDestroyBaseSegment ( bool state ) { bool p=_destroyBaseSegment; _destroyBaseSegment = state; return p; }
|
inline bool KatabaticEngine::setDestroyBaseSegment ( bool state ) { bool p=_destroyBaseSegment; _destroyBaseSegment = state; return p; }
|
||||||
inline Configuration* KatabaticEngine::getKatabaticConfiguration () { return &_configuration; }
|
inline Configuration* KatabaticEngine::getKatabaticConfiguration () { return _configuration; }
|
||||||
inline bool KatabaticEngine::isGMetal ( const Layer* layer ) const { return _configuration.isGMetal(layer); }
|
inline bool KatabaticEngine::isGMetal ( const Layer* layer ) const { return _configuration->isGMetal(layer); }
|
||||||
inline void KatabaticEngine::setDemoMode ( bool mode ) { _demoMode = mode; }
|
inline void KatabaticEngine::setDemoMode ( bool mode ) { _demoMode = mode; }
|
||||||
inline void KatabaticEngine::setWarnGCellOverload ( bool mode ) { _warnGCellOverload = mode; }
|
inline void KatabaticEngine::setWarnGCellOverload ( bool mode ) { _warnGCellOverload = mode; }
|
||||||
inline void KatabaticEngine::setSaturateRatio ( float ratio ) { _configuration.setSaturateRatio(ratio); }
|
inline void KatabaticEngine::setSaturateRatio ( float ratio ) { _configuration->setSaturateRatio(ratio); }
|
||||||
inline void KatabaticEngine::setGlobalThreshold ( DbU::Unit threshold ) { _configuration.setGlobalThreshold(threshold); }
|
inline void KatabaticEngine::setGlobalThreshold ( DbU::Unit threshold ) { _configuration->setGlobalThreshold(threshold); }
|
||||||
inline bool KatabaticEngine::getDemoMode () { return _demoMode; }
|
inline bool KatabaticEngine::getDemoMode () { return _demoMode; }
|
||||||
inline bool KatabaticEngine::getWarnGCellOverload () { return _warnGCellOverload; }
|
inline bool KatabaticEngine::getWarnGCellOverload () { return _warnGCellOverload; }
|
||||||
inline EngineState KatabaticEngine::getState () const { return _state; }
|
inline EngineState KatabaticEngine::getState () const { return _state; }
|
||||||
inline RoutingGauge* KatabaticEngine::getRoutingGauge () const { return _configuration.getRoutingGauge(); }
|
inline RoutingGauge* KatabaticEngine::getRoutingGauge () const { return _configuration->getRoutingGauge(); }
|
||||||
inline RoutingLayerGauge* KatabaticEngine::getLayerGauge ( size_t depth ) const { return _configuration.getLayerGauge(depth); }
|
inline RoutingLayerGauge* KatabaticEngine::getLayerGauge ( size_t depth ) const { return _configuration->getLayerGauge(depth); }
|
||||||
inline const Layer* KatabaticEngine::getRoutingLayer ( size_t depth ) const { return _configuration.getRoutingLayer(depth); }
|
inline const Layer* KatabaticEngine::getRoutingLayer ( size_t depth ) const { return _configuration->getRoutingLayer(depth); }
|
||||||
inline Layer* KatabaticEngine::getContactLayer ( size_t depth ) const { return _configuration.getContactLayer(depth); }
|
inline Layer* KatabaticEngine::getContactLayer ( size_t depth ) const { return _configuration->getContactLayer(depth); }
|
||||||
inline GCellGrid* KatabaticEngine::getGCellGrid () const { return _gcellGrid; }
|
inline GCellGrid* KatabaticEngine::getGCellGrid () const { return _gcellGrid; }
|
||||||
inline const vector<Net*>& KatabaticEngine::getRoutingNets () const { return _routingNets; }
|
inline const vector<Net*>& KatabaticEngine::getRoutingNets () const { return _routingNets; }
|
||||||
inline DbU::Unit KatabaticEngine::getGlobalThreshold () const { return _configuration.getGlobalThreshold(); }
|
inline DbU::Unit KatabaticEngine::getGlobalThreshold () const { return _configuration->getGlobalThreshold(); }
|
||||||
inline float KatabaticEngine::getSaturateRatio () const { return _configuration.getSaturateRatio(); }
|
inline float KatabaticEngine::getSaturateRatio () const { return _configuration->getSaturateRatio(); }
|
||||||
inline DbU::Unit KatabaticEngine::getExtensionCap () const { return _configuration.getExtensionCap(); }
|
inline DbU::Unit KatabaticEngine::getExtensionCap () const { return _configuration->getExtensionCap(); }
|
||||||
inline AutoContactLut& KatabaticEngine::_getAutoContactLut () { return _autoContactLut; }
|
inline AutoContactLut& KatabaticEngine::_getAutoContactLut () { return _autoContactLut; }
|
||||||
inline AutoSegmentLut& KatabaticEngine::_getAutoSegmentLut () { return _autoSegmentLut; }
|
inline AutoSegmentLut& KatabaticEngine::_getAutoSegmentLut () { return _autoSegmentLut; }
|
||||||
inline void KatabaticEngine::setState ( EngineState state ) { _state = state; }
|
inline void KatabaticEngine::setState ( EngineState state ) { _state = state; }
|
||||||
|
|
Loading…
Reference in New Issue