I had two problems while processing global placeme...
# openroad
k
I had two problems while processing global placement of RePlAce. When I ran the global placement(GP) with the benchmark of ISPD 2015 contest, there were two benchmarks that could not process the GP stage smoothly. ( mgc_superblue16_a and mgc_superblue19 ) *benchmark of ISPD 2015 : https://www.ispd.cc/contests/15/web/downloads.html (Hidden benchmark designs ) I processed the following commands in my tcl file: read_lef {tech.lef} read_lef ${cells.lef} read_def ${floorplan.def} global_placement -density 1.0 After I processed benchmark of mgc_superblue19, the last 2 rows of error messages are: [NesterovSolve] Iter: 680 overflow: 0.18357 HPWL: 14598922301 [ERROR GPL-0307] RePlAce divergence detected. Re-run with a smaller max_phi_cof value. When I try smaller max_phi_cof value ( 1.1,1.3) with following command: global_placement -density 1.0 -max_phi_coef 1.03 There still had error message: [NesterovSolve] Iter: 680 overflow: 0.18357 HPWL: 14598922301 [ERROR GPL-0307] RePlAce divergence detected. Re-run with a smaller max_phi_cof value. And I further try smaller max_phi_cof global_placement -density 1.0 -max_phi_coef 1.01 The error will be solved, but the overflow will not decrease less than 0.1 after 5000 iterations of NesterovSolve. The last 2 rows of messages are: [NesterovSolve] Iter: 4990 overflow: 0.362241 HPWL: 12902711426 [NesterovSolve] Iter: 5000 overflow: 0.362278 HPWL: 12902395788 Another problem is that after I processing mgc_superblue16_a, the error message showed that : [ERROR GPL-0305] RePlAce diverged at newStepLength. But I have no idea how to solve this problem. Please help me, thanks!
e
The example verilog project for tinytapeout 2 has the same issue. If you were using OpenLane, the suggested fix for small diverging designs is setting PL_RANDOM_INITIAL_PLACEMENT, which generates a random initial placement in a python script. Maybe you could do something similar?
This is what happened in the placer internally, when it diverged on the small design I mentioned
You can see it goes back and forth with big changes in congestion bloating and detects that it's getting worse results with fillers getting mixed in with the logic cells
k
Because I'm using openroad's RePlAce stage, I think it can't work in my case. But thanks for your advise!