The-OpenROAD-Project / OpenROAD

OpenROAD's unified application implementing an RTL-to-GDS Flow. Documentation at https://openroad.readthedocs.io/en/latest/
https://theopenroadproject.org/
BSD 3-Clause "New" or "Revised" License
1.51k stars 527 forks source link

Question Regarding the Timing Report in the GUI #5628

Open ehdml opened 3 weeks ago

ehdml commented 3 weeks ago

Describe the bug

I am writing to ask a question regarding the use of the Timing Report and report_checks commands in the OpenROAD GUI.

I found that some paths appearing in the GUI's Timing Report do not get saved when using the command

report_checks -slack_max 0 -group_count 1000000 > path.txt.

I am using the UART of ASAP7.

Expected Behavior

Saving paths with negative slack from the timing paths.

I found that some paths appearing in the GUI's Timing Report do not get saved when using the command

report_checks -slack_max 0 -group_count 1000000 > path.txt.

Could you please explain the differences between the Timing Report in the GUI and the report_checks command that I used?

Environment

I do not have the necessary permissions to execute the ./etc/Env.sh command.

To Reproduce

files.zip openraod -gui In GUI read_lef "./asap7_tech_1x_201209.lef" read_lef "./asap7sc7p5t_28_R_1x_220121a.lef" read_liberty "./asap7sc7p5t_INVBUF_RVT_TT_nldm_220122.lib" read_liberty "./asap7sc7p5t_SIMPLE_RVT_TT_nldm_211120.lib" read_liberty "./asap7sc7p5t_OA_RVT_TT_nldm_211120.lib" read_liberty "./asap7sc7p5t_SEQ_RVT_TT_nldm_220123.lib" read_liberty "./asap7sc7p5t_AO_RVT_TT_nldm_211120.lib" read_def "./uart_gp.def" read_sdc "./constraint.sdc" source "./setRC.tcl" estimate_parasitics -placement

Relevant log output

No response

Screenshots

path txt GUI timing image

Additional Context

In GUI Timing Report show -45.339 path but at path.txt doesn't exist -45.339 path

oharboe commented 3 weeks ago

report_checks reports the worst slack path, so -46.095, rounded to -46.10, which you observe. You have highlighted the second worst slack. If you want report_checks to report that, you need to specify that report_checks should report more than just the worst path. Try adding "-group_count 2" to report_checks and you should see the top two lines from the GUI...

ehdml commented 3 weeks ago

I used the following command to save all paths with negative slack.

report_checks -slack_max 0 -group_count 1000000 > path.txt.

The command already includes a setting for group_count that allows for storing a sufficient number of paths.

However, even when I set the group_count to 2 as instructed, the path with a slack of -45.339 was not saved. report_checks -sort_by_slack -slack_max 0 -group_count 2 >test.txt test.txt

oharboe commented 3 weeks ago

Gotit. Surprising... Could it be that report_checks has 1 path per start/end point and that the GUI is configured to list more paths per endpoint? Click on "Settings" and paste a screenshot...