From d16d6d198801b3d831a179773ebd06658f3af743 Mon Sep 17 00:00:00 2001 From: EricLaoGitHub Date: Wed, 22 Jun 2016 13:36:17 +0200 Subject: [PATCH] - (Remove) Restrictions rules for analog devices are now set in hurricaneAMS --- anabatic/CMakeLists.txt | 1 - anabatic/src/CMakeLists.txt | 2 -- anabatic/src/Dijkstra.cpp | 23 ----------------------- anabatic/src/anabatic/Dijkstra.h | 5 ----- anabatic/src/anabatic/GCell.h | 2 ++ 5 files changed, 2 insertions(+), 31 deletions(-) diff --git a/anabatic/CMakeLists.txt b/anabatic/CMakeLists.txt index e2baa825..4187e409 100644 --- a/anabatic/CMakeLists.txt +++ b/anabatic/CMakeLists.txt @@ -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) diff --git a/anabatic/src/CMakeLists.txt b/anabatic/src/CMakeLists.txt index 999f55e9..e666a39a 100644 --- a/anabatic/src/CMakeLists.txt +++ b/anabatic/src/CMakeLists.txt @@ -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} ) diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index 4c4975e4..35fd67bf 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -233,29 +233,6 @@ namespace Anabatic { vertex->clearRestriction(); cdebug_log(112,0) << "Add Vertex: " << vertex << endl; } - // Analog Restrictions - Plug* plug = dynamic_cast(rp->getPlugOccurrence().getEntity()); - Cell* cell = plug->getInstance()->getMasterCell(); - Device* dev = dynamic_cast(cell); - TransistorFamily* tf = dynamic_cast(dev); - - if (tf){ - Transistor* t = dynamic_cast(tf); - SimpleCurrentMirror* scm = dynamic_cast(tf); - DifferentialPair* dp = dynamic_cast(tf); - CommonSourcePair* csp = dynamic_cast(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(); diff --git a/anabatic/src/anabatic/Dijkstra.h b/anabatic/src/anabatic/Dijkstra.h index 70d2df8e..bcac1d92 100644 --- a/anabatic/src/anabatic/Dijkstra.h +++ b/anabatic/src/anabatic/Dijkstra.h @@ -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 { diff --git a/anabatic/src/anabatic/GCell.h b/anabatic/src/anabatic/GCell.h index b81201db..c79a08b3 100644 --- a/anabatic/src/anabatic/GCell.h +++ b/anabatic/src/anabatic/GCell.h @@ -90,6 +90,7 @@ namespace Anabatic { inline const vector& getEastEdges () const; inline const vector& getNorthEdges () const; inline const vector& getSouthEdges () const; + inline const vector& getContacts () const; inline Edges getEdges () const; inline GCell* getWest () const; inline GCell* getEast () const; @@ -174,6 +175,7 @@ namespace Anabatic { inline const vector& GCell::getEastEdges () const { return _eastEdges; } inline const vector& GCell::getNorthEdges () const { return _northEdges; } inline const vector& GCell::getSouthEdges () const { return _southEdges; } + inline const vector& 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); }