* ./kite:
- Cleanup: In GCell, remove the DyKeyQueue support as it's been moved to Katabatic level. - Change: In NegociateWidow, increase the event stop thresold to 4M events to be able to process the eFPGA matrix 16x16 (150K gates).
This commit is contained in:
parent
3637f1c0cf
commit
a515d42757
|
@ -165,25 +165,6 @@ namespace Kite {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
|
||||||
// Class : "Kite::GCell::CompareByKey".
|
|
||||||
//
|
|
||||||
// lhs < rhs --> true
|
|
||||||
|
|
||||||
|
|
||||||
bool GCell::CompareByKey::operator() ( GCell* lhs, GCell* rhs )
|
|
||||||
{
|
|
||||||
//int difference = floatCompare ( lhs->base()->getDensity(), rhs->base()->getDensity() );
|
|
||||||
//if ( abs(difference) > 1000 ) return difference > 0;
|
|
||||||
|
|
||||||
float difference = roundfp ( lhs->base()->getDensity() - rhs->base()->getDensity() );
|
|
||||||
if ( difference != 0.0 ) return (difference > 0.0);
|
|
||||||
|
|
||||||
if ( lhs->getIndex() < rhs->getIndex() ) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
// Class : "Kite::GCell::CompareByStiffness".
|
// Class : "Kite::GCell::CompareByStiffness".
|
||||||
//
|
//
|
||||||
|
@ -585,58 +566,6 @@ namespace Kite {
|
||||||
|
|
||||||
Record* GCell::_getRecord () const
|
Record* GCell::_getRecord () const
|
||||||
{ return _base->_getRecord(); }
|
{ return _base->_getRecord(); }
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
|
||||||
// Class : "Kite::DyKeyQueue".
|
|
||||||
|
|
||||||
|
|
||||||
DyKeyQueue::DyKeyQueue ()
|
|
||||||
: _map ()
|
|
||||||
, _requests()
|
|
||||||
{ }
|
|
||||||
|
|
||||||
|
|
||||||
DyKeyQueue::~DyKeyQueue ()
|
|
||||||
{
|
|
||||||
if ( (not _map.empty()) or (not _requests.empty()) ) {
|
|
||||||
cerr << Warning("~DyKeyQueue(): Still contains %d elements and %d requests."
|
|
||||||
,_map.size(),_requests.size()) << endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DyKeyQueue::invalidate ( GCell* gcell )
|
|
||||||
{
|
|
||||||
std::set<GCell*,GCell::CompareByKey>::iterator igcell = _map.find(gcell);
|
|
||||||
if ( igcell != _map.end() ) {
|
|
||||||
_map.erase ( igcell );
|
|
||||||
}
|
|
||||||
push ( gcell );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DyKeyQueue::push ( GCell* gcell )
|
|
||||||
{
|
|
||||||
_requests.insert ( gcell );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DyKeyQueue::revalidate ()
|
|
||||||
{
|
|
||||||
std::set<GCell*>::iterator igcell = _requests.begin();
|
|
||||||
for ( ; igcell != _requests.end() ; ++igcell )
|
|
||||||
_map.insert ( *igcell );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
GCell* DyKeyQueue::pop ()
|
|
||||||
{
|
|
||||||
if ( _map.empty() ) return NULL;
|
|
||||||
std::set<GCell*,GCell::CompareByKey>::iterator igcell = _map.begin();
|
|
||||||
GCell* gcell = *igcell;
|
|
||||||
_map.erase ( igcell );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -374,7 +374,7 @@ namespace Kite {
|
||||||
cmess2.flush();
|
cmess2.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( RoutingEvent::getProcesseds() >= /*10471*/ 1000000 ) setInterrupt ( true );
|
if ( RoutingEvent::getProcesseds() >= /*10471*/ 4000000 ) setInterrupt ( true );
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
#if ENABLE_STIFFNESS
|
#if ENABLE_STIFFNESS
|
||||||
|
@ -412,7 +412,8 @@ namespace Kite {
|
||||||
event->process ( _eventQueue, _eventHistory );
|
event->process ( _eventQueue, _eventHistory );
|
||||||
|
|
||||||
if (tty::enabled()) {
|
if (tty::enabled()) {
|
||||||
cmess1 << " <SecondPass:Packing - event:" << tty::fgcolor(tty::Red) << setw(7) << setfill('0')
|
cmess1 << " <SecondPass:Packing - event:"
|
||||||
|
<< tty::bold << tty::fgcolor(tty::Red) << setw(7) << setfill('0')
|
||||||
<< RoutingEvent::getProcesseds() << setfill(' ') << tty::reset << ">" << tty::cr;
|
<< RoutingEvent::getProcesseds() << setfill(' ') << tty::reset << ">" << tty::cr;
|
||||||
cmess1.flush ();
|
cmess1.flush ();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -74,11 +74,6 @@ namespace Kite {
|
||||||
public:
|
public:
|
||||||
bool operator() ( GCell* lhs, GCell* rhs );
|
bool operator() ( GCell* lhs, GCell* rhs );
|
||||||
};
|
};
|
||||||
// Sub-Class: "CompareByKey()".
|
|
||||||
class CompareByKey {
|
|
||||||
public:
|
|
||||||
bool operator() ( GCell* lhs, GCell* rhs );
|
|
||||||
};
|
|
||||||
// Sub-Class: "CompareByStiffness()".
|
// Sub-Class: "CompareByStiffness()".
|
||||||
class CompareByStiffness {
|
class CompareByStiffness {
|
||||||
public:
|
public:
|
||||||
|
@ -155,15 +150,15 @@ namespace Kite {
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Constructors & Destructors.
|
// Constructors & Destructors.
|
||||||
GCell ( GCellGrid*, Katabatic::GCell* );
|
GCell ( GCellGrid*, Katabatic::GCell* );
|
||||||
virtual ~GCell ();
|
virtual ~GCell ();
|
||||||
private:
|
private:
|
||||||
GCell ( const GCell& );
|
GCell ( const GCell& );
|
||||||
GCell& operator= ( const GCell& );
|
GCell& operator= ( const GCell& );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Inline Functions.
|
// GCell Inline Functions.
|
||||||
inline Katabatic::GCell* GCell::base () { return _base; }
|
inline Katabatic::GCell* GCell::base () { return _base; }
|
||||||
inline bool GCell::isInRoutingSet () const { return _isInRoutingSet; }
|
inline bool GCell::isInRoutingSet () const { return _isInRoutingSet; }
|
||||||
inline bool GCell::isRouted () const { return _isRouted; }
|
inline bool GCell::isRouted () const { return _isRouted; }
|
||||||
|
@ -214,24 +209,6 @@ namespace Kite {
|
||||||
typedef GenericFilter<GCell*> GCellFilter;
|
typedef GenericFilter<GCell*> GCellFilter;
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
|
||||||
// Class : "DyKeyQueue".
|
|
||||||
|
|
||||||
|
|
||||||
class DyKeyQueue {
|
|
||||||
public:
|
|
||||||
DyKeyQueue ();
|
|
||||||
~DyKeyQueue ();
|
|
||||||
GCell* pop ();
|
|
||||||
void push ( GCell* );
|
|
||||||
void invalidate ( GCell* );
|
|
||||||
void revalidate ();
|
|
||||||
private:
|
|
||||||
std::set<GCell*,GCell::CompareByKey> _map;
|
|
||||||
std::set<GCell*> _requests;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
} // End of Kite namespace.
|
} // End of Kite namespace.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue