Skip to content

Commit 196d715

Browse files
authored
Merge pull request #7268 from The-OpenROAD-Project-staging/ord-startup
Pass the specific modules to Make* rather than the whole app
2 parents f0afca3 + 53f5017 commit 196d715

63 files changed

Lines changed: 819 additions & 567 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/OpenRoad.cc

Lines changed: 81 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "dst/MakeDistributed.h"
2727
#include "fin/MakeFinale.h"
2828
#include "gpl/MakeReplace.h"
29+
#include "grt/GlobalRouter.h"
2930
#include "grt/MakeGlobalRouter.h"
3031
#include "gui/MakeGui.h"
3132
#include "ifp/MakeInitFloorplan.hh"
@@ -156,29 +157,29 @@ void OpenRoad::init(Tcl_Interp* tcl_interp,
156157

157158
// Make components.
158159
utl::Progress::setBatchMode(batch_mode);
159-
logger_ = makeLogger(log_filename, metrics_filename);
160+
logger_ = utl::makeLogger(log_filename, metrics_filename);
160161
db_->setLogger(logger_);
161-
sta_ = makeDbSta();
162+
sta_ = sta::makeDbSta();
162163
verilog_network_ = makeDbVerilogNetwork();
163-
ioPlacer_ = makeIoplacer();
164-
resizer_ = makeResizer();
165-
opendp_ = makeOpendp();
166-
finale_ = makeFinale();
167-
global_router_ = makeGlobalRouter();
168-
restructure_ = makeRestructure();
169-
tritonCts_ = makeTritonCts();
170-
tapcell_ = makeTapcell();
171-
macro_placer_ = makeMacroPlacer();
172-
extractor_ = makeOpenRCX();
173-
detailed_router_ = makeTritonRoute();
174-
replace_ = makeReplace();
175-
pdnsim_ = makePDNSim();
176-
antenna_checker_ = makeAntennaChecker();
177-
partitionMgr_ = makePartitionMgr();
178-
pdngen_ = makePdnGen();
179-
icewall_ = makeICeWall();
180-
distributer_ = makeDistributed();
181-
stt_builder_ = makeSteinerTreeBuilder();
164+
ioPlacer_ = ppl::makeIoplacer();
165+
resizer_ = rsz::makeResizer();
166+
opendp_ = dpl::makeOpendp();
167+
finale_ = fin::makeFinale();
168+
global_router_ = grt::makeGlobalRouter();
169+
restructure_ = rmp::makeRestructure();
170+
tritonCts_ = cts::makeTritonCts();
171+
tapcell_ = tap::makeTapcell();
172+
macro_placer_ = mpl::makeMacroPlacer();
173+
extractor_ = rcx::makeOpenRCX();
174+
detailed_router_ = drt::makeTritonRoute();
175+
replace_ = gpl::makeReplace();
176+
pdnsim_ = psm::makePDNSim();
177+
antenna_checker_ = ant::makeAntennaChecker();
178+
partitionMgr_ = par::makePartitionMgr();
179+
pdngen_ = pdn::makePdnGen();
180+
icewall_ = pad::makeICeWall();
181+
distributer_ = dst::makeDistributed();
182+
stt_builder_ = stt::makeSteinerTreeBuilder();
182183
dft_ = dft::makeDft();
183184

184185
// Init components.
@@ -188,32 +189,64 @@ void OpenRoad::init(Tcl_Interp* tcl_interp,
188189

189190
initLogger(logger_, tcl_interp);
190191
// GUI first so we can register our sink with the logger
191-
initGui(tcl_interp, db_, sta_, logger_);
192-
initOdb(tcl_interp);
193-
initUpf(this);
194-
initInitFloorplan(this);
195-
initDbSta(this);
196-
initResizer(this);
197-
initDbVerilogNetwork(this);
198-
initIoplacer(this);
199-
initReplace(this);
200-
initOpendp(this);
201-
initFinale(this);
202-
initGlobalRouter(this);
203-
initTritonCts(this);
204-
initTapcell(this);
205-
initMacroPlacer(this);
206-
initOpenRCX(this);
207-
initICeWall(this);
208-
initRestructure(this);
209-
initTritonRoute(this);
210-
initPDNSim(this);
211-
initAntennaChecker(this);
212-
initPartitionMgr(this);
213-
initPdnGen(this);
214-
initDistributed(this);
215-
initSteinerTreeBuilder(this);
216-
dft::initDft(this);
192+
gui::initGui(tcl_interp, db_, sta_, logger_);
193+
odb::initOdb(tcl_interp);
194+
upf::initUpf(tcl_interp);
195+
ifp::initInitFloorplan(tcl_interp);
196+
initDbSta(sta_, logger_, tcl_interp, db_);
197+
initResizer(resizer_,
198+
tcl_interp,
199+
logger_,
200+
db_,
201+
sta_,
202+
stt_builder_,
203+
global_router_,
204+
opendp_);
205+
initDbVerilogNetwork(verilog_network_, sta_);
206+
initIoplacer(ioPlacer_, db_, logger_, tcl_interp);
207+
initReplace(
208+
replace_, db_, sta_, resizer_, global_router_, logger_, tcl_interp);
209+
initOpendp(opendp_, db_, logger_, tcl_interp);
210+
initFinale(finale_, db_, logger_, tcl_interp);
211+
initGlobalRouter(global_router_,
212+
db_,
213+
sta_,
214+
resizer_,
215+
antenna_checker_,
216+
opendp_,
217+
stt_builder_,
218+
logger_,
219+
tcl_interp);
220+
initTritonCts(tritonCts_,
221+
db_,
222+
getDbNetwork(),
223+
sta_,
224+
stt_builder_,
225+
resizer_,
226+
logger_,
227+
tcl_interp);
228+
initTapcell(tapcell_, db_, logger_, tcl_interp);
229+
initMacroPlacer(macro_placer_,
230+
getDbNetwork(),
231+
db_,
232+
sta_,
233+
logger_,
234+
partitionMgr_,
235+
tcl_interp);
236+
initOpenRCX(extractor_, db_, logger_, getVersion(), tcl_interp);
237+
initICeWall(icewall_, db_, logger_, tcl_interp);
238+
initRestructure(restructure_, logger_, sta_, db_, resizer_, tcl_interp);
239+
initTritonRoute(
240+
detailed_router_, db_, logger_, distributer_, stt_builder_, tcl_interp);
241+
initPDNSim(pdnsim_, logger_, db_, sta_, resizer_, opendp_, tcl_interp);
242+
initAntennaChecker(
243+
antenna_checker_, db_, global_router_, logger_, tcl_interp);
244+
initPartitionMgr(
245+
partitionMgr_, db_, getDbNetwork(), sta_, logger_, tcl_interp);
246+
initPdnGen(pdngen_, db_, logger_, tcl_interp);
247+
initDistributed(distributer_, logger_, tcl_interp);
248+
initSteinerTreeBuilder(stt_builder_, db_, logger_, tcl_interp);
249+
dft::initDft(dft_, db_, sta_, logger_, tcl_interp);
217250

218251
// Import exported commands to global namespace.
219252
Tcl_Eval(tcl_interp, "sta::define_sta_cmds");
@@ -462,7 +495,7 @@ void OpenRoad::readVerilog(const char* filename)
462495
if (verilog_reader_ == nullptr) {
463496
verilog_reader_ = new sta::VerilogReader(verilog_network_);
464497
}
465-
setDbNetworkLinkFunc(this, verilog_reader_);
498+
setDbNetworkLinkFunc(getVerilogNetwork(), verilog_reader_);
466499
verilog_reader_->read(filename);
467500
}
468501

src/ant/include/ant/MakeAntennaChecker.hh

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,29 @@
33

44
#pragma once
55

6-
namespace ant {
7-
class AntennaChecker;
6+
#include <tcl.h>
7+
8+
namespace odb {
9+
class dbDatabase;
810
}
911

10-
namespace ord {
12+
namespace utl {
13+
class Logger;
14+
}
1115

12-
class OpenRoad;
16+
namespace ant {
17+
18+
class AntennaChecker;
19+
class GlobalRouteSource;
1320

14-
ant::AntennaChecker* makeAntennaChecker();
21+
AntennaChecker* makeAntennaChecker();
1522

1623
void deleteAntennaChecker(ant::AntennaChecker* antennachecker);
1724

18-
void initAntennaChecker(OpenRoad* openroad);
25+
void initAntennaChecker(ant::AntennaChecker* antenna_checker,
26+
odb::dbDatabase* db,
27+
ant::GlobalRouteSource* global_route_source,
28+
utl::Logger* logger,
29+
Tcl_Interp* tcl_interp);
1930

20-
} // namespace ord
31+
} // namespace ant

src/ant/src/MakeAntennaChecker.cc

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,16 @@
55

66
#include "ant/AntennaChecker.hh"
77
#include "grt/GlobalRouter.h"
8-
#include "ord/OpenRoad.hh"
98
#include "utl/decode.h"
109

11-
namespace ant {
12-
// Tcl files encoded into strings.
13-
extern const char* ant_tcl_inits[];
14-
} // namespace ant
15-
1610
extern "C" {
1711
extern int Ant_Init(Tcl_Interp* interp);
1812
}
1913

20-
namespace ord {
14+
namespace ant {
15+
16+
// Tcl files encoded into strings.
17+
extern const char* ant_tcl_inits[];
2118

2219
ant::AntennaChecker* makeAntennaChecker()
2320
{
@@ -29,14 +26,15 @@ void deleteAntennaChecker(ant::AntennaChecker* antenna_checker)
2926
delete antenna_checker;
3027
}
3128

32-
void initAntennaChecker(OpenRoad* openroad)
29+
void initAntennaChecker(ant::AntennaChecker* antenna_checker,
30+
odb::dbDatabase* db,
31+
ant::GlobalRouteSource* global_route_source,
32+
utl::Logger* logger,
33+
Tcl_Interp* tcl_interp)
3334
{
34-
Tcl_Interp* tcl_interp = openroad->tclInterp();
35-
3635
Ant_Init(tcl_interp);
3736
utl::evalTclInit(tcl_interp, ant::ant_tcl_inits);
38-
openroad->getAntennaChecker()->init(
39-
openroad->getDb(), openroad->getGlobalRouter(), openroad->getLogger());
37+
antenna_checker->init(db, global_route_source, logger);
4038
}
4139

42-
} // namespace ord
40+
} // namespace ant

src/cts/include/cts/MakeTritoncts.h

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,46 @@
33

44
#pragma once
55

6-
namespace cts {
7-
class TritonCTS;
6+
#include <tcl.h>
7+
8+
namespace odb {
9+
class dbDatabase;
10+
}
11+
12+
namespace sta {
13+
class dbNetwork;
14+
}
15+
16+
namespace sta {
17+
class dbSta;
818
}
919

10-
namespace ord {
20+
namespace stt {
21+
class SteinerTreeBuilder;
22+
}
23+
24+
namespace rsz {
25+
class Resizer;
26+
}
1127

12-
class OpenRoad;
28+
namespace utl {
29+
class Logger;
30+
}
31+
32+
namespace cts {
33+
class TritonCTS;
1334

1435
cts::TritonCTS* makeTritonCts();
1536

16-
void initTritonCts(OpenRoad* openroad);
37+
void initTritonCts(cts::TritonCTS* cts,
38+
odb::dbDatabase* db,
39+
sta::dbNetwork* network,
40+
sta::dbSta* sta,
41+
stt::SteinerTreeBuilder* stt_builder,
42+
rsz::Resizer* resizer,
43+
utl::Logger* logger,
44+
Tcl_Interp* tcl_interp);
1745

1846
void deleteTritonCts(cts::TritonCTS* tritoncts);
1947

20-
} // namespace ord
48+
} // namespace cts

src/cts/src/MakeTritoncts.cpp

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,42 +6,39 @@
66
#include "CtsOptions.h"
77
#include "cts/TritonCTS.h"
88
#include "odb/db.h"
9-
#include "ord/OpenRoad.hh"
109
#include "utl/decode.h"
1110

12-
namespace cts {
13-
// Tcl files encoded into strings.
14-
extern const char* cts_tcl_inits[];
15-
} // namespace cts
16-
1711
extern "C" {
1812
extern int Cts_Init(Tcl_Interp* interp);
1913
}
2014

21-
namespace ord {
15+
namespace cts {
16+
17+
extern const char* cts_tcl_inits[];
2218

2319
cts::TritonCTS* makeTritonCts()
2420
{
2521
return new cts::TritonCTS();
2622
}
2723

28-
void initTritonCts(OpenRoad* openroad)
24+
void initTritonCts(cts::TritonCTS* cts,
25+
odb::dbDatabase* db,
26+
sta::dbNetwork* network,
27+
sta::dbSta* sta,
28+
stt::SteinerTreeBuilder* stt_builder,
29+
rsz::Resizer* resizer,
30+
utl::Logger* logger,
31+
Tcl_Interp* tcl_interp)
2932
{
30-
Tcl_Interp* tcl_interp = openroad->tclInterp();
3133
// Define swig TCL commands.
3234
Cts_Init(tcl_interp);
3335
utl::evalTclInit(tcl_interp, cts::cts_tcl_inits);
34-
openroad->getTritonCts()->init(openroad->getLogger(),
35-
openroad->getDb(),
36-
openroad->getDbNetwork(),
37-
openroad->getSta(),
38-
openroad->getSteinerTreeBuilder(),
39-
openroad->getResizer());
36+
cts->init(logger, db, network, sta, stt_builder, resizer);
4037
}
4138

4239
void deleteTritonCts(cts::TritonCTS* tritoncts)
4340
{
4441
delete tritoncts;
4542
}
4643

47-
} // namespace ord
44+
} // namespace cts

src/dbSta/include/db_sta/MakeDbSta.hh

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,25 @@
33

44
#pragma once
55

6-
namespace sta {
7-
class dbSta;
6+
#include <tcl.h>
7+
8+
namespace utl {
9+
class Logger;
810
}
911

10-
namespace ord {
12+
namespace odb {
13+
class dbDatabase;
14+
}
1115

12-
class OpenRoad;
16+
namespace sta {
17+
18+
class dbSta;
1319

1420
sta::dbSta* makeDbSta();
1521
void deleteDbSta(sta::dbSta* sta);
16-
void initDbSta(OpenRoad* openroad);
22+
void initDbSta(sta::dbSta* sta,
23+
utl::Logger* logger,
24+
Tcl_Interp* tcl_interp,
25+
odb::dbDatabase* db);
1726

18-
} // namespace ord
27+
} // namespace sta

0 commit comments

Comments
 (0)