- (Remove) Restrictions rules for analog devices are now set in hurricaneAMS
This commit is contained in:
parent
da423ab308
commit
d16d6d1988
|
@ -22,7 +22,6 @@
|
|||
find_package(VLSISAPD REQUIRED)
|
||||
find_package(HURRICANE REQUIRED)
|
||||
find_package(CORIOLIS REQUIRED)
|
||||
find_package(HURRICANEAMS REQUIRED)
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(cmake_modules)
|
||||
|
|
|
@ -11,7 +11,6 @@ endif ( CHECK_DETERMINISM )
|
|||
${Boost_INCLUDE_DIRS}
|
||||
${QtX_INCLUDE_DIR}
|
||||
${PYTHON_INCLUDE_PATH}
|
||||
${HURRICANEAMS_INCLUDE_DIR}
|
||||
)
|
||||
set( includes anabatic/Constants.h
|
||||
anabatic/Configuration.h
|
||||
|
@ -56,7 +55,6 @@ endif ( CHECK_DETERMINISM )
|
|||
${Boost_LIBRARIES}
|
||||
${LIBXML2_LIBRARIES}
|
||||
${PYTHON_LIBRARIES} -lutil
|
||||
${HURRICANEAMS_LIBRARIES}
|
||||
)
|
||||
|
||||
add_library( anabatic ${cpps} ${mocCpps} )
|
||||
|
|
|
@ -233,29 +233,6 @@ namespace Anabatic {
|
|||
vertex->clearRestriction();
|
||||
cdebug_log(112,0) << "Add Vertex: " << vertex << endl;
|
||||
}
|
||||
// Analog Restrictions
|
||||
Plug* plug = dynamic_cast<Plug*>(rp->getPlugOccurrence().getEntity());
|
||||
Cell* cell = plug->getInstance()->getMasterCell();
|
||||
Device* dev = dynamic_cast<Device* >(cell);
|
||||
TransistorFamily* tf = dynamic_cast<TransistorFamily*>(dev);
|
||||
|
||||
if (tf){
|
||||
Transistor* t = dynamic_cast<Transistor* >(tf);
|
||||
SimpleCurrentMirror* scm = dynamic_cast<SimpleCurrentMirror*>(tf);
|
||||
DifferentialPair* dp = dynamic_cast<DifferentialPair* >(tf);
|
||||
CommonSourcePair* csp = dynamic_cast<CommonSourcePair* >(tf);
|
||||
|
||||
unsigned int rule = 0;
|
||||
if (t) { rule = t->getRestriction(plug->getMasterNet());
|
||||
} else if (scm) { rule = scm->getRestriction(plug->getMasterNet());
|
||||
} else if (dp) { rule = dp->getRestriction(plug->getMasterNet());
|
||||
} else if (csp) { rule = csp->getRestriction(plug->getMasterNet());
|
||||
}
|
||||
if (!(rule&0x3 )) vertex->setWRestricted();
|
||||
if (!(rule&0xC )) vertex->setERestricted();
|
||||
if (!(rule&0x30)) vertex->setSRestricted();
|
||||
if (!(rule&0xC0)) vertex->setNRestricted();
|
||||
}
|
||||
|
||||
Contact* gcontact = vertex->getGContact( _net );
|
||||
rp->getBodyHook()->detach();
|
||||
|
|
|
@ -25,11 +25,6 @@ namespace Hurricane {
|
|||
class RoutingPad;
|
||||
}
|
||||
#include "anabatic/GCell.h"
|
||||
#include "hurricaneAMS/analogic/Device.h"
|
||||
#include "hurricaneAMS/devices/Transistor.h"
|
||||
#include "hurricaneAMS/devices/SimpleCurrentMirror.h"
|
||||
#include "hurricaneAMS/devices/DifferentialPair.h"
|
||||
#include "hurricaneAMS/devices/CommonSourcePair.h"
|
||||
|
||||
|
||||
namespace Anabatic {
|
||||
|
|
|
@ -90,6 +90,7 @@ namespace Anabatic {
|
|||
inline const vector<Edge*>& getEastEdges () const;
|
||||
inline const vector<Edge*>& getNorthEdges () const;
|
||||
inline const vector<Edge*>& getSouthEdges () const;
|
||||
inline const vector<Contact*>& getContacts () const;
|
||||
inline Edges getEdges () const;
|
||||
inline GCell* getWest () const;
|
||||
inline GCell* getEast () const;
|
||||
|
@ -174,6 +175,7 @@ namespace Anabatic {
|
|||
inline const vector<Edge*>& GCell::getEastEdges () const { return _eastEdges; }
|
||||
inline const vector<Edge*>& GCell::getNorthEdges () const { return _northEdges; }
|
||||
inline const vector<Edge*>& GCell::getSouthEdges () const { return _southEdges; }
|
||||
inline const vector<Contact*>& GCell::getContacts () const { return _contacts; }
|
||||
inline GCell* GCell::getWest () const { return _westEdges.empty() ? NULL : _westEdges[0]->getOpposite(this); }
|
||||
inline GCell* GCell::getEast () const { return _eastEdges.empty() ? NULL : _eastEdges[0]->getOpposite(this); }
|
||||
inline GCell* GCell::getSouth () const { return _southEdges.empty() ? NULL : _southEdges[0]->getOpposite(this); }
|
||||
|
|
Loading…
Reference in New Issue