I'm having problems with PDN generation. Can someo...
# openlane
I'm having problems with PDN generation. Can someone please tell me how to solve this problem? My design is at https://github.com/Hagiwara-shc/marmot_asic.git . It contains 14 SRAM macros under user_project_wrapper. When I make user_project_wrapper, it stops with the following error.
Copy code
[WARNING PSM-0038] Unconnected PDN node on net vccd2 at location (388.800um, 1746.550um), layer: 5.
[WARNING PSM-0038] Unconnected PDN node on net vccd2 at location (205.200um, 1746.550um), layer: 5.
[WARNING PSM-0038] Unconnected PDN node on net vccd2 at location (210.600um, 1746.550um), layer: 5.
[ERROR]: PDN generation failed.
[ERROR]: You may need to adjust your macro placements or PDN  offsets/pitches to power all standard cell rails (or other PDN stripes)  in your design.
Could you open your DEF in openroad gui? I want to take a look at SRAM placement. Also where the vccd2 is comming from? In your config there is no vccd2, am I missing something?
but yeah, what @User said - load the pdn and see where those co-ordinates are
Here is a screen shot.
😍 1
Yes, I could read gzipped gds.
I have no clue about vccd2.
ok I have a guess
this is where the pdn gets to
I'm just wondering if there's not enough space between your macros for the PDN to be complete
Sounds possible for me as well. In my project, I had to do set ::env(FP_PDN_HORIZONTAL_HALO) 50 set ::env(FP_PDN_VERTICAL_HALO) 50 to avoid collisions between routed signals and the little space between macros. Maybe that helps here as well. For this design, I would start with larger values (such as 200) for both settings to begin with.
Thank you, all. I removed 4 SRAM macros to have more space and added
Copy code
set ::env(FP_PDN_HPITCH) 100
set ::env(FP_PDN_VPITCH) 100
then, PDN generation was successful. But now, I have following error...
Copy code
[INFO GRT-0004] Blockages: 3407

[INFO GRT-0053] Routing resources analysis:
          Routing      Original      Derated      Resource
Layer     Direction    Resources     Resources    Reduction (%)
li1        Vertical            0             0          0.00%
met1       Horizontal    4314600       1327450          69.23%
met2       Vertical      3235950        948898          70.68%
met3       Horizontal    2157300        665518          69.15%
met4       Vertical      1510110        308536          79.57%

[INFO GRT-0101] Running extra iterations to remove overflow.
[INFO GRT-0197] Via related to pin nodes: 4414
[INFO GRT-0198] Via related Steiner nodes: 228
[INFO GRT-0199] Via filling finished.
[INFO GRT-0111] Final number of vias: 8169
[INFO GRT-0112] Final usage 3D: 263348
[ERROR GRT-0118] Routing congestion too high.
Error: groute.tcl, 69 GRT-0118
[ERROR]: during executing openroad script /openlane/scripts/openroad/groute.tcl
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
child process exited abnormally
I'm normally leaving at least 150um between macros to allow routing to succeed
Is there any way to know where the routing congestion is?
when it fails you should get left with an xml file in the runs directory
then you can load that with klayout


There is no xml file in the runs directory, no gds as well. There are only the following defs and lefs.
Copy code