ADDITIONAL_LIBS no longer working for IHP PDK
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.
@dnltz thoughts? It was your change.
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.
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.
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.