OpenROAD-flow-scripts icon indicating copy to clipboard operation
OpenROAD-flow-scripts copied to clipboard

ADDITIONAL_LIBS no longer working for IHP PDK

Open jpf91 opened this issue 3 months ago • 4 comments

Subject

[Flow] for any util, flow Makefile, or flow script issues.

Describe the bug

https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/commit/b8a73f82c1a584788433698f24f0455af926a1c9 reworked the LIB file handling for the IHP PDK and the ADDITIONAL_LIBS variable was renamed to ADDITIONAL_TYP_LIBS. This breaks existing projects and worse, the change is not documented anywhere.

I filed this as an flow rather than as a documentation issue, because I think it might need some more discussion. There's no hint in the docs that ADDITIONAL_LIBS should be valid only for specific PDKs. Because of that I think a better solution would be to support both ADDITIONAL_LIBS and ADDITIONAL_TYP_LIBS.

What do you think? If such a change would be ok, I can open a PR. Should be a 1-line fix really.

jpf91 avatar Sep 15 '25 07:09 jpf91

@dnltz thoughts? It was your change.

maliberty avatar Sep 15 '25 15:09 maliberty

The problem with ADDITIONAL_LIBS is that as soon as you enable multi-corner or blocks (I don't know which one anymore), the flow doesn't work anymore because this variable is messed up with wrong libraries.

I personally think that ORFS in general should switch from ADDITIONAL_LIBS to ADDITIONAL_TYP_LIBS. I don't see any use-case to layout a chip with the typical corner only (I might be wrong!). I know multi-corner is not fully supported yet but this transition would at least prepare ORFS for this feature.

However, I think that's a bigger switch and would break quite a lot of build environments.

dnltz avatar Sep 18 '25 09:09 dnltz

I don't see any use-case to layout a chip with the typical corner only

At least for me, I always constraint setup timing at typical and then use fast corners for hold checks. I don't care about optimizing timing for slow corners.

rovinski avatar Sep 18 '25 21:09 rovinski

The problem with ADDITIONAL_LIBS is that as soon as you enable multi-corner or blocks (I don't know which one anymore), the flow doesn't work anymore because this variable is messed up with wrong libraries.

That makes sense. For now, why don't we just use both ADDITIONAL_LIBS and ADDITIONAL_TYP_LIBS for the typical libraries? This should make sure old projects continue to work, but new projects can use ADDITIONAL_TYP_LIBS and different corners.

jpf91 avatar Oct 01 '25 08:10 jpf91