Skip to content

Commit 4e82db6

Browse files
committed
pad: move pad placement code into separate set of classes
Signed-off-by: Peter Gadfort <[email protected]>
1 parent d69f08d commit 4e82db6

File tree

6 files changed

+922
-662
lines changed

6 files changed

+922
-662
lines changed

src/pad/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ cc_library(
1515
srcs = [
1616
"src/ICeWall.cpp",
1717
"src/MakeICeWall.cpp",
18+
"src/PadPlacer.cpp",
19+
"src/PadPlacer.h",
1820
"src/RDLGui.cpp",
1921
"src/RDLGui.h",
2022
"src/RDLRoute.cpp",

src/pad/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ target_sources(pad
1616
PRIVATE
1717
src/MakeICeWall.cpp
1818
src/ICeWall.cpp
19+
src/PadPlacer.cpp
1920
src/RDLRouter.cpp
2021
src/RDLRoute.cpp
2122
src/RDLGui.cpp

src/pad/include/pad/ICeWall.h

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -110,19 +110,11 @@ class ICeWall
110110

111111
private:
112112
odb::dbBlock* getBlock() const;
113-
int snapToRowSite(odb::dbRow* row, int location) const;
114113

115114
std::vector<odb::dbRow*> getRows() const;
116115
std::vector<odb::dbInst*> getPadInstsInRow(odb::dbRow* row) const;
117116
std::vector<odb::dbInst*> getPadInsts() const;
118117

119-
int placeInstance(odb::dbRow* row,
120-
int index,
121-
odb::dbInst* inst,
122-
const odb::dbOrientType& base_orient,
123-
bool allow_overlap = false,
124-
bool allow_shift = false) const;
125-
126118
void makeBTerm(odb::dbNet* net,
127119
odb::dbTechLayer* layer,
128120
const odb::Rect& shape) const;
@@ -138,43 +130,6 @@ class ICeWall
138130
std::string getRowName(const std::string& name, int ring_index) const;
139131
odb::Direction2D::Value getRowEdge(odb::dbRow* row) const;
140132

141-
int64_t estimateWirelengths(odb::dbInst* inst,
142-
const std::set<odb::dbITerm*>& iterms) const;
143-
int64_t computePadBumpDistance(odb::dbInst* inst,
144-
int inst_width,
145-
odb::dbITerm* bump,
146-
odb::dbRow* row,
147-
int center_pos) const;
148-
void placePadsUniform(const std::vector<odb::dbInst*>& insts,
149-
odb::dbRow* row,
150-
const std::map<odb::dbInst*, int>& inst_widths,
151-
int pads_width,
152-
int row_width,
153-
int row_start) const;
154-
void placePadsBumpAligned(
155-
const std::vector<odb::dbInst*>& insts,
156-
odb::dbRow* row,
157-
const std::map<odb::dbInst*, int>& inst_widths,
158-
int pads_width,
159-
int row_width,
160-
int row_start,
161-
const std::map<odb::dbInst*, std::set<odb::dbITerm*>>& iterm_connections)
162-
const;
163-
std::map<odb::dbInst*, odb::dbITerm*> getBumpAlignmentGroup(
164-
odb::dbRow* row,
165-
int offset,
166-
const std::map<odb::dbInst*, int>& inst_widths,
167-
const std::map<odb::dbInst*, std::set<odb::dbITerm*>>& iterm_connections,
168-
const std::vector<odb::dbInst*>::const_iterator& itr,
169-
const std::vector<odb::dbInst*>::const_iterator& inst_end) const;
170-
void performPadFlip(odb::dbRow* row,
171-
odb::dbInst* inst,
172-
const std::map<odb::dbInst*, std::set<odb::dbITerm*>>&
173-
iterm_connections) const;
174-
std::optional<std::pair<odb::dbInst*, odb::Rect>> checkInstancePlacement(
175-
odb::dbInst* inst,
176-
odb::dbRow* row) const;
177-
178133
// Data members
179134
odb::dbDatabase* db_ = nullptr;
180135
utl::Logger* logger_ = nullptr;

0 commit comments

Comments
 (0)