Get Primetime global timing report (including WNS, TNS, and NUM) for reg2mem, reg2icg, in2cig, ...

quocviet19501

Newbie level 6
Joined
Aug 21, 2023
Messages
14
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
107
Hi everyone, I am trying to get global timing reports for reg2mem, mem2reg, reg2icg , in2icg in primetime. So far, I have found a way to report the timing report belong to the listed paths.
However, I cannot find any option or way to report the WNS, TNS, and NUM like the report_global_timing (which are restrcited to only 4 paths) for the path I have listed. If anyone have any idea or solution, please help me out.
Thanks in advance.
 

That is the usual way to use primetime, you use the report_timing command and specify what paths or clock group you want. I do not recall a PrimeTime command to give you all paths of a specific set like you requested. You probably will have to write your own script.

This code comes from the PrimeTime Advanced Timing Analysis Guide. It is for generating a simple WNS/TNS for each clock group and then for the whole design. Perhaps it can help you as a starting point. There are other examples in the manual and in the scripts directory.

Code:
proc report_design_slack_information {} {
  set design_tns 0
  set design_wns 100000
  set design_tps 0
  foreach_in_collection group [get_path_groups *] {
    set group_tns 0
    set group_wns 100000
    set group_tps 0
    foreach_in_collection path [get_timing_paths -nworst 10000 \
        -group $group] {
      set slack [get_attribute $path slack]
      if {$slack < $group_wns} {
        set group_wns $slack
        if {$slack < $design_wns} {
          set design_wns $slack
        }
      }
      if {$slack < 0.0} {
        set group_tns [expr $group_tns + $slack]
      } else {
        set group_tps [expr $group_tps + $slack]
      }
    }
    set design_tns [expr $design_tns + $group_tns]
    set design_tps [expr $design_tps + $group_tps]
    set group_name [get_attribute $group full_name]
    echo [format "Group '%s' Worst Negative Slack : %g" $group_name $group_wns]
    echo [format "Group '%s' Total Negative Slack : %g" $group_name $group_tns]
    echo [format "Group '%s' Total Positive Slack : %g" $group_name $group_tps]
    echo ""
  }
  echo “------------------------------------------”
  echo [format "Design Worst Negative Slack : %g" $design_wns]
  echo [format "Design Total Negative Slack : %g" $design_tns]
  echo [format "Design Total Positive Slack : %g" $design_tps]
}
 

Cookies are required to use this site. You must accept them to continue using the site. Learn more…