Merge branch 'devel_anabatic' of ssh://bop-t/users/largo2/git/coriolis into devel_anabatic
Conflicts: anabatic/src/GCell.cpp anabatic/src/anabatic/GCell.h In GCell, attribute _contacts becomes _gcontacts. Small indentation problems.
This commit is contained in:
commit
18641c31c2
|
@ -836,6 +836,39 @@ namespace Anabatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GCell::setXY ( DbU::Unit x, DbU::Unit y )
|
||||||
|
{
|
||||||
|
UpdateSession::open();
|
||||||
|
_xmin = x;
|
||||||
|
_ymin = y;
|
||||||
|
UpdateSession::close();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GCell::updateContactsPosition ()
|
||||||
|
{
|
||||||
|
UpdateSession::open();
|
||||||
|
DbU::Unit xc = (getXMax() + getXMin())/2;
|
||||||
|
DbU::Unit yc = (getYMax() + getYMin())/2;
|
||||||
|
for (vector<Contact*>::iterator it = _gcontacts.begin(); it != _gcontacts.end(); it++){
|
||||||
|
for ( Component* c : (*it)->getSlaveComponents() ){
|
||||||
|
Horizontal* h = dynamic_cast<Horizontal*>(c);
|
||||||
|
Vertical* v = dynamic_cast<Vertical*> (c);
|
||||||
|
if (h){
|
||||||
|
//if (h->getY() == (*it)->getY()) h->setY(yc);
|
||||||
|
h->setY(yc);
|
||||||
|
} else if (v) {
|
||||||
|
//if (v->getX() == (*it)->getX()) v->setX(xc);
|
||||||
|
v->setX(xc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
(*it)->setX(xc);
|
||||||
|
(*it)->setY(yc);
|
||||||
|
}
|
||||||
|
UpdateSession::close();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Contact* GCell::getGContact ( Net* net )
|
Contact* GCell::getGContact ( Net* net )
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -24,10 +24,16 @@
|
||||||
#include "hurricane/Name.h"
|
#include "hurricane/Name.h"
|
||||||
#include "hurricane/Box.h"
|
#include "hurricane/Box.h"
|
||||||
#include "hurricane/Cell.h"
|
#include "hurricane/Cell.h"
|
||||||
|
#include "hurricane/Component.h"
|
||||||
|
#include "hurricane/Horizontal.h"
|
||||||
|
#include "hurricane/Vertical.h"
|
||||||
#include "hurricane/ExtensionGo.h"
|
#include "hurricane/ExtensionGo.h"
|
||||||
namespace Hurricane {
|
namespace Hurricane {
|
||||||
class Contact;
|
class Contact;
|
||||||
class RoutingPad;
|
class RoutingPad;
|
||||||
|
class Component;
|
||||||
|
class Horizontal;
|
||||||
|
class Vertical;
|
||||||
}
|
}
|
||||||
#include "anabatic/Edge.h"
|
#include "anabatic/Edge.h"
|
||||||
#include "anabatic/AutoSegments.h"
|
#include "anabatic/AutoSegments.h"
|
||||||
|
@ -52,6 +58,9 @@ namespace Anabatic {
|
||||||
using Hurricane::Contact;
|
using Hurricane::Contact;
|
||||||
using Hurricane::RoutingPad;
|
using Hurricane::RoutingPad;
|
||||||
using Hurricane::Cell;
|
using Hurricane::Cell;
|
||||||
|
using Hurricane::Component;
|
||||||
|
using Hurricane::Horizontal;
|
||||||
|
using Hurricane::Vertical;
|
||||||
|
|
||||||
class AnabaticEngine;
|
class AnabaticEngine;
|
||||||
class GCell;
|
class GCell;
|
||||||
|
@ -160,6 +169,8 @@ namespace Anabatic {
|
||||||
Contact* getGContact ( Net* );
|
Contact* getGContact ( Net* );
|
||||||
inline const vector<Contact*>& getGContacts () const;
|
inline const vector<Contact*>& getGContacts () const;
|
||||||
bool unrefContact ( Contact* );
|
bool unrefContact ( Contact* );
|
||||||
|
void setXY ( DbU::Unit x, DbU::Unit y );
|
||||||
|
void updateContactsPosition ();
|
||||||
void cleanupGlobal ();
|
void cleanupGlobal ();
|
||||||
// Detailed routing functions.
|
// Detailed routing functions.
|
||||||
bool hasFreeTrack ( size_t depth, float reserve ) const;
|
bool hasFreeTrack ( size_t depth, float reserve ) const;
|
||||||
|
|
Loading…
Reference in New Issue