* ./kite:
- New: In RoutingEvent::State, in the local segment FSM, if a local terminal segment is fully blocked, try at least one dog leg.
This commit is contained in:
parent
2913d8aea1
commit
23e61de0e3
|
@ -2,14 +2,9 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// 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 |
|
// | 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 |
|
// | 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 |
|
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Module : "./BuildPowerRails.cpp" |
|
// | C++ Module : "./BuildPowerRails.cpp" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
|
@ -2,14 +2,9 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// 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 |
|
// | 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 |
|
// | 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 |
|
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Module : "./DataNegociate.cpp" |
|
// | C++ Module : "./DataNegociate.cpp" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
#include "kite/DataNegociate.h"
|
#include "kite/DataNegociate.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -535,6 +535,8 @@ namespace Kite {
|
||||||
//DebugSession::addToTrace ( getCell(), "wm_rf.nandr0" );
|
//DebugSession::addToTrace ( getCell(), "wm_rf.nandr0" );
|
||||||
//DebugSession::addToTrace ( getCell(), "adder_sub.gi_2_18" );
|
//DebugSession::addToTrace ( getCell(), "adder_sub.gi_2_18" );
|
||||||
//DebugSession::addToTrace ( getCell(), "adder_sub.pi_3_20" );
|
//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 ();
|
createDetailedGrid ();
|
||||||
buildPowerRails ();
|
buildPowerRails ();
|
||||||
|
|
|
@ -141,7 +141,7 @@ extern "C" {
|
||||||
Cell* cell = kite->getCell();
|
Cell* cell = kite->getCell();
|
||||||
PyObject* iterator = PyObject_GetIter(pyRoutingNets);
|
PyObject* iterator = PyObject_GetIter(pyRoutingNets);
|
||||||
PyObject* pyNetName = NULL;
|
PyObject* pyNetName = NULL;
|
||||||
while( pyNetName = PyIter_Next(iterator) ) {
|
while( (pyNetName = PyIter_Next(iterator)) ) {
|
||||||
if (not PyString_Check(pyNetName)) {
|
if (not PyString_Check(pyNetName)) {
|
||||||
PyErr_SetString(ConstructorError, "KiteEngine.loadGlobalRouting(): The second argument must be a container of strings.");
|
PyErr_SetString(ConstructorError, "KiteEngine.loadGlobalRouting(): The second argument must be a container of strings.");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -950,7 +950,7 @@ namespace {
|
||||||
, DbU::Unit axisHint=0
|
, DbU::Unit axisHint=0
|
||||||
);
|
);
|
||||||
bool ripupPerpandiculars ( unsigned int flags=0 );
|
bool ripupPerpandiculars ( unsigned int flags=0 );
|
||||||
void repackPerpandiculars ();
|
void repackPerpandiculars ( bool ripInserted=true );
|
||||||
bool ripple ();
|
bool ripple ();
|
||||||
bool goOutsideGCell ();
|
bool goOutsideGCell ();
|
||||||
bool minimize ();
|
bool minimize ();
|
||||||
|
@ -1856,7 +1856,8 @@ namespace {
|
||||||
success = Manipulator(segment,*this).desalignate();
|
success = Manipulator(segment,*this).desalignate();
|
||||||
break;
|
break;
|
||||||
case DataNegociate::Minimize:
|
case DataNegociate::Minimize:
|
||||||
if ( isFullBlocked() ) {
|
if ( isFullBlocked() and not segment->isTerminal() ) {
|
||||||
|
ltrace(200) << "Is Fully blocked." << endl;
|
||||||
nextState = DataNegociate::Unimplemented;
|
nextState = DataNegociate::Unimplemented;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3455,7 +3456,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Manipulator::repackPerpandiculars ()
|
void Manipulator::repackPerpandiculars ( bool ripInserted )
|
||||||
{
|
{
|
||||||
ltrace(200) << "Manipulator::repackPerpandiculars()" << endl;
|
ltrace(200) << "Manipulator::repackPerpandiculars()" << endl;
|
||||||
|
|
||||||
|
@ -3468,8 +3469,13 @@ namespace {
|
||||||
if ( perpandicular->isGlobal() ) continue;
|
if ( perpandicular->isGlobal() ) continue;
|
||||||
if ( not data ) 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 );
|
data->setState ( DataNegociate::Repair );
|
||||||
|
if (data->getStateCount() > 1)
|
||||||
|
data->resetStateCount();
|
||||||
|
}
|
||||||
_S.addAction ( perpandicular, SegmentAction::SelfRipupPerpand );
|
_S.addAction ( perpandicular, SegmentAction::SelfRipupPerpand );
|
||||||
}
|
}
|
||||||
_S.addAction ( _segment, SegmentAction::SelfRipup|SegmentAction::EventLevel4 );
|
_S.addAction ( _segment, SegmentAction::SelfRipup|SegmentAction::EventLevel4 );
|
||||||
|
@ -4119,6 +4125,9 @@ namespace Kite {
|
||||||
ltrace(200) << "Insert in free space." << endl;
|
ltrace(200) << "Insert in free space." << endl;
|
||||||
Session::addInsertEvent ( _segment, S.getCost(0).getTrack() );
|
Session::addInsertEvent ( _segment, S.getCost(0).getTrack() );
|
||||||
S.setState ( State::SelfInserted );
|
S.setState ( State::SelfInserted );
|
||||||
|
//Manipulator(_segment,S).repackPerpandiculars (false);
|
||||||
|
//S.doActions ();
|
||||||
|
//queue.commit ();
|
||||||
} else {
|
} else {
|
||||||
switch ( S.getData()->getStateCount() ) {
|
switch ( S.getData()->getStateCount() ) {
|
||||||
case 1:
|
case 1:
|
||||||
|
|
|
@ -2,14 +2,9 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// 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 |
|
// | 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 |
|
// | 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 |
|
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Header : "./DataNegociate.h" |
|
// | C++ Header : "./DataNegociate.h" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __KITE_DATA_NEGOCIATE__
|
#ifndef __KITE_DATA_NEGOCIATE__
|
||||||
|
|
|
@ -3,14 +3,9 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// 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 |
|
// | 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 |
|
// | 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 |
|
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Header : "./TrackElement.h" |
|
// | C++ Header : "./TrackElement.h" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __KITE_TRACK_ELEMENT__
|
#ifndef __KITE_TRACK_ELEMENT__
|
||||||
|
|
Loading…
Reference in New Issue