Suppress all static attributes & methods from Anabatic::NetBuilder.
This commit is contained in:
parent
4c57b0651a
commit
e17a50ca0b
|
@ -92,18 +92,6 @@ namespace Anabatic {
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
// Class : "NetBuilder".
|
// Class : "NetBuilder".
|
||||||
|
|
||||||
map<Component*,AutoSegment*> NetBuilder::_routingPadAutoSegments;
|
|
||||||
vector<AutoSegment*> NetBuilder::_toFixSegments;
|
|
||||||
unsigned int NetBuilder::_degree = 0;
|
|
||||||
|
|
||||||
|
|
||||||
map<Component*,AutoSegment*>& NetBuilder::getRpLookup ()
|
|
||||||
{ return _routingPadAutoSegments; }
|
|
||||||
|
|
||||||
|
|
||||||
void NetBuilder::clearRpLookup ()
|
|
||||||
{ _routingPadAutoSegments.clear(); }
|
|
||||||
|
|
||||||
|
|
||||||
void NetBuilder::getPositions ( Component* anchor, Point& source, Point& target )
|
void NetBuilder::getPositions ( Component* anchor, Point& source, Point& target )
|
||||||
{
|
{
|
||||||
|
@ -187,35 +175,23 @@ namespace Anabatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void NetBuilder::fixSegments ()
|
|
||||||
{
|
|
||||||
for ( size_t i=0 ; i<_toFixSegments.size() ; ++i )
|
|
||||||
_toFixSegments[i]->setFlags( AutoSegment::SegFixed );
|
|
||||||
_toFixSegments.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void NetBuilder::init ( unsigned int degree )
|
|
||||||
{
|
|
||||||
_degree = degree;
|
|
||||||
_toFixSegments.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
NetBuilder::NetBuilder ()
|
NetBuilder::NetBuilder ()
|
||||||
: _forks ()
|
: _forks ()
|
||||||
, _connexity ()
|
, _connexity ()
|
||||||
, _topology (0)
|
, _topology (0)
|
||||||
, _gcell (NULL)
|
, _gcell (NULL)
|
||||||
, _sourceContact (NULL)
|
, _sourceContact (NULL)
|
||||||
, _southWestContact(NULL)
|
, _southWestContact (NULL)
|
||||||
, _northEastContact(NULL)
|
, _northEastContact (NULL)
|
||||||
, _fromHook (NULL)
|
, _fromHook (NULL)
|
||||||
, _easts ()
|
, _easts ()
|
||||||
, _wests ()
|
, _wests ()
|
||||||
, _norths ()
|
, _norths ()
|
||||||
, _souths ()
|
, _souths ()
|
||||||
, _routingPads ()
|
, _routingPads ()
|
||||||
|
, _routingPadAutoSegments()
|
||||||
|
, _toFixSegments ()
|
||||||
|
, _degree (0)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
|
||||||
|
@ -228,14 +204,24 @@ namespace Anabatic {
|
||||||
_southWestContact = NULL;
|
_southWestContact = NULL;
|
||||||
_northEastContact = NULL;
|
_northEastContact = NULL;
|
||||||
_fromHook = NULL;
|
_fromHook = NULL;
|
||||||
_easts .clear();
|
_easts .clear();
|
||||||
_wests .clear();
|
_wests .clear();
|
||||||
_norths .clear();
|
_norths .clear();
|
||||||
_souths .clear();
|
_souths .clear();
|
||||||
_routingPads.clear();
|
_routingPads .clear();
|
||||||
|
_toFixSegments .clear();
|
||||||
|
_routingPadAutoSegments.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void NetBuilder::fixSegments ()
|
||||||
|
{
|
||||||
|
for ( size_t i=0 ; i<_toFixSegments.size() ; ++i )
|
||||||
|
_toFixSegments[i]->setFlags( AutoSegment::SegFixed );
|
||||||
|
_toFixSegments.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
NetBuilder& NetBuilder::startFrom ( AnabaticEngine* anbt, Hook* fromHook, AutoContact* sourceContact )
|
NetBuilder& NetBuilder::startFrom ( AnabaticEngine* anbt, Hook* fromHook, AutoContact* sourceContact )
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
|
@ -2653,11 +2639,8 @@ namespace Anabatic {
|
||||||
|
|
||||||
Hook* sourceHook = NULL;
|
Hook* sourceHook = NULL;
|
||||||
AutoContact* sourceContact = NULL;
|
AutoContact* sourceContact = NULL;
|
||||||
|
RoutingPads routingPads = net->getRoutingPads();
|
||||||
clearRpLookup();
|
size_t degree = routingPads.getSize();
|
||||||
|
|
||||||
RoutingPads routingPads = net->getRoutingPads();
|
|
||||||
size_t degree = routingPads.getSize();
|
|
||||||
|
|
||||||
if (degree == 0) {
|
if (degree == 0) {
|
||||||
cmess2 << Warning("Net \"%s\" do not have any RoutingPad (ignored)."
|
cmess2 << Warning("Net \"%s\" do not have any RoutingPad (ignored)."
|
||||||
|
@ -2676,7 +2659,7 @@ namespace Anabatic {
|
||||||
size_t unconnecteds = 0;
|
size_t unconnecteds = 0;
|
||||||
size_t connecteds = 0;
|
size_t connecteds = 0;
|
||||||
|
|
||||||
init( degree );
|
setDegree( degree );
|
||||||
|
|
||||||
cdebug_log(145,0) << "Start RoutingPad Ring" << endl;
|
cdebug_log(145,0) << "Start RoutingPad Ring" << endl;
|
||||||
for ( RoutingPad* startRp : routingPads ) {
|
for ( RoutingPad* startRp : routingPads ) {
|
||||||
|
@ -2745,7 +2728,6 @@ namespace Anabatic {
|
||||||
cdebug_log(145,0) << "Popping (to) " << sourceContact << endl;
|
cdebug_log(145,0) << "Popping (to) " << sourceContact << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
clearRpLookup();
|
|
||||||
Session::revalidate();
|
Session::revalidate();
|
||||||
//Breakpoint::stop( 0, "After construct" );
|
//Breakpoint::stop( 0, "After construct" );
|
||||||
|
|
||||||
|
|
|
@ -122,8 +122,6 @@ namespace Anabatic {
|
||||||
public:
|
public:
|
||||||
template< typename BuilderT >
|
template< typename BuilderT >
|
||||||
static void load ( AnabaticEngine*, Net* );
|
static void load ( AnabaticEngine*, Net* );
|
||||||
static void init ( unsigned int degree );
|
|
||||||
static void fixSegments ();
|
|
||||||
static void getPositions ( Component* anchor, Point& source, Point& target );
|
static void getPositions ( Component* anchor, Point& source, Point& target );
|
||||||
static uint64_t checkRoutingPadSize ( Component* anchor );
|
static uint64_t checkRoutingPadSize ( Component* anchor );
|
||||||
static Hook* getSegmentOppositeHook ( Hook* hook );
|
static Hook* getSegmentOppositeHook ( Hook* hook );
|
||||||
|
@ -132,6 +130,8 @@ namespace Anabatic {
|
||||||
NetBuilder ();
|
NetBuilder ();
|
||||||
virtual ~NetBuilder ();
|
virtual ~NetBuilder ();
|
||||||
void clear ();
|
void clear ();
|
||||||
|
inline void setDegree ( unsigned int degree );
|
||||||
|
void fixSegments ();
|
||||||
NetBuilder& startFrom ( AnabaticEngine*
|
NetBuilder& startFrom ( AnabaticEngine*
|
||||||
, Hook* fromHook
|
, Hook* fromHook
|
||||||
, AutoContact* sourceContact=NULL );
|
, AutoContact* sourceContact=NULL );
|
||||||
|
@ -142,14 +142,13 @@ namespace Anabatic {
|
||||||
inline GCell* getGCell () const;
|
inline GCell* getGCell () const;
|
||||||
inline ForkStack& getForks ();
|
inline ForkStack& getForks ();
|
||||||
inline vector<RoutingPad*>& getRoutingPads ();
|
inline vector<RoutingPad*>& getRoutingPads ();
|
||||||
static map<Component*,AutoSegment*>& getRpLookup ();
|
inline map<Component*,AutoSegment*>& getRpLookup ();
|
||||||
inline unsigned int getTopology () const;
|
inline unsigned int getTopology () const;
|
||||||
inline Hook* north ( size_t i=0 ) const;
|
inline Hook* north ( size_t i=0 ) const;
|
||||||
inline Hook* south ( size_t i=0 ) const;
|
inline Hook* south ( size_t i=0 ) const;
|
||||||
inline Hook* east ( size_t i=0 ) const;
|
inline Hook* east ( size_t i=0 ) const;
|
||||||
inline Hook* west ( size_t i=0 ) const;
|
inline Hook* west ( size_t i=0 ) const;
|
||||||
inline void setBothCornerContacts ( AutoContact* );
|
inline void setBothCornerContacts ( AutoContact* );
|
||||||
static void clearRpLookup ();
|
|
||||||
bool push ( Hook* to, AutoContact* contact, uint64_t flags=0 );
|
bool push ( Hook* to, AutoContact* contact, uint64_t flags=0 );
|
||||||
virtual void doRp_AutoContacts ( GCell*, Component*, AutoContact*& source, AutoContact*& target, uint64_t flags ) = 0;
|
virtual void doRp_AutoContacts ( GCell*, Component*, AutoContact*& source, AutoContact*& target, uint64_t flags ) = 0;
|
||||||
virtual AutoContact* doRp_Access ( GCell*, Component*, uint64_t flags ) = 0;
|
virtual AutoContact* doRp_Access ( GCell*, Component*, uint64_t flags ) = 0;
|
||||||
|
@ -270,9 +269,6 @@ namespace Anabatic {
|
||||||
|
|
||||||
// Attributes.
|
// Attributes.
|
||||||
private:
|
private:
|
||||||
static map<Component*,AutoSegment*> _routingPadAutoSegments;
|
|
||||||
static vector<AutoSegment*> _toFixSegments;
|
|
||||||
static unsigned int _degree;
|
|
||||||
ForkStack _forks;
|
ForkStack _forks;
|
||||||
UConnexity _connexity;
|
UConnexity _connexity;
|
||||||
unsigned int _topology;
|
unsigned int _topology;
|
||||||
|
@ -287,6 +283,9 @@ namespace Anabatic {
|
||||||
vector<Hook*> _norths;
|
vector<Hook*> _norths;
|
||||||
vector<Hook*> _souths;
|
vector<Hook*> _souths;
|
||||||
vector<RoutingPad*> _routingPads;
|
vector<RoutingPad*> _routingPads;
|
||||||
|
map<Component*,AutoSegment*> _routingPadAutoSegments;
|
||||||
|
vector<AutoSegment*> _toFixSegments;
|
||||||
|
unsigned int _degree;
|
||||||
|
|
||||||
// Sort classes.
|
// Sort classes.
|
||||||
public:
|
public:
|
||||||
|
@ -324,18 +323,20 @@ namespace Anabatic {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
inline NetBuilder::UConnexity NetBuilder::getConnexity () const { return _connexity; }
|
inline NetBuilder::UConnexity NetBuilder::getConnexity () const { return _connexity; }
|
||||||
inline ForkStack& NetBuilder::getForks () { return _forks; }
|
inline ForkStack& NetBuilder::getForks () { return _forks; }
|
||||||
inline unsigned int NetBuilder::getStateG () const { return _connexity.fields.globals; }
|
inline unsigned int NetBuilder::getStateG () const { return _connexity.fields.globals; }
|
||||||
inline GCell* NetBuilder::getGCell () const { return _gcell; }
|
inline GCell* NetBuilder::getGCell () const { return _gcell; }
|
||||||
inline Net* NetBuilder::getNet () const { return _net; }
|
inline Net* NetBuilder::getNet () const { return _net; }
|
||||||
inline unsigned int NetBuilder::getTopology () const { return _topology; }
|
inline unsigned int NetBuilder::getTopology () const { return _topology; }
|
||||||
inline vector<RoutingPad*>& NetBuilder::getRoutingPads () { return _routingPads; }
|
inline vector<RoutingPad*>& NetBuilder::getRoutingPads () { return _routingPads; }
|
||||||
inline Hook* NetBuilder::north ( size_t i ) const { return (i<_norths.size()) ? _norths[i] : NULL; }
|
inline map<Component*,AutoSegment*>& NetBuilder::getRpLookup () { return _routingPadAutoSegments; }
|
||||||
inline Hook* NetBuilder::south ( size_t i ) const { return (i<_souths.size()) ? _souths[i] : NULL; }
|
inline Hook* NetBuilder::north ( size_t i ) const { return (i<_norths.size()) ? _norths[i] : NULL; }
|
||||||
inline Hook* NetBuilder::east ( size_t i ) const { return (i<_easts .size()) ? _easts [i] : NULL; }
|
inline Hook* NetBuilder::south ( size_t i ) const { return (i<_souths.size()) ? _souths[i] : NULL; }
|
||||||
inline Hook* NetBuilder::west ( size_t i ) const { return (i<_wests .size()) ? _wests [i] : NULL; }
|
inline Hook* NetBuilder::east ( size_t i ) const { return (i<_easts .size()) ? _easts [i] : NULL; }
|
||||||
inline void NetBuilder::setBothCornerContacts ( AutoContact* ac ) { _southWestContact = _northEastContact = ac; }
|
inline Hook* NetBuilder::west ( size_t i ) const { return (i<_wests .size()) ? _wests [i] : NULL; }
|
||||||
|
inline void NetBuilder::setDegree ( unsigned int degree ) { _degree = degree; }
|
||||||
|
inline void NetBuilder::setBothCornerContacts ( AutoContact* ac ) { _southWestContact = _northEastContact = ac; }
|
||||||
|
|
||||||
template< typename BuilderT >
|
template< typename BuilderT >
|
||||||
void NetBuilder::load ( AnabaticEngine* engine, Net* net ) { BuilderT()._load(engine,net); }
|
void NetBuilder::load ( AnabaticEngine* engine, Net* net ) { BuilderT()._load(engine,net); }
|
||||||
|
|
Loading…
Reference in New Issue