From 99140d16a116cfcb06c5376fe42566ac88dab5ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateus=20Foga=C3=A7a?= Date: Wed, 27 Nov 2019 23:16:07 +0100 Subject: [PATCH 1/5] add ioplacer --- .gitmodules | 3 +++ src/CMakeLists.txt | 2 ++ src/OpenRoad.cc | 3 +++ src/ioPlacer | 1 + 4 files changed, 9 insertions(+) create mode 160000 src/ioPlacer diff --git a/.gitmodules b/.gitmodules index 6370475c085..756c8338529 100644 --- a/.gitmodules +++ b/.gitmodules @@ -11,3 +11,6 @@ path = src/replace url = https://github.com/The-OpenROAD-Project/RePlAce.git branch = openroad +[submodule "src/ioPlacer"] + path = src/ioPlacer + url = https://github.com/The-OpenROAD-Project/ioPlacer.git diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b7ce927559c..71c44557e07 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -75,6 +75,7 @@ add_subdirectory(dbSta) add_subdirectory(resizer) add_subdirectory(flute3) add_subdirectory(replace) +add_subdirectory(ioPlacer) ################################################################ @@ -171,6 +172,7 @@ target_include_directories(openroad target_link_libraries(openroad replace resizer + ioPlacer flute dbSta OpenSTA diff --git a/src/OpenRoad.cc b/src/OpenRoad.cc index 5ead95caa08..516d615dc86 100644 --- a/src/OpenRoad.cc +++ b/src/OpenRoad.cc @@ -39,6 +39,7 @@ extern "C" { extern int Openroad_Init(Tcl_Interp *interp); extern int Opendbtcl_Init(Tcl_Interp *interp); extern int Replace_Init(Tcl_Interp *interp); +extern int Ioplacer_Init(Tcl_Interp *interp); } namespace ord { @@ -88,6 +89,7 @@ OpenRoad::init(Tcl_Interp *tcl_interp, // Make components. db_ = dbDatabase::create(); + printf("DB id: %u\n", db_->getId()); sta_ = makeDbSta(); verilog_network_ = makeDbVerilogNetwork(); resizer_ = ord::makeResizer(); @@ -103,6 +105,7 @@ OpenRoad::init(Tcl_Interp *tcl_interp, initDbVerilogNetwork(this); initFlute(prog_arg); Replace_Init(tcl_interp); + Ioplacer_Init(tcl_interp); // Import exported commands to global namespace. Tcl_Eval(tcl_interp, "sta::define_sta_cmds"); diff --git a/src/ioPlacer b/src/ioPlacer new file mode 160000 index 00000000000..fd71e76e9de --- /dev/null +++ b/src/ioPlacer @@ -0,0 +1 @@ +Subproject commit fd71e76e9dea80cf8b4075d1d35e09cb735d6d50 From e9c9666de5f336a18af6e95c2de9b1237e694aa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateus=20Foga=C3=A7a?= Date: Fri, 29 Nov 2019 13:19:36 +0100 Subject: [PATCH 2/5] ioPlacer integration --- include/openroad/OpenRoad.hh | 3 +++ src/CMakeLists.txt | 2 ++ src/OpenRoad.cc | 5 ++++- src/ioPlacer | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/openroad/OpenRoad.hh b/include/openroad/OpenRoad.hh index 79e37a8092e..3c804156dd6 100644 --- a/include/openroad/OpenRoad.hh +++ b/include/openroad/OpenRoad.hh @@ -28,6 +28,8 @@ class dbNetwork; class Resizer; } +class IOPlacementKernel; + namespace ord { class dbVerilogNetwork; @@ -73,6 +75,7 @@ private: dbVerilogNetwork *verilog_network_; sta::dbSta *sta_; sta::Resizer *resizer_; + IOPlacementKernel *ioPlacer_; // Singleton used by tcl command interpreter. static OpenRoad *openroad_; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 71c44557e07..ab4a0d80483 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -20,6 +20,8 @@ set(OPENDB_WRAP ${CMAKE_CURRENT_BINARY_DIR}/OpenDB_wrap.cc) set(RESIZER_HOME ${PROJECT_SOURCE_DIR}/src/resizer) +set(IOPLACER_HOME ${PROJECT_SOURCE_DIR}/src/ioPlacer) + set(OPENROAD_WRAP ${CMAKE_CURRENT_BINARY_DIR}/OpenRoad_wrap.cc) set(OPENROAD_TCL_INIT ${CMAKE_CURRENT_BINARY_DIR}/OpenRoadTclInitVar.cc) diff --git a/src/OpenRoad.cc b/src/OpenRoad.cc index 516d615dc86..6015411197c 100644 --- a/src/OpenRoad.cc +++ b/src/OpenRoad.cc @@ -30,6 +30,8 @@ #include "openroad/InitOpenRoad.hh" #include "InitFlute.hh" +#include "ioPlacer/src/MakeIoplacer.h" + namespace sta { extern const char *openroad_tcl_inits[]; } @@ -89,10 +91,10 @@ OpenRoad::init(Tcl_Interp *tcl_interp, // Make components. db_ = dbDatabase::create(); - printf("DB id: %u\n", db_->getId()); sta_ = makeDbSta(); verilog_network_ = makeDbVerilogNetwork(); resizer_ = ord::makeResizer(); + ioPlacer_ = (IOPlacementKernel*) makeIoplacer(); // Init components. Openroad_Init(tcl_interp); @@ -103,6 +105,7 @@ OpenRoad::init(Tcl_Interp *tcl_interp, initDbSta(this); initResizer(this); initDbVerilogNetwork(this); + initIoplacer(this); initFlute(prog_arg); Replace_Init(tcl_interp); Ioplacer_Init(tcl_interp); diff --git a/src/ioPlacer b/src/ioPlacer index fd71e76e9de..551d5bfc28b 160000 --- a/src/ioPlacer +++ b/src/ioPlacer @@ -1 +1 @@ -Subproject commit fd71e76e9dea80cf8b4075d1d35e09cb735d6d50 +Subproject commit 551d5bfc28b0b1dac7c65928bb7c483b130e170e From 2f9f60f52fc31e18aa1d202a67afa58811f293f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateus=20Foga=C3=A7a?= Date: Mon, 2 Dec 2019 18:34:16 -0300 Subject: [PATCH 3/5] Update ioPlacer --- include/openroad/OpenRoad.hh | 5 ++++- src/CMakeLists.txt | 1 + src/OpenRoad.cc | 2 +- src/ioPlacer | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/include/openroad/OpenRoad.hh b/include/openroad/OpenRoad.hh index 19944281921..a8d7b931b26 100644 --- a/include/openroad/OpenRoad.hh +++ b/include/openroad/OpenRoad.hh @@ -28,10 +28,13 @@ class dbNetwork; class Resizer; } +namespace ioPlacer { class IOPlacementKernel; +} namespace opendp { class opendp_external; +} namespace ord { @@ -79,7 +82,7 @@ private: dbVerilogNetwork *verilog_network_; sta::dbSta *sta_; sta::Resizer *resizer_; - IOPlacementKernel *ioPlacer_; + ioPlacer::IOPlacementKernel *ioPlacer_; opendp::opendp_external *opendp_; // Singleton used by tcl command interpreter. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0e8ddc08cf9..7f0e9b57b6d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -161,6 +161,7 @@ add_subdirectory(resizer) add_subdirectory(flute3) add_subdirectory(replace) add_subdirectory(opendp) +add_subdirectory(ioPlacer) ################################################################ diff --git a/src/OpenRoad.cc b/src/OpenRoad.cc index a0d44314aa5..344182f9759 100644 --- a/src/OpenRoad.cc +++ b/src/OpenRoad.cc @@ -97,7 +97,7 @@ OpenRoad::init(Tcl_Interp *tcl_interp, db_ = dbDatabase::create(); sta_ = makeDbSta(); verilog_network_ = makeDbVerilogNetwork(); - ioPlacer_ = (IOPlacementKernel*) makeIoplacer(); + ioPlacer_ = (ioPlacer::IOPlacementKernel*) makeIoplacer(); resizer_ = makeResizer(); opendp_ = makeOpendp(); diff --git a/src/ioPlacer b/src/ioPlacer index 551d5bfc28b..de197fd961c 160000 --- a/src/ioPlacer +++ b/src/ioPlacer @@ -1 +1 @@ -Subproject commit 551d5bfc28b0b1dac7c65928bb7c483b130e170e +Subproject commit de197fd961cbda4592617cc6b1062d238581151e From 8e387e97f99905f9a01c426b3465349a5dcfc51e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateus=20Foga=C3=A7a?= Date: Mon, 2 Dec 2019 19:02:08 -0300 Subject: [PATCH 4/5] Random mode --- src/ioPlacer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ioPlacer b/src/ioPlacer index de197fd961c..39a3b205f7f 160000 --- a/src/ioPlacer +++ b/src/ioPlacer @@ -1 +1 @@ -Subproject commit de197fd961cbda4592617cc6b1062d238581151e +Subproject commit 39a3b205f7fa5d14c0c0a6cdb7e6dfc45c1d9a2c From 34593e27dfac0f886b5483fdbc55035ac2542c04 Mon Sep 17 00:00:00 2001 From: mpfogaca Date: Tue, 3 Dec 2019 15:02:50 -0300 Subject: [PATCH 5/5] Update ioPlacer --- src/ioPlacer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ioPlacer b/src/ioPlacer index 39a3b205f7f..0a3a2886b0e 160000 --- a/src/ioPlacer +++ b/src/ioPlacer @@ -1 +1 @@ -Subproject commit 39a3b205f7fa5d14c0c0a6cdb7e6dfc45c1d9a2c +Subproject commit 0a3a2886b0ec6876ec45a3f899c09ff647141e9a