Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 111 additions & 3 deletions src/odb/include/odb/db.h
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,11 @@ class dbTechLayerTwoWiresForbiddenSpcRule;
class dbTechLayerVoltageSpacing;
class dbTechLayerWidthTableRule;
class dbTechLayerWrongDirSpacingRule;
class dbUnfoldedBump;
class dbUnfoldedChip;
class dbUnfoldedConn;
class dbUnfoldedNet;
class dbUnfoldedRegion;
// Generator Code End ClassDeclarations

// Extraction Objects
Expand All @@ -186,8 +191,6 @@ class dbExtControl;
// Custom iterators
class dbModuleBusPortModBTermItr;

class UnfoldedModel;

///////////////////////////////////////////////////////////////////////////////
///
/// A box is the element used to represent layout shapes.
Expand Down Expand Up @@ -7620,6 +7623,16 @@ class dbDatabase : public dbObject

dbSet<dbChipNet> getChipNets() const;

dbSet<dbUnfoldedChip> getUnfoldedChips() const;

dbSet<dbUnfoldedRegion> getUnfoldedRegions() const;

dbSet<dbUnfoldedBump> getUnfoldedBumps() const;

dbSet<dbUnfoldedConn> getUnfoldedConns() const;

dbSet<dbUnfoldedNet> getUnfoldedNets() const;

// User Code Begin dbDatabase

void setHierarchy(bool value);
Expand Down Expand Up @@ -7670,7 +7683,6 @@ class dbDatabase : public dbObject

void constructUnfoldedModel();

UnfoldedModel* getUnfoldedModel() const;
////////////////////////
/// DEPRECATED
////////////////////////
Expand Down Expand Up @@ -7800,6 +7812,12 @@ class dbDatabase : public dbObject
/// Translate a database-id back to a pointer.
///
static dbDatabase* getDatabase(uint32_t oid);

///
/// Find an unfolded chip by its full path name (slash-joined chip-inst
/// names). Returns nullptr if no match.
///
dbUnfoldedChip* findUnfoldedChip(const std::string& path) const;
// User Code End dbDatabase
};

Expand Down Expand Up @@ -11392,6 +11410,96 @@ class dbTechLayerWrongDirSpacingRule : public dbObject
// User Code End dbTechLayerWrongDirSpacingRule
};

class dbUnfoldedBump : public dbObject
{
public:
dbChipBumpInst* getChipBumpInst() const;

dbUnfoldedRegion* getParentRegion() const;

// User Code Begin dbUnfoldedBump
Point3D getGlobalPosition() const;
// User Code End dbUnfoldedBump
};

class dbUnfoldedChip : public dbObject
{
public:
const std::string& getName() const;

dbTransform getTransform() const;

// User Code Begin dbUnfoldedChip
Cuboid getCuboid() const;

dbSet<dbUnfoldedRegion> getRegions() const;

///
/// Return the chip-instance path that uniquely identifies this unfolded
/// chip in the folded hierarchy (top-most chip inst first, leaf last).
///
std::vector<dbChipInst*> getChipInstPath() const;

///
/// Find the unfolded region within this chip whose source region instance
/// matches `source`. Returns nullptr if no match.
///
dbUnfoldedRegion* findRegion(dbChipRegionInst* source) const;
// User Code End dbUnfoldedChip
};

class dbUnfoldedConn : public dbObject
{
public:
dbChipConn* getChipConn() const;

dbUnfoldedRegion* getTopRegion() const;

dbUnfoldedRegion* getBottomRegion() const;
};

class dbUnfoldedNet : public dbObject
{
public:
dbChipNet* getChipNet() const;

// User Code Begin dbUnfoldedNet
std::vector<dbUnfoldedBump*> getConnectedBumps() const;
// User Code End dbUnfoldedNet
};

class dbUnfoldedRegion : public dbObject
{
public:
enum class EffectiveSide
{
TOP,
BOTTOM,
INTERNAL,
INTERNAL_EXT
};

dbChipRegionInst* getChipRegionInst() const;

dbUnfoldedChip* getParentChip() const;

// User Code Begin dbUnfoldedRegion
Cuboid getCuboid() const;

EffectiveSide getEffectiveSide() const;
void setEffectiveSide(EffectiveSide side);

bool isTop() const;
bool isBottom() const;
bool isInternal() const;
bool isInternalExt() const;

int getSurfaceZ() const;

dbSet<dbUnfoldedBump> getBumps() const;
// User Code End dbUnfoldedRegion
};

// Generator Code End ClassDefinition
///
/// dbProperty - Boolean property.
Expand Down
40 changes: 40 additions & 0 deletions src/odb/include/odb/dbCompare.inc
Original file line number Diff line number Diff line change
Expand Up @@ -819,6 +819,46 @@ struct less<odb::dbTechLayerWrongDirSpacingRule*>
= delete;
};

template <>
struct less<odb::dbUnfoldedBump*>
{
bool operator()(const odb::dbUnfoldedBump* lhs,
const odb::dbUnfoldedBump* rhs) const
= delete;
};

template <>
struct less<odb::dbUnfoldedChip*>
{
bool operator()(const odb::dbUnfoldedChip* lhs,
const odb::dbUnfoldedChip* rhs) const
= delete;
};

template <>
struct less<odb::dbUnfoldedConn*>
{
bool operator()(const odb::dbUnfoldedConn* lhs,
const odb::dbUnfoldedConn* rhs) const
= delete;
};

template <>
struct less<odb::dbUnfoldedNet*>
{
bool operator()(const odb::dbUnfoldedNet* lhs,
const odb::dbUnfoldedNet* rhs) const
= delete;
};

template <>
struct less<odb::dbUnfoldedRegion*>
{
bool operator()(const odb::dbUnfoldedRegion* lhs,
const odb::dbUnfoldedRegion* rhs) const
= delete;
};

// Generator Code End Less

} // namespace std
5 changes: 5 additions & 0 deletions src/odb/include/odb/dbObject.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,11 @@ enum dbObjectType
dbTechLayerVoltageSpacingObj,
dbTechLayerWidthTableRuleObj,
dbTechLayerWrongDirSpacingRuleObj,
dbUnfoldedBumpObj,
dbUnfoldedChipObj,
dbUnfoldedConnObj,
dbUnfoldedNetObj,
dbUnfoldedRegionObj,
// Generator Code End DbObjectType

// Lib Objects
Expand Down
157 changes: 0 additions & 157 deletions src/odb/include/odb/unfoldedModel.h

This file was deleted.

1 change: 1 addition & 0 deletions src/odb/src/3dblox/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ cc_library(
"//src/odb/src/lefout",
"//src/sta:opensta_lib",
"//src/utl",
"@spdlog",
"@yaml-cpp",
],
)
Expand Down
Loading
Loading