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 )
|
||||
{
|
||||
|
||||
|
|
|
@ -24,10 +24,16 @@
|
|||
#include "hurricane/Name.h"
|
||||
#include "hurricane/Box.h"
|
||||
#include "hurricane/Cell.h"
|
||||
#include "hurricane/Component.h"
|
||||
#include "hurricane/Horizontal.h"
|
||||
#include "hurricane/Vertical.h"
|
||||
#include "hurricane/ExtensionGo.h"
|
||||
namespace Hurricane {
|
||||
class Contact;
|
||||
class RoutingPad;
|
||||
class Component;
|
||||
class Horizontal;
|
||||
class Vertical;
|
||||
}
|
||||
#include "anabatic/Edge.h"
|
||||
#include "anabatic/AutoSegments.h"
|
||||
|
@ -52,6 +58,9 @@ namespace Anabatic {
|
|||
using Hurricane::Contact;
|
||||
using Hurricane::RoutingPad;
|
||||
using Hurricane::Cell;
|
||||
using Hurricane::Component;
|
||||
using Hurricane::Horizontal;
|
||||
using Hurricane::Vertical;
|
||||
|
||||
class AnabaticEngine;
|
||||
class GCell;
|
||||
|
@ -160,6 +169,8 @@ namespace Anabatic {
|
|||
Contact* getGContact ( Net* );
|
||||
inline const vector<Contact*>& getGContacts () const;
|
||||
bool unrefContact ( Contact* );
|
||||
void setXY ( DbU::Unit x, DbU::Unit y );
|
||||
void updateContactsPosition ();
|
||||
void cleanupGlobal ();
|
||||
// Detailed routing functions.
|
||||
bool hasFreeTrack ( size_t depth, float reserve ) const;
|
||||
|
|
Loading…
Reference in New Issue