Skip to content

Commit af26353

Browse files
authored
Merge pull request #8311 from The-OpenROAD-Project-staging/odb-selective-defout
Odb selective defout
2 parents 48f3e7d + cf75e0e commit af26353

File tree

8 files changed

+203
-404
lines changed

8 files changed

+203
-404
lines changed

src/OpenRoad.cc

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -355,27 +355,27 @@ void OpenRoad::readDef(const char* filename,
355355
def_reader.readChip(search_libs, filename, chip);
356356
}
357357

358-
static odb::defout::Version stringToDefVersion(const std::string& version)
358+
static odb::DefOut::Version stringToDefVersion(const std::string& version)
359359
{
360360
if (version == "5.8") {
361-
return odb::defout::Version::DEF_5_8;
361+
return odb::DefOut::Version::DEF_5_8;
362362
}
363363
if (version == "5.7") {
364-
return odb::defout::Version::DEF_5_7;
364+
return odb::DefOut::Version::DEF_5_7;
365365
}
366366
if (version == "5.6") {
367-
return odb::defout::Version::DEF_5_6;
367+
return odb::DefOut::Version::DEF_5_6;
368368
}
369369
if (version == "5.5") {
370-
return odb::defout::Version::DEF_5_5;
370+
return odb::DefOut::Version::DEF_5_5;
371371
}
372372
if (version == "5.4") {
373-
return odb::defout::Version::DEF_5_4;
373+
return odb::DefOut::Version::DEF_5_4;
374374
}
375375
if (version == "5.3") {
376-
return odb::defout::Version::DEF_5_3;
376+
return odb::DefOut::Version::DEF_5_3;
377377
}
378-
return odb::defout::Version::DEF_5_8;
378+
return odb::DefOut::Version::DEF_5_8;
379379
}
380380

381381
void OpenRoad::writeDef(const char* filename, const char* version)
@@ -395,7 +395,7 @@ void OpenRoad::writeDef(const char* filename, const std::string& version)
395395
if (hierarchy_set) {
396396
sta->getDbNetwork()->disableHierarchy();
397397
}
398-
odb::defout def_writer(logger_);
398+
odb::DefOut def_writer(logger_);
399399
def_writer.setVersion(stringToDefVersion(version));
400400
def_writer.writeBlock(block, filename);
401401
if (hierarchy_set) {

src/odb/include/odb/defout.h

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,22 @@
33

44
#pragma once
55

6+
#include <memory>
7+
68
#include "odb.h"
9+
710
namespace utl {
811
class Logger;
912
}
13+
1014
namespace odb {
1115

12-
class defout_impl;
16+
class dbInst;
1317
class dbNet;
1418
class dbBlock;
1519

16-
class defout
20+
class DefOut
1721
{
18-
defout_impl* _writer;
19-
2022
public:
2123
enum Version
2224
{
@@ -28,16 +30,19 @@ class defout
2830
DEF_5_8
2931
};
3032

31-
defout(utl::Logger* logger);
32-
~defout();
33+
DefOut(utl::Logger* logger);
34+
~DefOut();
3335

34-
void setUseLayerAlias(bool value);
35-
void setUseNetInstIds(bool value);
36-
void setUseMasterIds(bool value);
3736
void selectNet(dbNet* net);
37+
void selectInst(dbInst* inst);
38+
3839
void setVersion(Version v); // default is 5.8
3940

4041
bool writeBlock(dbBlock* block, const char* def_file);
42+
43+
private:
44+
class Impl;
45+
std::unique_ptr<Impl> _writer;
4146
};
4247

4348
} // namespace odb

src/odb/src/defout/defout.cpp

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,43 +11,29 @@
1111

1212
namespace odb {
1313

14-
defout::defout(utl::Logger* logger)
14+
DefOut::DefOut(utl::Logger* logger)
1515
{
16-
_writer = new defout_impl(logger);
17-
assert(_writer);
16+
_writer = std::make_unique<Impl>(logger);
1817
}
1918

20-
defout::~defout()
21-
{
22-
delete _writer;
23-
}
24-
25-
void defout::setUseLayerAlias(bool value)
26-
{
27-
_writer->setUseLayerAlias(value);
28-
}
19+
DefOut::~DefOut() = default;
2920

30-
void defout::setUseNetInstIds(bool value)
21+
void DefOut::selectNet(dbNet* net)
3122
{
32-
_writer->setUseNetInstIds(value);
33-
}
34-
35-
void defout::setUseMasterIds(bool value)
36-
{
37-
_writer->setUseMasterIds(value);
23+
_writer->selectNet(net);
3824
}
3925

40-
void defout::selectNet(dbNet* net)
26+
void DefOut::selectInst(dbInst* inst)
4127
{
42-
_writer->selectNet(net);
28+
_writer->selectInst(inst);
4329
}
4430

45-
void defout::setVersion(Version v)
31+
void DefOut::setVersion(Version v)
4632
{
4733
_writer->setVersion(v);
4834
}
4935

50-
bool defout::writeBlock(dbBlock* block, const char* def_file)
36+
bool DefOut::writeBlock(dbBlock* block, const char* def_file)
5137
{
5238
return _writer->writeBlock(block, def_file);
5339
}

0 commit comments

Comments
 (0)