The-OpenROAD-Project / The-OpenROAD-Project/OpenROAD
[DPL-0701] NegotiationLegalizer did not fully converge on ispd15 mgc_superblue12
Open
@gudeh is already working on this.
Since Jul 20, 2026.
dpl
- Dominant language
- Verilog
- Stars
- 3.1k
- Forks
- 1k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 136
Description
Describe the bug
ispd15 Blockage-Aware Detailed Routing-Driven Placement Contest: mgc_superblue12
[WARNING DPL-0701] NegotiationLegalizer did not fully converge. Violations remain: 146
[INFO DPL-0500] Runtime: 624.35s
Expected Behavior
legal detailed placement
Environment
macOS M1 bazel build July 19 2026
To Reproduce
https://www.ispd.cc/contests/15/web/downloads.html
read_lef tech.lef.gz
read_lef cells.lef.gz
read_verilog design.v.gz
read_def floorplan.def.gz
global_placement
detailed_placement
Relevant log output
OpenROAD bazel-nostamp
Features included (+) or not (-): -GPU +GUI -Python
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
[INFO ORD-0030] Using 8 thread(s).
[INFO ODB-0388] unsupported LEF57_SPACING property for layer metal1 :"SPACING 0.065 ENDOFLINE 0.056 WITHIN 0.045 PARALLELEDGE 0.11 WITHIN 0.11 ;"
[INFO ODB-0388] unsupported LEF57_SPACING property for layer metal2 :"SPACING 0.065 ENDOFLINE 0.056 WITHIN 0.045 PARALLELEDGE 0.11 WITHIN 0.11 ;"
[INFO ODB-0388] unsupported LEF57_SPACING property for layer metal3 :"SPACING 0.065 ENDOFLINE 0.056 WITHIN 0.045 PARALLELEDGE 0.11 WITHIN 0.11 ;"
[INFO ODB-0388] unsupported LEF57_SPACING property for layer metal4 :"SPACING 0.065 ENDOFLINE 0.056 WITHIN 0.045 PARALLELEDGE 0.11 WITHIN 0.11 ;"
[INFO ODB-0227] LEF file: tech.lef.gz, created 17 layers, 276 vias
[INFO ODB-0227] LEF file: cells.lef.gz, created 2081 library cells
[INFO ODB-0127] Reading DEF file: floorplan.def.gz
[INFO ODB-0128] Design: superblue12
[INFO ODB-0094] Created 100000 Insts
[INFO ODB-0094] Created 200000 Insts
[INFO ODB-0094] Created 300000 Insts
[INFO ODB-0094] Created 400000 Insts
[INFO ODB-0094] Created 500000 Insts
[INFO ODB-0094] Created 600000 Insts
[INFO ODB-0094] Created 700000 Insts
[INFO ODB-0094] Created 800000 Insts
[INFO ODB-0094] Created 900000 Insts
[INFO ODB-0094] Created 1000000 Insts
[INFO ODB-0094] Created 1100000 Insts
[INFO ODB-0094] Created 1200000 Insts
[INFO ODB-0097] Created 100000 Nets
[INFO ODB-0097] Created 200000 Nets
[INFO ODB-0097] Created 300000 Nets
[INFO ODB-0097] Created 400000 Nets
[INFO ODB-0097] Created 500000 Nets
[INFO ODB-0097] Created 600000 Nets
[INFO ODB-0097] Created 700000 Nets
[INFO ODB-0097] Created 800000 Nets
[INFO ODB-0097] Created 900000 Nets
[INFO ODB-0097] Created 1000000 Nets
[INFO ODB-0097] Created 1100000 Nets
[INFO ODB-0097] Created 1200000 Nets
[INFO ODB-0130] Created 5908 pins.
[INFO ODB-0131] Created 1287037 components and 4772738 component-terminals.
[INFO ODB-0132] Created 2 special nets and 0 connections.
[INFO ODB-0133] Created 1293413 nets and 4767082 connections.
[INFO ODB-0134] Finished DEF file: floorplan.def.gz
[INFO GPL-0001] ---- Initialize GPL Main Data Structures
[INFO GPL-0002] DBU: 1000
[INFO GPL-0003] SiteSize: ( 0.100 0.900 ) um
[INFO GPL-0004] CoreBBox: ( 1.800 1.800 ) ( 1419.000 2066.400 ) um
[INFO GPL-0036] Movable instances area: 1008485.910 um^2
[INFO GPL-0037] Total instances area: 1685960.730 um^2
[INFO GPL-0035] Pin density area adjust: 135925.669 um^2
[INFO GPL-0032] ---- Initialize Region: Top-level
[INFO GPL-0006] Number of instances: 1287037
[INFO GPL-0007] Movable instances: 1286948
[INFO GPL-0008] Fixed instances: 89
[INFO GPL-0009] Dummy instances: 0
[INFO GPL-0010] Number of nets: 1293413
[INFO GPL-0011] Number of pins: 4772990
[INFO GPL-0012] Die BBox: ( 0.000 0.000 ) ( 1420.800 2072.000 ) um
[INFO GPL-0013] Core BBox: ( 1.800 1.800 ) ( 1419.000 2066.400 ) um
[INFO GPL-0016] Core area: 2925951.120 um^2
[INFO GPL-0014] Region name: top-level.
[INFO GPL-0015] Region area: 2925951.120 um^2
[INFO GPL-0017] Fixed instances area: 677474.820 um^2
[INFO GPL-0018] Movable instances area: 1144411.579 um^2
[INFO GPL-0019] Utilization: 50.897 %
[INFO GPL-0020] Standard cells area: 1144411.579 um^2
[INFO GPL-0021] Large instances area: 0.000 um^2
[INFO GPL-0005] ---- Execute Conjugate Gradient Initial Placement.
[INFO GPL-0051] Source of initial instance position counters:
Odb location = 0 Core center = 1286948 Region center = 0
[InitialPlace] Iter: 1 conjugate gradient residual: 0.00577552 HPWL: 20652887500
[InitialPlace] Iter: 2 conjugate gradient residual: 0.00134655 HPWL: 15945067400
[InitialPlace] Iter: 3 conjugate gradient residual: 0.00038552 HPWL: 15546039950
[InitialPlace] Iter: 4 conjugate gradient residual: 0.00034417 HPWL: 15305325829
[InitialPlace] Iter: 5 conjugate gradient residual: 0.00039616 HPWL: 14976627469
[InitialPlace] Iter: 6 conjugate gradient residual: 0.00033215 HPWL: 14710889554
[InitialPlace] Iter: 7 conjugate gradient residual: 0.00029287 HPWL: 14496288110
[InitialPlace] Iter: 8 conjugate gradient residual: 0.00028070 HPWL: 14376093210
[InitialPlace] Iter: 9 conjugate gradient residual: 0.00029926 HPWL: 14283319854
[InitialPlace] Iter: 10 conjugate gradient residual: 0.00026297 HPWL: 14214787526
[InitialPlace] Iter: 11 conjugate gradient residual: 0.00022780 HPWL: 14116251620
[InitialPlace] Iter: 12 conjugate gradient residual: 0.00025895 HPWL: 14046825989
[InitialPlace] Iter: 13 conjugate gradient residual: 0.00023871 HPWL: 13957641180
[InitialPlace] Iter: 14 conjugate gradient residual: 0.00026336 HPWL: 13918098339
[InitialPlace] Iter: 15 conjugate gradient residual: 0.00020391 HPWL: 13859237560
[InitialPlace] Iter: 16 conjugate gradient residual: 0.00018656 HPWL: 13871239554
[InitialPlace] Iter: 17 conjugate gradient residual: 0.00020209 HPWL: 13829787331
[InitialPlace] Iter: 18 conjugate gradient residual: 0.00044507 HPWL: 13838152023
[InitialPlace] Iter: 19 conjugate gradient residual: 0.00014926 HPWL: 13848056232
[InitialPlace] Iter: 20 conjugate gradient residual: 0.00021224 HPWL: 13847053196
[INFO GPL-0033] ---- Initialize Nesterov Region: Top-level
[INFO GPL-0023] Placement target density: 0.7000
[INFO GPL-0024] Movable insts average area: 0.889 um^2
[INFO GPL-0025] Ideal bin area: 1.270 um^2
[INFO GPL-0026] Ideal bin count: 2303265
[INFO GPL-0027] Total bin area: 2925951.120 um^2
[INFO GPL-0028] Bin count (X, Y): 1024 , 1024
[INFO GPL-0029] Bin size (W * H): 1.384 * 2.016 um
[INFO GPL-0030] Number of bins: 1048576
[INFO GPL-0084] ---- Execute Nesterov Global Placement.
[INFO GPL-0031] HPWL: Half-Perimeter Wirelength
Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
---------------------------------------------------------------
0 | 0.9870 | 8.749651e+06 | +0.00% | 2.47e-16 |
10 | 0.9709 | 9.790872e+06 | +11.90% | 3.51e-16 |
20 | 0.9627 | 1.042097e+07 | +6.44% | 5.33e-16 |
30 | 0.9562 | 1.091506e+07 | +4.74% | 8.22e-16 |
40 | 0.9511 | 1.129300e+07 | +3.46% | 1.28e-15 |
50 | 0.9476 | 1.158404e+07 | +2.58% | 2.02e-15 |
60 | 0.9449 | 1.182875e+07 | +2.11% | 3.21e-15 |
70 | 0.9429 | 1.204221e+07 | +1.80% | 5.10e-15 |
80 | 0.9408 | 1.223119e+07 | +1.57% | 8.14e-15 |
90 | 0.9391 | 1.239216e+07 | +1.32% | 1.30e-14 |
100 | 0.9378 | 1.253065e+07 | +1.12% | 2.09e-14 |
110 | 0.9365 | 1.265151e+07 | +0.96% | 3.36e-14 |
120 | 0.9353 | 1.275751e+07 | +0.84% | 5.41e-14 |
130 | 0.9344 | 1.285534e+07 | +0.77% | 8.71e-14 |
140 | 0.9337 | 1.294311e+07 | +0.68% | 1.41e-13 |
150 | 0.9330 | 1.302096e+07 | +0.60% | 2.27e-13 |
160 | 0.9323 | 1.308777e+07 | +0.51% | 3.67e-13 |
170 | 0.9317 | 1.314224e+07 | +0.42% | 5.94e-13 |
180 | 0.9308 | 1.319075e+07 | +0.37% | 9.62e-13 |
190 | 0.9298 | 1.324343e+07 | +0.40% | 1.56e-12 |
200 | 0.9284 | 1.330387e+07 | +0.46% | 2.52e-12 |
210 | 0.9264 | 1.338396e+07 | +0.60% | 4.07e-12 |
220 | 0.9236 | 1.350463e+07 | +0.90% | 6.55e-12 |
230 | 0.9199 | 1.368184e+07 | +1.31% | 1.05e-11 |
240 | 0.9143 | 1.393582e+07 | +1.86% | 1.66e-11 |
250 | 0.9063 | 1.429431e+07 | +2.57% | 2.61e-11 |
260 | 0.8958 | 1.477882e+07 | +3.39% | 4.03e-11 |
270 | 0.8819 | 1.541525e+07 | +4.31% | 6.14e-11 |
280 | 0.8650 | 1.621918e+07 | +5.22% | 9.17e-11 |
290 | 0.8457 | 1.721935e+07 | +6.17% | 1.34e-10 |
300 | 0.8242 | 1.882108e+07 | +9.30% | 1.85e-10 |
310 | 0.8026 | 2.115345e+07 | +12.39% | 2.34e-10 |
320 | 0.7866 | 2.316679e+07 | +9.52% | 3.04e-10 |
330 | 0.7719 | 2.479021e+07 | +7.01% | 4.13e-10 |
340 | 0.7527 | 2.640549e+07 | +6.52% | 5.67e-10 |
350 | 0.7286 | 2.845555e+07 | +7.76% | 7.40e-10 |
360 | 0.7095 | 3.003853e+07 | +5.56% | 1.01e-09 |
370 | 0.6882 | 3.127161e+07 | +4.10% | 1.44e-09 |
380 | 0.6620 | 3.219879e+07 | +2.96% | 2.08e-09 |
390 | 0.6278 | 3.299906e+07 | +2.49% | 3.12e-09 |
400 | 0.5919 | 3.437100e+07 | +4.16% | 4.39e-09 |
410 | 0.5586 | 3.520577e+07 | +2.43% | 6.47e-09 |
420 | 0.5287 | 3.526219e+07 | +0.16% | 1.03e-08 |
430 | 0.4896 | 3.497554e+07 | -0.81% | 1.65e-08 |
440 | 0.4456 | 3.556914e+07 | +1.70% | 2.47e-08 |
450 | 0.4077 | 3.525105e+07 | -0.89% | 4.02e-08 |
460 | 0.3582 | 3.540388e+07 | +0.43% | 6.36e-08 |
470 | 0.3223 | 3.476851e+07 | -1.79% | 9.66e-08 |
480 | 0.3033 | 3.371292e+07 | -3.04% | 1.42e-07 |
490 | 0.2839 | 3.280788e+07 | -2.68% | 2.10e-07 |
500 | 0.2674 | 3.193248e+07 | -2.67% | 3.09e-07 |
510 | 0.2496 | 3.118121e+07 | -2.35% | 4.55e-07 |
520 | 0.2271 | 3.065823e+07 | -1.68% | 6.70e-07 |
530 | 0.2209 | 2.872676e+07 | -6.30% | 9.83e-07 |
540 | 0.1747 | 3.000746e+07 | +4.46% | 1.35e-06 |
550 | 0.1755 | 4.364612e+07 | +45.45% | 1.10e-06 |
[WARNING GPL-0323] Divergence detected between consecutive iterations
Divergence occured in 1 regions.
[WARNING GPL-0998] Divergence detected, reverting to snapshot with min hpwl.
[WARNING GPL-0999] Revert to iter: 537 overflow: 0.202 HPWL: 28196402729
[INFO GPL-1014] Final placement area: 1144411.58 (+0.00%)
[INFO DPL-0006] Core area: 2925951.12 um^2
[INFO DPL-0007] Movable instances area: 1008485.91 um^2
[INFO DPL-0008] Fixed instances area within core: 677474.82 um^2
[INFO DPL-0009] Utilization: 57.6%
[INFO DPL-0005] Diamond search max displacement: +/- 500 sites horizontally, +/- 100 rows vertically.
[INFO DPL-1102] Legalizing using negotiation legalizer.
[INFO DPL-1103] Negotiation base search window: +/-20 sites horizontally, +/-5 rows vertically
Automatic search window extension enabled.
Search window extendable up to the max displacement cap of +/-500 sites, +/-100 rows near walls.
[INFO DPL-1104] NegotiationLegalizer DRC penalty: 5.
[INFO DPL-0392] Negotiation cell height distribution (18 unique row-count(s)):
[INFO DPL-0393] height 1 row(s): 1286948 cells
[INFO DPL-0393] height 8 row(s): 2 cells
[INFO DPL-0393] height 16 row(s): 41 cells
[INFO DPL-0393] height 40 row(s): 2 cells
[INFO DPL-0393] height 41 row(s): 4 cells
[INFO DPL-0393] height 66 row(s): 1 cells
[INFO DPL-0393] height 76 row(s): 2 cells
[INFO DPL-0393] height 91 row(s): 1 cells
[INFO DPL-0393] height 126 row(s): 3 cells
[INFO DPL-0393] height 234 row(s): 17 cells
[INFO DPL-0393] height 241 row(s): 2 cells
[INFO DPL-0393] height 251 row(s): 5 cells
[INFO DPL-0393] height 267 row(s): 1 cells
[INFO DPL-0393] height 295 row(s): 3 cells
[INFO DPL-0393] height 296 row(s): 1 cells
[INFO DPL-0393] height 312 row(s): 1 cells
[INFO DPL-0393] height 681 row(s): 1 cells
[INFO DPL-0393] height 850 row(s): 2 cells
| Total | Illegal | Illegal
Iteration | Violations | Cells | Sites
---------------------------------------------
0 | 212223 | 68051 | 129966
1 | 76055 | 16159 | 45708
2 | 40958 | 5316 | 21667
3 | 32144 | 3038 | 15164
4 | 29693 | 2399 | 13358
5 | 28946 | 2232 | 12778
6 | 28700 | 2164 | 12600
7 | 28550 | 2132 | 12482
8 | 28553 | 2129 | 12488
9 | 28482 | 2122 | 12424
10 | 28449 | 2119 | 12394
20 | 28449 | 2119 | 12394
30 | 28449 | 2119 | 12394
40 | 28543 | 2127 | 12480
50 | 28449 | 2119 | 12394
60 | 28449 | 2119 | 12394
70 | 28502 | 2122 | 12444
80 | 28505 | 2125 | 12444
90 | 28481 | 2121 | 12424
100 | 28449 | 2119 | 12394
110 | 28491 | 2123 | 12432
120 | 28484 | 2124 | 12424
130 | 28449 | 2119 | 12394
140 | 28517 | 2125 | 12456
150 | 28514 | 2124 | 12454
160 | 28507 | 2123 | 12448
170 | 28449 | 2119 | 12394
177 | 28449 | 2119 | 12394
[WARNING DPL-0700] Negotiation phase 1: violations stuck at 28449 for 3 consecutive iterations.
Using old diamond search for 2119 remaining illegal cells.
diamond recovery: recovered 1973/2119 stuck cells.
Negotiation phase 2: isolation point active, 1000 iterations.
400 | 3931 | 149 | 1909
410 | 3902 | 154 | 1875
420 | 3916 | 148 | 1895
424 | 3888 | 146 | 1869
[WARNING DPL-0702] Negotiation phase 2: violations stuck at 3888 for 3 consecutive iterations. Using diamond search for 146 remaining illegal cells.
diamond recovery: recovered 0/146 stuck cells.
[WARNING DPL-0701] NegotiationLegalizer did not fully converge. Violations remain: 146
[INFO DPL-0500] Runtime: 624.35s
Placement Analysis
---------------------------------
total displacement 1673595.9 u
average displacement 1.3 u
max displacement 107.5 u
original HPWL 27712885.5 u
legalized HPWL 29384868.0 u
delta HPWL 6 %
Screenshots
No response
Additional Context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.