diff --git a/README.md b/README.md index 20d5cac..116cf2c 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ IEEE/ACM Asia and South Pacific Design Automation Conference (ASPDAC), Tokyo, Ja ["Dr. CU: Detailed Routing by Sparse Grid Graph and Minimum-Area-Captured Path Search"](https://doi.org/10.1109/TCAD.2019.2927542), accepted by IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD). * Haocheng Li, Gengjie Chen, Bentian Jiang, Jingsong Chen, and Evangeline F. Y. Young, -Dr. CU 2.0: A Scalable Detailed Routing Framework with Correct-by-Construction Design Rule Satisfaction, +"Dr. CU 2.0: A Scalable Detailed Routing Framework with Correct-by-Construction Design Rule Satisfaction", IEEE/ACM International Conference on Computer-Aided Design (ICCAD), Westminster, CO, USA, Nov 4-7, 2019. (Dr. CU supports [ISPD'18 benchmarks](http://www.ispd.cc/contests/18/#benchmarks) @@ -25,9 +25,9 @@ This version of code is consistent with the ICCAD paper.) ## 1. How to Build **Step 1:** Download the source code. For example, -~~~ +```bash $ git clone https://github.com/cuhk-route/dr-cu -~~~ +``` **Step 2:** Go to the project root and build by ~~~ diff --git a/ispd18eval/ispd18eval.sh b/ispd18eval/ispd18eval.sh index e6cac01..27a4040 100755 --- a/ispd18eval/ispd18eval.sh +++ b/ispd18eval/ispd18eval.sh @@ -51,7 +51,6 @@ if [ -f $evalTcl ] ; then fi echo "#evaluation script for ISPD 2018 contest" > $evalTcl -echo "setMultiCpuUsage -localCpu $numThread" > $evalTcl echo 'source ispd18eval.tcl' >> $evalTcl echo "evaluate $inputLef $outputDef $evalGeoRpt $evalConRpt" >> $evalTcl echo 'exit' >>$evalTcl diff --git a/ispd19eval/ispd19eval.sh b/ispd19eval/ispd19eval.sh index 3013ee5..ca117a5 100755 --- a/ispd19eval/ispd19eval.sh +++ b/ispd19eval/ispd19eval.sh @@ -81,7 +81,6 @@ else fi echo "#evaluation script for ISPD 2019 contest" > $evalTcl -echo "setMultiCpuUsage -localCpu $numThread" > $evalTcl echo 'source ispd19eval.tcl' >> $evalTcl if [ "$method" = 'a' ] ; then echo "evaluate $inputLef $inputDef $trimmedDef $evalGeoRpt $evalConRpt" >> $evalTcl diff --git a/rsyn/src/rsyn/phy/obj/decl/PhysicalDesign.h b/rsyn/src/rsyn/phy/obj/decl/PhysicalDesign.h index 50da9e0..8449bcb 100644 --- a/rsyn/src/rsyn/phy/obj/decl/PhysicalDesign.h +++ b/rsyn/src/rsyn/phy/obj/decl/PhysicalDesign.h @@ -252,9 +252,6 @@ class PhysicalDesign : public Proxy { int getNumPhysicalRoutingGrids() const; - //! @brief check if the orientations are equivalent based on symmetry. - bool checkEquivalentOrientations(Rsyn::PhysicalSymmetry symmetry, Rsyn::PhysicalOrientation orient1, Rsyn::PhysicalOrientation orient2) const; - //! @brief Returns the total number of spacing objects. std::size_t getNumPhysicalSpacing() const; //! @brief Returns a reference to the vector of PhysicalSpacing. diff --git a/rsyn/src/rsyn/phy/obj/impl/PhysicalDesign.cpp b/rsyn/src/rsyn/phy/obj/impl/PhysicalDesign.cpp index d21c04c..755ceb5 100644 --- a/rsyn/src/rsyn/phy/obj/impl/PhysicalDesign.cpp +++ b/rsyn/src/rsyn/phy/obj/impl/PhysicalDesign.cpp @@ -1253,17 +1253,4 @@ void PhysicalDesign::initLayerViaManager() { // ----------------------------------------------------------------------------- -bool PhysicalDesign::checkEquivalentOrientations(Rsyn::PhysicalSymmetry symmetry, Rsyn::PhysicalOrientation orient1, - Rsyn::PhysicalOrientation orient2) const { - - std::cout << "TODO " << __func__ << " at " << __FILE__ << "\n"; - // if(Rsyn::isPhysicalSymmetryX(symmetry)) { - // return orient1 == Rsyn::ORIENTATION_N || - // } // end if - - return false; -} // end method - -// ----------------------------------------------------------------------------- - } // end namespace diff --git a/rsyn/src/rsyn/phy/util/PhysicalLayerUtil.cpp b/rsyn/src/rsyn/phy/util/PhysicalLayerUtil.cpp index 73c5558..4f41602 100644 --- a/rsyn/src/rsyn/phy/util/PhysicalLayerUtil.cpp +++ b/rsyn/src/rsyn/phy/util/PhysicalLayerUtil.cpp @@ -173,27 +173,6 @@ std::string getPhysicalSymmetry(const Rsyn::PhysicalSymmetry rowSymmetry) { // ----------------------------------------------------------------------------- -bool isPhysicalSymmetryX(const Rsyn::PhysicalSymmetry symmetry) { - return symmetry == SYMMETRY_X || symmetry == SYMMETRY_XY || - symmetry == SYMMETRY_XR90 || SYMMETRY_XYR90; -} // end method - -// ----------------------------------------------------------------------------- - -bool isPhysicalSymmetryY(const Rsyn::PhysicalSymmetry symmetry) { - return symmetry == SYMMETRY_Y || symmetry == SYMMETRY_XY || - symmetry == SYMMETRY_YR90 || SYMMETRY_XYR90; -} // end method - -// ----------------------------------------------------------------------------- - -bool isPhysicalSymmetryR90(const Rsyn::PhysicalSymmetry symmetry) { - return symmetry == SYMMETRY_R90 || symmetry == SYMMETRY_XR90 || - symmetry == SYMMETRY_YR90 || SYMMETRY_XYR90; -} // end method - -// ----------------------------------------------------------------------------- - Rsyn::PhysicalSiteClass getPhysicalSiteClass(const std::string & siteClass) { if (siteClass.compare("CORE") == 0) return PhysicalSiteClass::CORE; if (siteClass.compare("PAD") == 0) return PhysicalSiteClass::PAD; diff --git a/rsyn/src/rsyn/phy/util/PhysicalUtil.h b/rsyn/src/rsyn/phy/util/PhysicalUtil.h index a79a109..235d568 100644 --- a/rsyn/src/rsyn/phy/util/PhysicalUtil.h +++ b/rsyn/src/rsyn/phy/util/PhysicalUtil.h @@ -56,15 +56,6 @@ Rsyn::PhysicalSymmetry getPhysicalSymmetry(const std::string &rowSymmetry); //! Converts Symmetry from enum to string, respectively. std::string getPhysicalSymmetry(const Rsyn::PhysicalSymmetry rowSymmetry); -// ! @brief check if PhysicalSymmetry has symmetry to X. -bool isPhysicalSymmetryX(const Rsyn::PhysicalSymmetry symmetry); - -// ! @brief check if PhysicalSymmetry has symmetry to Y. -bool isPhysicalSymmetryY(const Rsyn::PhysicalSymmetry symmetry); - -// ! @brief check if PhysicalSymmetry has symmetry to XR90. -bool isPhysicalSymmetryR90(const Rsyn::PhysicalSymmetry symmetry); - //! Converts Site Class from string to enum, respectively. Rsyn::PhysicalSiteClass getPhysicalSiteClass(const std::string & siteClass);