* All Tools:
- New: Added FreeBSD/Ubuntu patches from Otacilio De Araujo (<otaciliodearaujo@gmail.com>). * ./kite: - New: Makes use of cbug to display the (scary) debug messages. - Change: Re-enable deletion of Knik in Kite destructor.
This commit is contained in:
parent
6a7e664087
commit
619a1b9f72
|
@ -26,6 +26,7 @@
|
||||||
find_package(CORIOLIS REQUIRED)
|
find_package(CORIOLIS REQUIRED)
|
||||||
find_package(KNIK REQUIRED)
|
find_package(KNIK REQUIRED)
|
||||||
find_package(KATABATIC REQUIRED)
|
find_package(KATABATIC REQUIRED)
|
||||||
|
find_package(Libexecinfo REQUIRED)
|
||||||
if(BUILD_DOC)
|
if(BUILD_DOC)
|
||||||
find_package(Doxygen)
|
find_package(Doxygen)
|
||||||
endif(BUILD_DOC)
|
endif(BUILD_DOC)
|
||||||
|
|
|
@ -87,6 +87,7 @@
|
||||||
${Boost_LIBRARIES}
|
${Boost_LIBRARIES}
|
||||||
${LIBXML2_LIBRARIES}
|
${LIBXML2_LIBRARIES}
|
||||||
${PYTHON_LIBRARIES} -lutil
|
${PYTHON_LIBRARIES} -lutil
|
||||||
|
${LIBEXECINFO_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library ( pyKite MODULE ${pyCpps} )
|
add_library ( pyKite MODULE ${pyCpps} )
|
||||||
|
|
|
@ -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 : "./KiteEngine.cpp" |
|
// | C++ Module : "./KiteEngine.cpp" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -164,7 +156,7 @@ namespace Kite {
|
||||||
|
|
||||||
cmess2 << " - RoutingEvents := " << RoutingEvent::getAllocateds() << endl;
|
cmess2 << " - RoutingEvents := " << RoutingEvent::getAllocateds() << endl;
|
||||||
|
|
||||||
//_knik->destroy ();
|
_knik->destroy ();
|
||||||
|
|
||||||
ltraceout(90);
|
ltraceout(90);
|
||||||
}
|
}
|
||||||
|
@ -355,7 +347,7 @@ namespace Kite {
|
||||||
size_t tracksSize = rp->getTracksSize();
|
size_t tracksSize = rp->getTracksSize();
|
||||||
for ( size_t itrack=0 ; itrack<tracksSize ; ++itrack ) {
|
for ( size_t itrack=0 ; itrack<tracksSize ; ++itrack ) {
|
||||||
Track* track = rp->getTrackByIndex ( itrack );
|
Track* track = rp->getTrackByIndex ( itrack );
|
||||||
Knik::Edge* edge = NULL;
|
//Knik::Edge* edge = NULL;
|
||||||
|
|
||||||
ltrace(300) << "Capacity from: " << track << endl;
|
ltrace(300) << "Capacity from: " << track << endl;
|
||||||
|
|
||||||
|
@ -539,6 +531,10 @@ namespace Kite {
|
||||||
// DebugSession::addToTrace ( getCell(), "mips_r3000_core.mips_r3000_1m_dp.addsub32_carith_se.gi_3_23" );
|
// DebugSession::addToTrace ( getCell(), "mips_r3000_core.mips_r3000_1m_dp.addsub32_carith_se.gi_3_23" );
|
||||||
// DebugSession::addToTrace ( getCell(), "mips_r3000_core.mips_r3000_1m_dp.addsub32_carith_se.gi_3_28" );
|
// DebugSession::addToTrace ( getCell(), "mips_r3000_core.mips_r3000_1m_dp.addsub32_carith_se.gi_3_28" );
|
||||||
//DebugSession::addToTrace ( getCell(), "cout_to_pads" );
|
//DebugSession::addToTrace ( getCell(), "cout_to_pads" );
|
||||||
|
//DebugSession::addToTrace ( getCell(), "mux_5.sel0" );
|
||||||
|
//DebugSession::addToTrace ( getCell(), "wm_rf.nandr0" );
|
||||||
|
//DebugSession::addToTrace ( getCell(), "adder_sub.gi_2_18" );
|
||||||
|
//DebugSession::addToTrace ( getCell(), "adder_sub.pi_3_20" );
|
||||||
|
|
||||||
createDetailedGrid ();
|
createDetailedGrid ();
|
||||||
buildPowerRails ();
|
buildPowerRails ();
|
||||||
|
|
|
@ -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-2011, All Rights Reserved
|
// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved
|
||||||
//
|
|
||||||
// ===================================================================
|
|
||||||
//
|
|
||||||
// $Id$
|
|
||||||
//
|
//
|
||||||
// +-----------------------------------------------------------------+
|
// +-----------------------------------------------------------------+
|
||||||
// | |
|
|
||||||
// | 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,9 +12,6 @@
|
||||||
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Module : "./NegociateWindow.cpp" |
|
// | C++ Module : "./NegociateWindow.cpp" |
|
||||||
// | *************************************************************** |
|
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// +-----------------------------------------------------------------+
|
// +-----------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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-2011, All Rights Reserved
|
// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved
|
||||||
//
|
|
||||||
// ===================================================================
|
|
||||||
//
|
|
||||||
// $Id$
|
|
||||||
//
|
//
|
||||||
// +-----------------------------------------------------------------+
|
// +-----------------------------------------------------------------+
|
||||||
// | |
|
|
||||||
// | 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,9 +12,6 @@
|
||||||
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Module : "./RoutingEvent.cpp" |
|
// | C++ Module : "./RoutingEvent.cpp" |
|
||||||
// | *************************************************************** |
|
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// +-----------------------------------------------------------------+
|
// +-----------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
@ -1619,7 +1611,7 @@ namespace {
|
||||||
Track* track = candidates[icandidate].getTrack();
|
Track* track = candidates[icandidate].getTrack();
|
||||||
TrackElement* other = track->getSegment(overlap.getCenter());
|
TrackElement* other = track->getSegment(overlap.getCenter());
|
||||||
if ( not other ) {
|
if ( not other ) {
|
||||||
cerr << Error("conflictSolve1_v1b(): No segment under overlap center.") << endl;
|
cbug << Error("conflictSolve1_v1b(): No segment under overlap center.") << endl;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2004,7 +1996,7 @@ namespace {
|
||||||
} else {
|
} else {
|
||||||
clearActions ();
|
clearActions ();
|
||||||
if ( data->getState() == DataNegociate::Unimplemented ) {
|
if ( data->getState() == DataNegociate::Unimplemented ) {
|
||||||
cerr << "[UNSOLVED] " << segment << " unable to slacken topology." << endl;
|
cinfo << "[UNSOLVED] " << segment << " unable to slacken topology." << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2396,7 +2388,8 @@ namespace {
|
||||||
<< " vs. " << DbU::getValueString(interval.getVMax()) << endl;
|
<< " vs. " << DbU::getValueString(interval.getVMax()) << endl;
|
||||||
// Ugly: Direct uses of routing pitch.
|
// Ugly: Direct uses of routing pitch.
|
||||||
if ( interval.getVMax()+DbU::lambda(5.0) >= uside.getVMin() ) {
|
if ( interval.getVMax()+DbU::lambda(5.0) >= uside.getVMin() ) {
|
||||||
ltrace(200) << "Using next GCell." << endl;
|
interval.inflate( 0, DbU::fromLambda(5.0) );
|
||||||
|
ltrace(200) << "Using next GCell " << interval << endl;
|
||||||
imaxconflict++;
|
imaxconflict++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2443,16 +2436,20 @@ namespace {
|
||||||
if ( minExpanded ) {
|
if ( minExpanded ) {
|
||||||
//doglegAxis = dogLegGCell->getUSide(_segment->getDirection(),false).getVMax() - DbU::lambda(1.0);
|
//doglegAxis = dogLegGCell->getUSide(_segment->getDirection(),false).getVMax() - DbU::lambda(1.0);
|
||||||
doglegAxis = dogLegGCell->getUSide(_segment->getDirection()/*,false*/).getCenter();
|
doglegAxis = dogLegGCell->getUSide(_segment->getDirection()/*,false*/).getCenter();
|
||||||
|
ltrace(200) << "MARK 1 doglegAxis: " << DbU::getValueString(doglegAxis) << endl;
|
||||||
} else {
|
} else {
|
||||||
// Ugly: hardcoded pitch.
|
// Ugly: hardcoded pitch.
|
||||||
doglegAxis = interval.getVMin() - DbU::lambda(5.0);
|
doglegAxis = interval.getVMin() - DbU::lambda(5.0);
|
||||||
|
ltrace(200) << "MARK 2 doglegAxis: " << DbU::getValueString(doglegAxis) << endl;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ( maxExpanded ) {
|
if ( maxExpanded ) {
|
||||||
doglegAxis = dogLegGCell->getUSide(_segment->getDirection()/*,false*/).getVMin();
|
doglegAxis = dogLegGCell->getUSide(_segment->getDirection()/*,false*/).getVMin();
|
||||||
|
ltrace(200) << "MARK 3 doglegAxis: " << DbU::getValueString(doglegAxis) << endl;
|
||||||
} else {
|
} else {
|
||||||
// Ugly: hardcoded pitch (5.0 - 1.0).
|
// Ugly: hardcoded pitch (5.0 - 1.0).
|
||||||
doglegAxis = interval.getVMax() + DbU::lambda(4.0);
|
doglegAxis = interval.getVMax() + DbU::lambda(4.0);
|
||||||
|
ltrace(200) << "MARK 4 doglegAxis: " << DbU::getValueString(doglegAxis) << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( doglegReuse1 ) _S.addAction ( dogleg, SegmentAction::OtherRipup );
|
if ( doglegReuse1 ) _S.addAction ( dogleg, SegmentAction::OtherRipup );
|
||||||
|
@ -3781,7 +3778,7 @@ namespace Kite {
|
||||||
|
|
||||||
RoutingEvent* parentEvent = parent->getDataNegociate()->getRoutingEvent();
|
RoutingEvent* parentEvent = parent->getDataNegociate()->getRoutingEvent();
|
||||||
if ( parentEvent == this ) {
|
if ( parentEvent == this ) {
|
||||||
cerr << Error("RoutingEvent::getAxisHint(): Parentage loop between\n"
|
cbug << Error("RoutingEvent::getAxisHint(): Parentage loop between\n"
|
||||||
" this :%p:%s\n parent:%p:%s"
|
" this :%p:%s\n parent:%p:%s"
|
||||||
,_segment->base(),getString(_segment->base()).c_str()
|
,_segment->base(),getString(_segment->base()).c_str()
|
||||||
,parent ->base(),getString(parent ->base()).c_str()
|
,parent ->base(),getString(parent ->base()).c_str()
|
||||||
|
@ -3861,7 +3858,7 @@ namespace Kite {
|
||||||
if ( loop.isLooping() ) {
|
if ( loop.isLooping() ) {
|
||||||
if ( ltracelevel() > 200 ) {
|
if ( ltracelevel() > 200 ) {
|
||||||
|
|
||||||
cerr << Error("Loop detected: %s.\n Enabling trace (level:200)"
|
cbug << Error("Loop detected: %s.\n Enabling trace (level:200)"
|
||||||
,_getString().c_str()) << endl;
|
,_getString().c_str()) << endl;
|
||||||
//ltracelevel ( 200 );
|
//ltracelevel ( 200 );
|
||||||
//Cfg::getParamInt("misc.traceLevel")->setInt ( 200, Cfg::Parameter::CommandLine );
|
//Cfg::getParamInt("misc.traceLevel")->setInt ( 200, Cfg::Parameter::CommandLine );
|
||||||
|
@ -3875,7 +3872,7 @@ namespace Kite {
|
||||||
|
|
||||||
#if LOOP_DEBUG
|
#if LOOP_DEBUG
|
||||||
if ( loop.getMaxCount() > 500 ) {
|
if ( loop.getMaxCount() > 500 ) {
|
||||||
cerr << Error("Loop detected, removing event %s.",_getString().c_str()) << endl;
|
cbug << Error("Loop detected, removing event %s.",_getString().c_str()) << endl;
|
||||||
//Cfg::getParamInt("misc.traceLevel")->setInt ( 1000, Cfg::Parameter::CommandLine );
|
//Cfg::getParamInt("misc.traceLevel")->setInt ( 1000, Cfg::Parameter::CommandLine );
|
||||||
//ltracelevel ( 1000 );
|
//ltracelevel ( 1000 );
|
||||||
|
|
||||||
|
@ -3905,7 +3902,7 @@ namespace Kite {
|
||||||
for ( size_t i=0 ; i<elements.size() ; ++i ) {
|
for ( size_t i=0 ; i<elements.size() ; ++i ) {
|
||||||
message << "\n" << setw(10) << elements[i]._count << "| id:" << elements[i]._id;
|
message << "\n" << setw(10) << elements[i]._count << "| id:" << elements[i]._id;
|
||||||
}
|
}
|
||||||
cerr << message.str() << endl;
|
cbug << message.str() << endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3977,7 +3974,7 @@ namespace Kite {
|
||||||
State S ( this, queue, history );
|
State S ( this, queue, history );
|
||||||
|
|
||||||
if ( S.getState() == State::MissingData ) {
|
if ( S.getState() == State::MissingData ) {
|
||||||
cerr << Error("RoutingEvent::process() - Missing datas.") << endl;
|
cbug << Error("RoutingEvent::process() - Missing datas.") << endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4167,10 +4164,14 @@ namespace Kite {
|
||||||
|
|
||||||
ltrace(200) << "Stage:" << RoutingEvent::getStage() << endl;
|
ltrace(200) << "Stage:" << RoutingEvent::getStage() << endl;
|
||||||
if ( RoutingEvent::getStage() == RoutingEvent::Repair ) {
|
if ( RoutingEvent::getStage() == RoutingEvent::Repair ) {
|
||||||
ltrace(200) << "Expanding:" << _constraints << endl;
|
if (_segment->isTerminal()) {
|
||||||
// Ugly: direct uses of Cell Gauge.
|
ltrace(200) << "Not expanding on Terminals:" << _constraints << endl;
|
||||||
_constraints.inflate ( DbU::lambda(50.0) );
|
} else {
|
||||||
ltrace(200) << "Expanding (after):" << _constraints << endl;
|
ltrace(200) << "Expanding:" << _constraints << endl;
|
||||||
|
// Ugly: direct uses of Cell Gauge.
|
||||||
|
_constraints.inflate ( DbU::lambda(50.0) );
|
||||||
|
ltrace(200) << "Expanding (after):" << _constraints << endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// else if ( _segment->isDogleg()
|
// else if ( _segment->isDogleg()
|
||||||
// and (_segment->getDataNegociate()->getState() >= DataNegociate::MaximumSlack) ) {
|
// and (_segment->getDataNegociate()->getState() >= DataNegociate::MaximumSlack) ) {
|
||||||
|
|
|
@ -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 : "./TrackSegment.cpp" |
|
// | C++ Module : "./TrackSegment.cpp" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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-2011, 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++ Header : "./NegociateWindow.h" |
|
// | C++ Header : "./NegociateWindow.h" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __KITE_NEGOCIATE_WINDOW__
|
#ifndef __KITE_NEGOCIATE_WINDOW__
|
||||||
|
|
Loading…
Reference in New Issue