OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

par & mpl2: get inst area from .lef instead of .lib

Open AcKoucher opened this issue 1 year ago • 9 comments

When debugging using sky130hd/uW, SoftSA overlap penalty was resulting in -nan. The reason was that the APIs from Cluster were returning 0.0 area for the macro area of clusters with macros. The problem doesn't look like it's mpl2 itself, but rather the fact that LibertyCell::area() is returning 0.0 for the macros in this design during mpl2 flow.

AcKoucher avatar May 02 '24 18:05 AcKoucher

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar May 02 '24 18:05 github-actions[bot]

running secure-ci

AcKoucher avatar May 02 '24 18:05 AcKoucher

merge pending ci results

maliberty avatar May 02 '24 21:05 maliberty

CI showed a large increasing in drt WL for sky130hd/uW: [ERROR] detailedroute__route__wirelength fail test: 9237052.0 <= 8799572.0

I'll fix the PAR .lib area calls and test it again locally as it might have some meaningful impact on mpl2 clustering.

Edit: @maliberty I didn't affect uW, but including the PAR fix will require a new secure-ci run, right?

AcKoucher avatar May 03 '24 13:05 AcKoucher

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar May 03 '24 14:05 github-actions[bot]

They are not fake rams, they are real dfframs that were used in a tapeout. I think it is generally better to rely on the LEF in any case as Liberty doesn't even require the area field to be present.

maliberty avatar May 03 '24 18:05 maliberty

Yes the par change would need another secure CI

maliberty avatar May 03 '24 18:05 maliberty

@AcKoucher how does the uW macro placement change with this PR?

maliberty avatar May 03 '24 18:05 maliberty

Left base, right this PR.

I just realized something: even though for this design we turned off the boundary push weight in SoftSA, HierRTLMP::alignHardMacroGlobal (which will be substituted by the new post process in #4991) pushes the macros to the boundaries anyway. Not using this function would make the macros be a bit more centralized which for this case could be good.

Thinking of a general improvement, perhaps we could check whether or not the macro occupies all the layers and if yes we don't push it to the boundary during neither SA (so then the user wouldn't need to set the boundary weight to 0 manually) nor the post process.

AcKoucher avatar May 03 '24 19:05 AcKoucher

Running CI again now that RUDY was merged.

AcKoucher avatar Jun 12 '24 19:06 AcKoucher

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar Jun 12 '24 19:06 github-actions[bot]