grt/rsz: write spef for estimated parasitics
Fixes https://github.com/The-OpenROAD-Project/OpenROAD/issues/4441.
Added as an option to the estimate_parasitics command, using -spef_file to pass the file path as an argument, writing one or more files based on how many corners there are. The information is written to the file during estimation, writing the net data before RC reduction is performed.
I'm unsure about the units in the header, using the same ones from the rcx header currently.
clang-tidy review says "All clean, LGTM! :+1:"
Not sure I'm fond of -spef as a flag to estimate_parasitics. Couldn't this instead use the existing API by doing write_spef after estimate_parasitics? You could print a message during write_spef indicating what kind of parasitics it's writing (global vs. detailed).
sta reduces the parasitics so you can't write them afterwards except in reduced form which isn't that helpful.
But could you, e.g., just add a Tcl hook or a SWIG hook which determines which function to call? Or are you saying that to write the SPEF without reduced parasitics then it has to be written out immediately?
Yes they have to be written immediately as the unreduced form is not stored anywhere. Storing it would be quite expensive on the off change someone wants to write them out.
That's fair then.
@joaomai there is some feedback that still needs addressing before this can be merged.
clang-tidy review says "All clean, LGTM! :+1:"
clang-tidy review says "All clean, LGTM! :+1:"
clang-tidy review says "All clean, LGTM! :+1:"
clang-tidy review says "All clean, LGTM! :+1:"
@maliberty Any more comments? I believe we need your approval to merge this PR.
clang-tidy review says "All clean, LGTM! :+1:"
clang-tidy review says "All clean, LGTM! :+1:"
clang-tidy review says "All clean, LGTM! :+1:"
Great work!