diff --git a/kite/src/BuildPowerRails.cpp b/kite/src/BuildPowerRails.cpp index 6048087b..f8b615b7 100644 --- a/kite/src/BuildPowerRails.cpp +++ b/kite/src/BuildPowerRails.cpp @@ -2,14 +2,9 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved +// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | C O R I O L I S | // | K i t e - D e t a i l e d R o u t e r | // | | @@ -17,10 +12,7 @@ // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | // | C++ Module : "./BuildPowerRails.cpp" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x +// +-----------------------------------------------------------------+ #include diff --git a/kite/src/DataNegociate.cpp b/kite/src/DataNegociate.cpp index d8a89540..a410e7f4 100644 --- a/kite/src/DataNegociate.cpp +++ b/kite/src/DataNegociate.cpp @@ -2,14 +2,9 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved +// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | C O R I O L I S | // | K i t e - D e t a i l e d R o u t e r | // | | @@ -17,17 +12,11 @@ // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | // | C++ Module : "./DataNegociate.cpp" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x - - +// +-----------------------------------------------------------------+ #include #include - #include "kite/DataNegociate.h" diff --git a/kite/src/KiteEngine.cpp b/kite/src/KiteEngine.cpp index d581cb8c..b1586d29 100644 --- a/kite/src/KiteEngine.cpp +++ b/kite/src/KiteEngine.cpp @@ -535,6 +535,8 @@ namespace Kite { //DebugSession::addToTrace ( getCell(), "wm_rf.nandr0" ); //DebugSession::addToTrace ( getCell(), "adder_sub.gi_2_18" ); //DebugSession::addToTrace ( getCell(), "adder_sub.pi_3_20" ); + //DebugSession::addToTrace ( getCell(), "core.iram.na4_x1_2_sig" ); + //DebugSession::addToTrace ( getCell(), "core.ialu.mx3_x2_4_sig" ); createDetailedGrid (); buildPowerRails (); diff --git a/kite/src/PyKiteEngine.cpp b/kite/src/PyKiteEngine.cpp index f0caa455..0c28bf1d 100644 --- a/kite/src/PyKiteEngine.cpp +++ b/kite/src/PyKiteEngine.cpp @@ -141,7 +141,7 @@ extern "C" { Cell* cell = kite->getCell(); PyObject* iterator = PyObject_GetIter(pyRoutingNets); PyObject* pyNetName = NULL; - while( pyNetName = PyIter_Next(iterator) ) { + while( (pyNetName = PyIter_Next(iterator)) ) { if (not PyString_Check(pyNetName)) { PyErr_SetString(ConstructorError, "KiteEngine.loadGlobalRouting(): The second argument must be a container of strings."); return NULL; diff --git a/kite/src/RoutingEvent.cpp b/kite/src/RoutingEvent.cpp index 7f31e4b9..09e56fc0 100644 --- a/kite/src/RoutingEvent.cpp +++ b/kite/src/RoutingEvent.cpp @@ -950,7 +950,7 @@ namespace { , DbU::Unit axisHint=0 ); bool ripupPerpandiculars ( unsigned int flags=0 ); - void repackPerpandiculars (); + void repackPerpandiculars ( bool ripInserted=true ); bool ripple (); bool goOutsideGCell (); bool minimize (); @@ -1856,7 +1856,8 @@ namespace { success = Manipulator(segment,*this).desalignate(); break; case DataNegociate::Minimize: - if ( isFullBlocked() ) { + if ( isFullBlocked() and not segment->isTerminal() ) { + ltrace(200) << "Is Fully blocked." << endl; nextState = DataNegociate::Unimplemented; break; } @@ -3455,7 +3456,7 @@ namespace { } - void Manipulator::repackPerpandiculars () + void Manipulator::repackPerpandiculars ( bool ripInserted ) { ltrace(200) << "Manipulator::repackPerpandiculars()" << endl; @@ -3468,8 +3469,13 @@ namespace { if ( perpandicular->isGlobal() ) continue; if ( not data ) continue; - if ( RoutingEvent::getStage() == RoutingEvent::Repair ) + if ( RoutingEvent::getStage() == RoutingEvent::Repair ) { + if (data->getTrack() and not ripInserted) continue; + data->setState ( DataNegociate::Repair ); + if (data->getStateCount() > 1) + data->resetStateCount(); + } _S.addAction ( perpandicular, SegmentAction::SelfRipupPerpand ); } _S.addAction ( _segment, SegmentAction::SelfRipup|SegmentAction::EventLevel4 ); @@ -4119,6 +4125,9 @@ namespace Kite { ltrace(200) << "Insert in free space." << endl; Session::addInsertEvent ( _segment, S.getCost(0).getTrack() ); S.setState ( State::SelfInserted ); + //Manipulator(_segment,S).repackPerpandiculars (false); + //S.doActions (); + //queue.commit (); } else { switch ( S.getData()->getStateCount() ) { case 1: diff --git a/kite/src/kite/DataNegociate.h b/kite/src/kite/DataNegociate.h index a34921df..9c71ad40 100644 --- a/kite/src/kite/DataNegociate.h +++ b/kite/src/kite/DataNegociate.h @@ -2,14 +2,9 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved +// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | C O R I O L I S | // | K i t e - D e t a i l e d R o u t e r | // | | @@ -17,12 +12,7 @@ // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | // | C++ Header : "./DataNegociate.h" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x - - +// +-----------------------------------------------------------------+ #ifndef __KITE_DATA_NEGOCIATE__ diff --git a/kite/src/kite/TrackElement.h b/kite/src/kite/TrackElement.h index f566d9ff..dd494ea6 100644 --- a/kite/src/kite/TrackElement.h +++ b/kite/src/kite/TrackElement.h @@ -3,14 +3,9 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved +// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | C O R I O L I S | // | K i t e - D e t a i l e d R o u t e r | // | | @@ -18,12 +13,7 @@ // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | // | C++ Header : "./TrackElement.h" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x - - +// +-----------------------------------------------------------------+ #ifndef __KITE_TRACK_ELEMENT__