Skip to content

Commit

Permalink
Merge pull request #2080 from eder-matheus/odb_cut_rows_fix
Browse files Browse the repository at this point in the history
odb: fix cutRows changes
  • Loading branch information
eder-matheus authored Jul 21, 2022
2 parents 43ab25a + 99ecb40 commit d5043fd
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 20 deletions.
14 changes: 7 additions & 7 deletions src/odb/src/zutil/util.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,16 +181,16 @@ void cutRows(dbBlock* block,
});

// Gather rows needing to be cut up front
for (dbBox* blockage : blockages) {
std::map<dbRow*, vector<dbBox*>> row_blockages;
for (dbRow* row : block->getRows()) {
for (dbRow* row : block->getRows()) {
std::vector<dbBox*> row_blockages;
for (dbBox* blockage : blockages) {
if (overlaps(blockage, row, halo_x, halo_y)) {
row_blockages[row].push_back(blockage);
row_blockages.push_back(blockage);
}
}
// Cut rows around macros
for (auto& [k, ignored] : row_blockages) {
cutRow(block, k, row_blockages[k], min_row_width, halo_x, halo_y);
// Cut row around macros
if (!row_blockages.empty()) {
cutRow(block, row, row_blockages, min_row_width, halo_x, halo_y);
}
}

Expand Down
26 changes: 13 additions & 13 deletions src/tap/test/boundary_macros.defok
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@ BUSBITCHARS "[]" ;
DESIGN gcd ;
UNITS DISTANCE MICRONS 2000 ;
DIEAREA ( 0 0 ) ( 200260 201600 ) ;
ROW ROW_2_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 28000 FS DO 41 BY 1 STEP 380 0 ;
ROW ROW_3_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 30800 N DO 41 BY 1 STEP 380 0 ;
ROW ROW_4_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 33600 FS DO 41 BY 1 STEP 380 0 ;
ROW ROW_5_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 36400 N DO 41 BY 1 STEP 380 0 ;
ROW ROW_6_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 39200 FS DO 41 BY 1 STEP 380 0 ;
ROW ROW_7_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 42000 N DO 41 BY 1 STEP 380 0 ;
ROW ROW_8_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 44800 FS DO 41 BY 1 STEP 380 0 ;
ROW ROW_53_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 170800 N DO 52 BY 1 STEP 380 0 ;
ROW ROW_1_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 25200 N DO 41 BY 1 STEP 380 0 ;
ROW ROW_54_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 173600 FS DO 52 BY 1 STEP 380 0 ;
ROW ROW_55_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 176400 N DO 52 BY 1 STEP 380 0 ;
ROW ROW_56_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 179200 FS DO 52 BY 1 STEP 380 0 ;
ROW ROW_0_2_1 FreePDK45_38x28_10R_NP_162NW_34O 131860 22400 FS DO 41 BY 1 STEP 380 0 ;
ROW ROW_1_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 25200 N DO 41 BY 1 STEP 380 0 ;
ROW ROW_2_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 28000 FS DO 41 BY 1 STEP 380 0 ;
ROW ROW_3_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 30800 N DO 41 BY 1 STEP 380 0 ;
ROW ROW_4_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 33600 FS DO 41 BY 1 STEP 380 0 ;
ROW ROW_5_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 36400 N DO 41 BY 1 STEP 380 0 ;
ROW ROW_6_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 39200 FS DO 41 BY 1 STEP 380 0 ;
ROW ROW_7_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 42000 N DO 41 BY 1 STEP 380 0 ;
ROW ROW_8_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 44800 FS DO 41 BY 1 STEP 380 0 ;
ROW ROW_53_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 170800 N DO 52 BY 1 STEP 380 0 ;
ROW ROW_54_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 173600 FS DO 52 BY 1 STEP 380 0 ;
ROW ROW_55_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 176400 N DO 52 BY 1 STEP 380 0 ;
ROW ROW_56_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 179200 FS DO 52 BY 1 STEP 380 0 ;
ROW ROW_0_2 FreePDK45_38x28_10R_NP_162NW_34O 131860 22400 FS DO 41 BY 1 STEP 380 0 ;
COMPONENTS 131 ;
- PHY_0 TAPCELL_X1 + SOURCE DIST + FIXED ( 131860 22400 ) FS ;
- PHY_1 TAPCELL_X1 + SOURCE DIST + FIXED ( 147060 22400 ) S ;
Expand Down

0 comments on commit d5043fd

Please sign in to comment.