diff --git a/anabatic/src/AnabaticEngine.cpp b/anabatic/src/AnabaticEngine.cpp index 80fe8d3f..0c5c3f6f 100644 --- a/anabatic/src/AnabaticEngine.cpp +++ b/anabatic/src/AnabaticEngine.cpp @@ -958,6 +958,14 @@ namespace Anabatic { { _timer.stop(); } + void AnabaticEngine::suspendMeasures () + { _timer.suspend(); } + + + void AnabaticEngine::resumeMeasures () + { _timer.resume(); } + + void AnabaticEngine::printMeasures ( const string& tag ) const { ostringstream result; diff --git a/anabatic/src/anabatic/AnabaticEngine.h b/anabatic/src/anabatic/AnabaticEngine.h index 2f271784..4389d0e6 100644 --- a/anabatic/src/anabatic/AnabaticEngine.h +++ b/anabatic/src/anabatic/AnabaticEngine.h @@ -278,6 +278,8 @@ namespace Anabatic { inline const Timer& getTimer () const; void startMeasures (); void stopMeasures (); + void suspendMeasures (); + void resumeMeasures (); void printMeasures ( const string& ) const; inline void _add ( GCell* ); inline void _remove ( GCell* ); diff --git a/cumulus/src/plugins/chip/BlockCorona.py b/cumulus/src/plugins/chip/BlockCorona.py index 221247db..dac9f219 100644 --- a/cumulus/src/plugins/chip/BlockCorona.py +++ b/cumulus/src/plugins/chip/BlockCorona.py @@ -538,6 +538,7 @@ class Corona ( object ): if self.horizontalDepth > self.verticalDepth: contactDepth = self.verticalDepth + UpdateSession.open() for i in range(self._railsNb): xBL = self._westSide .getRail(i).axis yBL = self._southSide.getRail(i).axis @@ -582,4 +583,5 @@ class Corona ( object ): self._westSide.addBlockages() self._eastSide.addBlockages() + UpdateSession.close() return diff --git a/cumulus/src/plugins/clocktree/ClockTree.py b/cumulus/src/plugins/clocktree/ClockTree.py index d4beb9c6..cb681c60 100755 --- a/cumulus/src/plugins/clocktree/ClockTree.py +++ b/cumulus/src/plugins/clocktree/ClockTree.py @@ -105,6 +105,7 @@ class HTree ( GaugeConfWrapper ): raise ErrorMessage( 3, 'ClockTree: clockTree.minimumSide (%g) is less than 100 lambda.' \ % DbU.toLambda(self.minSide) ) + UpdateSession.open() self.framework = CRL.AllianceFramework.get() self.cell = cell self.area = area @@ -126,6 +127,7 @@ class HTree ( GaugeConfWrapper ): if not self.masterClock: raise ErrorMessage( 3, 'ClockTree: Cell %s has no clock net.' % cell.getName() ) self._createChildNet( self.topBuffer, 'ck_htree' ) + UpdateSession.close() return @@ -371,6 +373,7 @@ class HTreeNode ( object ): DownBranch = 0x0010 def __init__ ( self, topTree, sourceBuffer, area, prefix, flags ): + UpdateSession.open() self.topTree = topTree self.childs = [] self.blLeafs = [] @@ -406,6 +409,7 @@ class HTreeNode ( object ): self.childs.append( HTreeNode( self.topTree, self.tlBuffer, self.tlArea(), self.prefix+'_tl', 0 ) ) self.childs.append( HTreeNode( self.topTree, self.trBuffer, self.trArea(), self.prefix+'_tr', 0 ) ) + UpdateSession.close() return def xmin ( self ): return self.area.getXMin() diff --git a/katana/src/GlobalRoute.cpp b/katana/src/GlobalRoute.cpp index cee3fee5..6cbff892 100644 --- a/katana/src/GlobalRoute.cpp +++ b/katana/src/GlobalRoute.cpp @@ -150,7 +150,7 @@ namespace Katana { annotateGlobalGraph(); startMeasures(); - cmess1 << " o Running global routing..." << endl; + cmess1 << " o Running global routing." << endl; float edgeHInc = getConfiguration()->getEdgeHInc(); @@ -198,10 +198,10 @@ namespace Katana { dijkstra->setSearchAreaHalo( Session::getSliceHeight()*3 ); cmess2 << " ripup:" << setw(4) << netCount << right; - stopMeasures(); + suspendMeasures(); cmess2 << " " << setw(10) << Timer::getStringTime (getTimer().getCombTime()) << " " << setw( 6) << Timer::getStringMemory(getTimer().getIncrease()) << endl; - startMeasures(); + resumeMeasures(); ++iteration; } while ( (netCount > 0) and (iteration < 5) ); diff --git a/stratus1/src/stratus/stratus.py b/stratus1/src/stratus/stratus.py index aa1afb13..abf0f85c 100644 --- a/stratus1/src/stratus/stratus.py +++ b/stratus1/src/stratus/stratus.py @@ -32,6 +32,7 @@ try: print ' - Netlist format: <%s>.' % Cfg.getParamString('stratus1.format').asString() print ' - Simulator: <%s>.' % Cfg.getParamString('stratus1.simulator').asString() + from Hurricane import UpdateSession from st_model import * from st_net import * from st_instance import * @@ -82,6 +83,7 @@ def buildModel ( moduleName, flags, className=None, modelName=None, parameters={ print '[ERROR] Stratus module <%s> do not contains a design named <%s>.' % (moduleName,className) sys.exit(1) + UpdateSession.open() print ' - Generating Stratus Model <%s> (generator:<%s>).' % (modelName, className) model = module.__dict__[className](modelName,parameters) model.Interface() @@ -93,6 +95,7 @@ def buildModel ( moduleName, flags, className=None, modelName=None, parameters={ if flags & DoStop: stopLevel = 1 model.View(stopLevel, 'Model %s' % modelName) model.Save(LOGICAL|PHYSICAL) + UpdateSession.close() except ImportError, e: module = str(e).split()[-1]